M365 Managed · Pricing Calculator v4.3
Build your Proposal
Select a service tier and enter your user count to generate instant pricing.
⚠ Incubation product — all proposals must be reviewed by Paul before sending to the customer.
Currency
Inputs
Number of users
Band: up to 100 users
Gross margin %
Min 15% · Default 30%
%
Sell = COS ÷ 0.70
Enhanced Engineering Services
R 2,750 / hour incl. margin · 0 = not included
hrs
Additional PSFP Escalations
USD 600 / ticket / yr · amortised monthly
tkts
Contract term
Payment
Number of tenants
Default 1 · Appears in agreement terms
t

Essentials includes operational ownership, user administration, configuration management, Exchange and Intune. Microsoft PSFP escalation tickets are earned on gross profit and included, with additional tickets available.

Minimum 25 users · Maximum 50,000 users.

Inputs
Number of users
Band: up to 100 users
Gross margin %
Min 15% · Default 30%
%
Sell = COS ÷ 0.70
Enhanced Engineering Services
R 2,750 / hour incl. margin · 0 = not included
hrs
Additional PSFP Escalations
USD 600 / ticket / yr · amortised monthly
tkts
Contract term
Payment
Number of tenants
Default 1 · Appears in agreement terms
t

Premium adds continuous Secure Score management, Conditional Access optimisation, identity governance, drift remediation and a dedicated Customer Success Manager.

Minimum 25 users · Maximum 50,000 users.

Pricing
Monthly Service Sell
Per User / Month
Annual Service Sell
Gross Profit — Annual
Total Cost of Sale — Monthly
PSFP escalations included (earned on GP)
Contract Value
Cost Breakdown
ItemCOS / yrSell / yrGP%
Multi-Year Schedule
YearMonthlyAnnualGP / yr
Banding Reference
BandCOS/user/moSell/user/mo
Below-Standard Escalation Rate
An annual escalation below 5% requires written approval from Sales Senior Management before it can be applied to a proposal.
Confirmation Required
By clicking Confirm, you confirm that written approval has been received and is on record for this escalation rate.

Changelog

