License Drift

Guide

MSP profitability: the margin you lose on unbilled license seats

How unbilled and underpriced Microsoft 365 seats eat MSP profitability, how to measure the margin per client, and a monthly routine that keeps it.

ยท 4 min read

Most conversations about MSP profitability are about labor: technician utilization, ticket volume per user, the clients who call too much for what they pay. Those matter most. But there is a quieter line in the numbers that is easier to fix: the licenses you resell. Every month you pay your distributor for Microsoft 365 seats, and every month you bill clients for them. The margin between those two numbers is small enough on a single seat that nobody watches it, and that is exactly why it leaks.

This guide shows where license margin goes, how to measure it per client, and a routine that keeps it from drifting.

A glass jar of coins with a hairline crack near its base, a few coins slipped out beside it, on a dark navy surface
A small crack, every month. Unbilled seats rarely look like much until you add them up.

Where license margin goes

There are five ways a resold seat stops making money. All of them happen without anyone deciding they should:

  1. Under-billed seats. A client adds users, you pay for the new seats, the invoice keeps last month's count.
  2. Never-billed products. A client gets a product (a security add-on, a second license type) that no invoice line covers.
  3. Billed below cost. Your cost rises at a renewal or a price change and the client's price stays where it was.
  4. Unused seats you cannot release. Under Microsoft's new commerce rules, seat reductions are only possible in a short window after the seats were added or renewed (Microsoft's cancellation policy). If a client lets users go mid-term and your agreement does not pass that commitment on, you carry the seats until renewal.
  5. Cancelled but still billed. The reverse leak: you stopped paying, the client did not. It looks like extra margin until the client finds it, and then it costs you a credit and some trust.

The first four lose money directly. The fifth loses it later, with interest.

The arithmetic, with example numbers

Take one illustrative client. You pay $20.00 per seat per month for a license and bill it at $22.00. That is $2.00 of margin per seat.

  • The client has 42 seats at the distributor and 38 on the invoice. You collect 38 x $2.00 = $76.00 of margin, and pay 4 x $20.00 = $80.00 for seats nobody pays for. On that line you are $4.00 a month behind, where you expected to be $84.00 ahead.
  • Now your cost goes to $21.00 at renewal and the price stays at $22.00. Your margin per seat halves without anyone touching the agreement.

The numbers are made up, but the shape is not: when the margin per seat is a small fraction of the price, each unbilled seat cancels out the margin on several billed ones. That is why license profitability is decided by counts and prices being right, more than by the markup you chose.

Measuring license margin per client

You need the same two exports every month:

  • What you paid: your distributor's bill detail (Pax8, Sherweb, or the Partner Center reconciliation file), netted per client and product.
  • What you billed: your invoice lines from QuickBooks or your PSA for the same month.

Then, per client:

ColumnFormula
License costSum of distributor cost for the client
License revenueSum of invoiced amounts for license items
License marginRevenue minus cost
Margin %Margin divided by revenue
Seats paidSum of distributor quantity
Seats billedSum of invoiced quantity, times seats per unit for bundles
Seat gapSeats paid minus seats billed

Sort by margin %, lowest first. A client with a negative license margin almost always has a seat gap or a stale price. A client with an unusually high margin is worth a look too: it may be billed for something that was cancelled.

If you sell per-user bundles, split the bundle price into a license portion and a services portion once, and use the license portion here. Otherwise every bundled client looks wildly profitable on licenses and you learn nothing.

The routine that keeps it

Profitability work tends to be a quarterly review. License margin needs to be monthly, because every month a gap stays open is a month you paid for. A routine that fits in the billing cycle:

  • When the distributor bill arrives, export its detail and check the total.
  • Export the matching month of invoice lines.
  • Compare seats and prices per client and product; sort the differences by dollar value.
  • Fix under-billed, never-billed and below-cost lines before the next invoice run.
  • Stop cancelled-but-billed lines and decide on credits.
  • Note intentional differences (internal seats, free seats you chose to give) so they do not come back.
  • Once a quarter, review license margin % per client and raise prices where your cost moved.

Beyond the routine, two policy choices protect margin for good: make sure your client agreements say how mid-term seat reductions are handled under annual commitments, and decide whether new seats are billed from the day they are added or from the next invoice. What fits depends on your contracts and clients.

Making the monthly check automatic

The routine is simple and still gets skipped, usually in the busiest month. License Drift does the comparison from your distributor export and your QuickBooks or PSA invoice export. It remembers which clients and invoice items go together, flags under-billed, never-billed, below-cost, over-billed and cancelled-but-still-billed lines with a monthly dollar estimate, and emails the list. A reminder arrives on the day of the month you choose. The license reconciliation guide shows the same check as a spreadsheet.

Find the Microsoft 365 seats you pay for but don't bill

License Drift compares your distributor's seat counts and costs with each client's invoices, and emails the under-billed, over-billed and cancelled-but-still-billed lines. A monthly reminder tells you when to run it.

$99/ month

Get started

Cancel any time.