Offboarding a user does not stop the bill

You removed the licence from the leaver. The tenant looks right. Next month the invoice is identical, because a licence and a seat you pay for are two different things.

The short answer. In CSP you are billed on the subscription quantity you bought, not on how many licences are assigned. Unassigning frees the seat. It does not reduce the quantity, so nothing changes on the invoice until somebody lowers the seat count on the subscription itself.
AN EMPLOYEE LEAVES. YOU DO EVERYTHING RIGHT. LICENCES ASSIGNED 41 you unassigned one TENANT LOOKS tidy nothing left behind SUBSCRIPTION QUANTITY 42 unchanged. still billed.
Unassigning a licence does not reduce the subscription. Microsoft bills the quantity you bought, not the number of people using it, and the invoice after an offboarding is identical to the one before.
Find your number first. It is free and takes about two minutes.

Drop in the Partner Center reconciliation CSV and an invoice export. Nothing uploads, there is no account, and the answer is either zero or it is money you have been paying every month.

Run the free check or try it on sample data

The two numbers people mix up

 Assigned licencesPurchased seats
What it isPeople currently holding itThe quantity on the subscription
Where you see itThe tenant, Entra, your M365 toolingPartner Center or your distributor
Offboarding changes itYesNo
You are billed on itNoYes

A tenant can show 14 assigned licences against a subscription of 30 indefinitely, with nothing anywhere flagging it. Nothing is broken and nobody made a mistake. The invoice is correct, and it is also wrong by sixteen seats a month.

Do not check in the same hour you offboard. Some automations deliberately delay pulling the licence so a mailbox conversion is not interrupted. Look the next day, or you will count queued removals as misses.

Three places the money goes

The window that decides whether you can stop it

Under New Commerce, a term is a commitment. Increases any time. Decreases and cancellations only in a short window right after a purchase or renewal. Outside it you pay until the term ends whether anyone uses the seat or not.

So finding an unused seat in week one is a refund, and finding the same seat in month seven is information you can act on at renewal. The deadline is short and the check is manual, which is exactly why the check is the thing that gets skipped.

How long is the window exactly? Nobody agrees
The length of that window is genuinely ambiguous. Check it, do not quote it. Microsoft's own material has said 72 hours in some places and seven calendar days in others, and distributors add their own policy on top. The shape is consistent; the number is not. Confirm it in Partner Center on the day you need it, because being wrong costs a term.
How to find them by hand, step by step
  1. Purchased quantity, per client and SKU. From the reconciliation file. Collapse the charge-type rows first: one subscription throws several rows a month, removals arrive negative, and a credit is money rather than a seat, so summing the Quantity column is quietly wrong.
  2. Assigned count, per client and SKU. From the tenant, with any tooling that reports it.
  3. Subtract, per SKU. Not per client. A client can be short on one product and over on another in the same month, and the totals cancel out and hide both.
  4. Then do the other comparison, which is a different problem. Purchased against what you invoiced. That gap is money you are owed rather than money you are wasting.

Three comparisons, three different problems

ComparisonA gap meansWho loses
Purchased vs assignedYou buy seats nobody usesYou, or the client
Purchased vs invoicedYou pay for seats you never charged forYou
Assigned vs invoicedThe client uses more than they are billed forYou

A tool that does one of these does not do the others. The free check on this site does the middle one, purchased against invoiced, which is the one that costs you money directly. Worth knowing which you have actually checked before deciding you have checked.

ONE CLIENT, ONE MONTH 42 seats on the Microsoft bill 4 seats invoiced to nobody 88.00 a month. 1,056.00 a year.
38 of them are on an invoice. The other four have been paid for every month since somebody added them.
Common questions

Does offboarding a user reduce the Microsoft 365 bill?

No. Offboarding unassigns the licence, which frees the seat for reuse. CSP invoices are calculated from the subscription quantity you purchased, so the bill does not change until the seat count on the subscription is reduced.

Why does my tenant show fewer licences than my Microsoft invoice?

Because they measure different things. The tenant shows assigned licences and the invoice follows purchased quantity. A tenant can show 14 assigned against a subscription of 30 indefinitely, with nothing flagging it.

Can I reduce Microsoft 365 seats mid-term?

Under New Commerce, increases are allowed any time, while decreases and cancellations are only permitted in a short window right after a purchase or renewal. Outside it the seat is paid for until the term ends. Microsoft material has described that window as both 72 hours and seven calendar days, so confirm the current figure in Partner Center rather than quoting one.

Is purchased versus assigned the same check as billing reconciliation?

No. Purchased versus assigned finds seats nobody uses. Purchased versus invoiced finds seats you pay for and never charged for. Assigned versus invoiced finds clients using more than they are billed for. Three separate comparisons, and a tool that does one does not do the others.

Last updated 12 August 2026. The mechanic is stable. The length of the NCE cancellation window is not, and is worth confirming on the day. SeatGap is our own tool, which is why this page says which of the three comparisons it does and which two it does not.

Check the names first: every Microsoft 365 rename since 2020, and the two that moved a name onto a different product.

You can stop reading and just run it

Two files, two minutes, no account, nothing uploaded. If the number comes back zero you have lost two minutes. If it does not, it has been costing you that every month.

Run the free check Want it to happen every month without you? That is €39 a month, and it is the only thing on this site you ever pay for.