v4.3 — 21 Jun 2026
In progress · SSO_ENABLED off
Microsoft SSO added 18 Jun 2026 · Entra ID sign-in via MSAL.js on the shared BUI App Registration. Auth gate sits in front of the tool. SSO_ENABLED flag off for iteration. Set to true and register the tool URL with the identity team before publishing.
Changelog added 18 Jun 2026 · Built-in changelog modal added to the toolbar. This is now the live record of changes to the tool.
Per line item cost breakdown 18 Jun 2026 · Internal Cost Breakdown now itemises Base subscription, EES and PSFP with COS, Sell and GP% per line plus a monthly total. Internal view only, the customer proposal PDF is unchanged.
True total COS 18 Jun 2026 · Total Cost of Sale now includes the PSFP pass-through cost (USD 600 per ticket) and EES delivery cost (R1,925 per hour), not just the base subscription. Annual gross profit corrected to subtract EES cost, which it previously omitted.
PSFP folded into customer price 18 Jun 2026 · On the customer proposal PDF, PSFP is no longer shown as a line item or sub-note. The price stays bundled in the single M365 Managed line, and the ticket count now appears in the commercial details under the agreement term.
Annual breakdown 18 Jun 2026 · Internal Cost Breakdown now shows each line item (Base subscription, EES, PSFP) with annual COS, Sell and GP%, plus an annual total, since the contract is annual.
PSFP earned on GP 18 Jun 2026 · One PSFP escalation is now included free per USD 5,400 of annual pre-PSFP gross profit, absorbed by BUI as a USD 600 cost per ticket. Paid additional tickets still available and now sell at USD 600 (pass-through at cost, zero margin). Earned count shown in the panel, breakdown splits paid and free lines, and the customer commercial details show the total tickets available.
Multi-year, escalation and payment mode 18 Jun 2026 · 1, 2 and 3 year contract terms with per-year CPI escalation (default 5%, below-floor approval gate). Monthly vs annual upfront payment pill in the input panel. Calculator panel shows Year 1 Annual label on multi-year deals, TCV stat card, and multi-year schedule table. PDF pricing table switches to per-year columns on multi-year deals with monthly fee, annual fee, invoice row and TCV footer. Agreement term shows end date, payment terms and escalation rate.
Strategic discount approval gate 19 Jun 2026 · The discount field is now behind an approval gate. A toggle appears in the input panel. Enabling it fires the approval modal requiring written Sales Manager approval to be confirmed before the discount field is revealed. Cancelling resets the toggle. Un-ticking hides the field and resets the discount to zero.
PSFP cost recovery uplift 18 Jun 2026 · The M365 base sell is now grossed up so the line still nets the target margin (30%) after absorbing the cost of the free PSFP tickets it earns. Entitlement is measured on the standard margin so the uplift never earns extra tickets, which means no iteration. One earned ticket adds about USD 71 per month at 30%. A PSFP cost recovery uplift stat shows the monthly and per-user amount. Toggle via PSFP_COST_RECOVERY.
Audit fixes 18 Jun 2026 · Escalation now applies to the full M365 plus EES recurring fee so the annual increase matches the stated rate (was only escalating the base subscription). getQuotePricing now passes term, TCV and escalation to the modal. Cover style now strips body and html rules before assembly to protect the PDF layout. Terms and service overview wording updated to the bundled PSFP model with no stale per-ticket price.
Cover page logo corrected 20 Jun 2026 · COVER_TEMPLATE logo replaced with BUI_LOGO_WHITE — the canonical transparent SVG (white tagline, orange mark) from the brand asset library. The previous asset was a flattened JPEG. Sizing updated to height 104px, centred. Cover background corrected from #525657 to #535657 to match the brand primary-grey token.
Page breaks fixed 21 Jun 2026 · Introduction now flows on its own page before the service section. Pricing, EES (when included), and Terms all start on a fresh page using the MXDR page-break div pattern. Signature section retains sig-page forced break. .page-break CSS rule added to BODY_CSS.
Pricing aligned to MXDR reference 21 Jun 2026 · qtable rebuilt to two columns: Line Item / Monthly (excl. VAT), matching MXDR pattern exactly. bk-tbl summary matches MXDR: Monthly subscription, Annual subscription, Total contract value footer. Agreement term uses aterm-row/aterm-key/aterm-val inside .agreement-term box, matching MXDR. Section heading "Service Configuration" matches MXDR. aterm CSS added to BODY_CSS.
Terms list page-break fix 21 Jun 2026 · Added page-break-inside:avoid to individual tr elements and parent tables in Exclusions and Customer Responsibilities to prevent WebKit from reordering rows across page breaks.
Pricing section rebuilt to skill spec 21 Jun 2026 · BODY_CSS replaced with canonical skill version. Orange updated from #e8820c to #D9861C throughout. qtable rebuilt to four-column pattern: Item, Qty, Unit Price, Total Excl. Tax. bk-tbl right-aligned max-width 280pt with orange footer. Agreement details use agr-row/agr-lbl pattern. ul li orange bullet dots restored. Canonical class names aligned to skill throughout.
Introduction rewritten 21 Jun 2026 · Introduction body text replaced with enza-sourced copy adapted for M365 Managed. Four paragraphs: requirement statement, BUI team credentials, proposal outline, closing assurance. Azure references removed. NDA changed to confidentiality. Initial considerations reference removed.
Bug fix: Terms list rendering 20 Jun 2026 · Exclusions and Customer Responsibilities bullet lists were still rendering out of order in the PDF despite page-break-inside:avoid. Root cause: WebKit PDF renderer ignores that rule on ul/li. Fixed by converting both lists to single-column table rows, which the renderer handles correctly. Order is now preserved across page breaks.
Bug fix: About BUI page split 20 Jun 2026 · Key facts table was splitting mid-row across pages. Added page-break-inside:avoid to .kf-table.
Bug fix: pricing double-count 20 Jun 2026 · EES was being shown as a separate line item on top of monthlySell, which already includes EES. Fixed to single combined M365 service line using annualSellByYr from calc state directly. EES shown as sub-note. Discount row removed since it is already baked into the per-year figures.
Bug fix: Terms page rendering 20 Jun 2026 · Exclusions and Customer Responsibilities bullet lists were rendering out of order in the PDF due to page-break splitting. Added page-break-inside:avoid to ul in BODY_CSS.
Pricing page rebuilt to MXDR pattern 20 Jun 2026 · Pricing page now matches the MXDR calculator pattern. Header block with entity left and ref/date/company right. Line items table (qtable) with monthly column for single-year or annual-per-year columns for multi-year. Summary bk-tbl for single year. Monthly payment row on multi-year when monthly mode selected. Agreement term in a styled box. Section number on the heading resolves dynamically.
Introduction section added 20 Jun 2026 · New INTRO_HTML section added as Section 1 of the proposal. Opens with the customer name, BUI Azure Expert MSP credential statement, and a personal sign-off with dynamic author name and title. Your Title field added to the Generate modal step 1.
Section numbering 20 Jun 2026 · All proposal sections now numbered (1. Introduction, 2. Service Overview, 3. About BUI, 4. EES if included, then Pricing, Terms and Signature). Numbers on Terms and Signature resolve dynamically based on whether EES is included.
Service Overview rewritten 20 Jun 2026 · Section 2 opening paragraphs rewritten to match the image pattern: direct statement of the service, customer name token, reference to the Service Description. Old problem/solution narrative removed.
Bug fix: q is not defined 20 Jun 2026 · Download PDF was failing with "q is not defined". payMode was referencing q.prefix in the download function where q is not in scope. Fixed to use the prefix variable already defined in that scope.
Cover logo enlarged 20 Jun 2026 · Logo height increased from 104px to 208px on the proposal cover page.
Generate modal simplified 20 Jun 2026 · Payment dropdown removed from the Generate modal — payment mode is set on the inputs screen and the proposal reads it from there. Exclude pricing page toggle removed — functionality not required. Pricing page is always included.
v4.2
May 2026 · Baseline
Pricing calculator Essentials and Premium tiers, per-user pricing in USD, ZAR, EUR and GBP with live rates, EES and PSFP add-ons, margin and discount controls.
Proposal and SoW output Branded PDF proposal and Statement of Work generated from calculator state.

Strategic Discount

This discount requires written approval from Sales Senior Management before it can be applied to a proposal.

CONFIRMATION REQUIRED
By clicking Confirm, you confirm that written approval has been received and is on record for this discount.