Skip to content
Menu

MSP Gross Margin: Check the Cost of Each Revenue Line

Calculate MSP gross margin by revenue line, separate margin from markup, and match delivery costs to each sale before acting on a blended result.

Two colleagues talk beside shelves of boxed network equipment while a coordinator takes a phone call.

Assume the MSP model's revenue mix and the separate margin target for each line. MSP gross margin then works out to (52% × 50%) + (21% × 30%) + (19% × 30%) + (8% × 50%) = 42%. A blended target by itself won't tell you which agreement or invoice needs attention.

Gross margin is revenue less the direct cost of delivering it, divided by that revenue. The model gives the managed seat a 50% target after delivery labor and tools, with different targets for other lines. I'd put those lines beside their own costs before judging the total against the model's 45% gross-margin goal.

Match Each Margin to Its Revenue

Start by agreeing what the accounts mean by each line. A monthly invoice can contain managed services and resold product, which have different cost bases. Its billing frequency doesn't decide its margin target.

Revenue LineModel Margin TargetCost to Put Against the Revenue
Managed services50%Burdened service-delivery labor and the tools used to deliver the seat
Recurring product30%The costs assigned to the licenses or other product being resold
Hardware30%The equipment and other direct costs of that sale
Projects50%Burdened project labor and the direct costs assigned to that work
Separately identified resold services70%The actual cost of the offering; this is not the managed-seat target

The resold-services target is separately labeled in the model. It doesn't establish how little labor your offering needs, or what margin you actually achieve. Cost that offering before claiming it earns 70%.

The example MSP doesn't have a separate resold-services revenue line. Its recurring product is counted at the 30% product margin. Moving that revenue into a 70% category would change the assumed economics without changing a supplier invoice or a technician's work.

Cost the Managed Seat Before Calling It Healthy

The 50% managed-services target includes the people delivering the service as well as the tool subscriptions. Burdened pay means salary with the employer's additional employment costs included. The model's US general burden multiplier is 1.25, so a salary entered on its own understates that modeled cost.

Include the service desk, technical alignment manager, virtual chief information officer, centralized services, and on-call costs assigned to managed delivery. A technical alignment manager owns standards and environment alignment; a virtual chief information officer owns the business and budget conversation. Their delivery cost belongs in this calculation even when they aren't closing support tickets.

In the US example, the seat price is $225 a month and the tool allowance is $22.50. At the 50% target, the total delivery-cost allowance is $225 × (1 − 0.50) = $112.50 per seat. Subtract the tools and the remaining labor allowance is $112.50 − $22.50 = $90.

That is a cost allowance, not a statement that your team costs $90 per seat. Compare it with the labor actually allocated to the service over the same period. If the underlying hours or payroll costs differ, the achieved margin differs too.

Keep Product and Hardware on Their Own Basis

The model's product target is 30%, including recurring licenses and one-time hardware. The target tells you what to plan for. To find the achieved result, match the sale with its actual assigned costs and calculate the margin.

A recurring product payment remains product revenue in this example. Don't apply the 70% resold-services target simply because the client pays for it monthly. Keep the classification consistent between the quote, supplier cost, and accounts.

My view is that an unexplained classification change deserves checking before a celebration. If the apparent margin improves after a spreadsheet relabels a line, reconcile the old and new categories. A changed label hasn't funded another technician.

Check What the Quote Means by a Percentage

Markup is profit expressed as a percentage of cost; margin expresses it as a percentage of the selling price. At the model's 30% markup illustration, the selling-price factor is 1 + (30 / 100) = 1.30. The margin is [30 / (100 + 30)] × 100 = about 23.1%, below the 30% product target.

To quote for a target margin, divide cost by one minus that margin. At the 30% target, the price is cost ÷ 0.70. At the 50% target, it is cost ÷ 0.50, or twice the cost.

Check the actual formula in the quotation template before changing the percentage. A field called margin that adds 30% to cost still performs a markup calculation. A reassuring field label is a particularly cheap substitute for arithmetic.

Count the Project Work That Was Included Free

The model gives project work a 50% gross-margin target. A revenue-to-labor multiple means project revenue divided by the project labor cost being measured. At that target, the multiple is 1 / (1 - 50 / 100) = 2.00x, and [(2.00 - 1.00) / 2.00] × 100 = 50% margin on that same basis.

Use consistent boundaries for that comparison. If a project includes hardware, separate its resale revenue and cost from the labor calculation. Otherwise you can change the reported project result by changing what is bundled into it.

The model places unpaid onboarding on project engineers, even when the onboarding fee is waived for a signed agreement. Keep those hours in the project labor total. Removing the invoice doesn't remove the work, and counting the same cost again elsewhere would distort the comparison in the other direction.

Reconcile the Blend With the Lines

A blended margin weights each line's margin by its share of revenue. Using the model's mix and target margins gives this calculation:

Revenue LineRevenue ShareMargin TargetContribution to Total Gross Margin
Managed services52%50%(52 / 100) × 50 = 26.0 percentage points
Recurring product21%30%(21 / 100) × 30 = 6.3 percentage points
Hardware19%30%(19 / 100) × 30 = 5.7 percentage points
Projects8%50%(8 / 100) × 50 = 4.0 percentage points
Total52 + 21 + 19 + 8 = 100%Weighted result26.0 + 6.3 + 5.7 + 4.0 = 42.0%

This target-based blend is below the model's separate 45% total goal. It isn't a measurement of your own business, and it doesn't mean that a line missed its target. Change the revenue mix or a line's achieved margin and you change the blended result.

I'd ask finance to explain the movement in both parts. Establish whether the business sold a different mix, earned a different margin within a line, or changed its cost allocation. Those require different decisions; the blended percentage doesn't choose one for you.

Use the Result to Choose the Next Investigation

A useful review ends with a cost or quotation to inspect. Keep gross profit separate from earnings before interest, taxes, depreciation, and amortization, usually shortened to EBITDA. General overhead and the owner's fair-market salary still have to be accounted for before you call the business's profit healthy.

  1. Reconcile revenue and direct costs for the same period, using the same line definitions.
  2. Calculate achieved margin within each line and compare it with that line's model target.
  3. Check payroll burden, shared delivery labor, and unpaid onboarding before concluding that price is the cause.
  4. Inspect the quotation formula for a line that misses its intended margin.
  5. Recalculate the weighted total using the actual mix, and record which input explains the difference.

Take the line with the unexplained variance back to its transactions and delivery records. Correct an allocation error in the accounts, a quotation error in the template, or an actual delivery-cost problem in the service. A rule of thumb can tell you where to look. It can't do that reconciliation for you.

Written ByGraham Whitfield

Staff Writer, Finance and M&A. Graham Whitfield covers finance, pricing and M&A for MSP Outpost. He shows his math and states his assumptions.

More by Graham

mspoutpost.com/articles/msp-gross-margin-check-the-cost-of-each-revenue-line

Written by Graham Whitfield
MSP Outpost publishes information, not legal, financial, insurance, tax or compliance advice, and reading it creates no professional relationship. For decisions about your business, talk to a qualified professional.

Welcome Back

Sign in to your MSP Outpost account.