Month end, three numbers per client
The distributor's invoice arrives: many line items, one per client tenant and licence type, some with mid-month changes. The PSA has recurring billing lines per client for Business Standard, Business Premium, Exchange Online and the rest. Each client's tenant has its own count of assigned licences.
Someone in finance tries to reconcile them, with a spreadsheet and the distributor's portal open side by side. A client added five users mid-month, which reached the distributor but not the PSA. Another had three licences freed up when staff left, still being bought but no longer assigned. A third moved everyone to a different plan, and the PSA still bills the old one.
Why the numbers keep drifting
Licence changes happen in three places, driven by three different people: engineers assign in the tenant, someone orders on the distributor portal, and finance edits the PSA recurring line. Nothing ties them together.
- Engineers buy licences for a new starter on the portal and forget the PSA.
- Leavers' licences are removed from the user but not reduced on the subscription.
- Plan changes create a new subscription and leave the old one running.
- Annual commitment terms limit when licences can be reduced, which people forget.
- Distributor names for client tenants do not match PSA company names.
Newer subscription terms made it harder. Monthly and annual terms can sit side by side for the same licence, each with its own renewal date, and a client can hold both. Reducing licences is only possible at the right point in each term, which a spreadsheet does not track.
What licence drift costs
| Mismatch | Effect |
|---|---|
| Bought but not billed | You pay for licences the client never pays you for |
| Bought but not assigned | Waste on both sides, and a client who notices eventually |
| Billed but not bought | The client pays for something they do not have |
| Commitment dates missed | Licences stuck for another term that could have been cut |
| Hours of manual checking | Finance time spent every month on the same task |
Microsoft's licensing terms and commitment rules are set by Microsoft and your distributor agreement. We read the data, we do not interpret the terms for you.
The monthly licence reconciliation
- Pull of subscriptions per client from your distributor's API or Partner Center, with SKU, quantity, term and renewal date.
- Pull of assigned licences per tenant from Microsoft Graph, using the delegated access you already hold.
- Pull of recurring billing lines per client from your PSA (ConnectWise PSA, Autotask, HaloPSA or others).
- A mapping table of distributor customers, tenants and PSA companies, set up once and maintained as clients join.
- A report per client and SKU of purchased, assigned and billed quantities, with each mismatch explained in plain terms.
- Suggested actions (update PSA line, reduce at renewal, assign to new user) and a list of upcoming commitment dates where reductions are possible.
If you use a billing reconciliation tool already, we check whether it covers this before suggesting a build. Many distributors now offer partial versions, and we will tell you if yours is enough.
Finance, a few days before the invoice run
The reconciliation runs automatically. Finance opens a list of mismatches, short enough to work through before lunch: two clients to add licences to their PSA billing, one tenant with three unassigned licences where the renewal date is next month, and one plan change still leaving the old subscription running. The account manager checks with the client where needed, and the invoice run goes out right.
Over time the list gets shorter, because engineers see the result of forgetting the PSA step. Some MSPs go further and have the reconciliation update the PSA automatically for simple cases, with a person approving.
Does your licence billing look like this?
- Month-end licence checking is a spreadsheet exercise.
- You have discovered clients billed for fewer licences than you buy.
- Leavers' licences keep running on subscriptions.
- Commitment end dates pass without a review.
- Distributor, tenant and PSA names do not line up.