The bill that grows while invoices stay the same
The monthly bill from your distributor or cloud programme arrives as a file with thousands of lines: every customer, every subscription, every seat change, every pro-rata adjustment. Your finance assistant opens it next to last month's customer invoices and works through it, customer by customer. It takes days. Somewhere in there, a customer added twelve seats mid-month and nobody updated their invoice. Another customer cancelled a subscription but is still being billed for it.
The first you hear of the second is an angry email. The first you hear of the first is never, unless someone checks.
Why the monthly bill and customer invoices drift apart
In cloud reselling, customers and your own team can change seats at any time through admin portals, and the supplier bills you for exactly what was provisioned. Your customer invoices come from a different place: a spreadsheet, a recurring invoice template, or a PSA tool contract that someone updates when they hear about a change.
There is also the question of how each customer is billed. Some pay monthly in arrears, some annually in advance, some have bundled pricing that includes support. The supplier bill knows none of this.
| Mismatch | What causes it |
|---|---|
| Seats billed to you, not to the customer | Added in the admin portal, invoice not updated |
| Customer billed for cancelled subscription | Recurring invoice never stopped |
| Pro-rata lines unexplained | Mid-month changes not understood |
| Subscription with no customer | Trial or internal use never tagged |
| Price difference | Supplier price rose, customer price did not |
What the drift costs
Unbilled seats are margin you pay for and never recover. Overbilled customers cost you credibility and credit notes. The manual reconciliation itself takes days of skilled time every month, and in a growing cloud practice the file gets bigger every month while the team stays the same size.
Nobody enjoys this work, so it is often rushed at month end, which is exactly when mistakes creep in.
The monthly reconciliation we build
- Bill intake: the supplier's monthly bill is loaded from its API or billing export as soon as it is published, and each line is parsed into customer, subscription, product, quantity, period and cost.
- Customer mapping: each supplier customer or tenant ID is mapped once to your customer record in your accounts or PSA system, with new, unmapped IDs sent to a review list.
- Billing rules: each customer's billing arrangement, monthly or annual, bundled or itemised, your sell price or margin rule, is held as settings rather than in someone's head.
- Draft invoices: customer invoice lines are drafted from the bill and the billing rules, and pushed as draft invoices into Xero, QuickBooks, Sage or your PSA tool.
- Difference report: the draft is compared with last month and with the previous customer invoice, and changes are listed with their cause: seat added, subscription cancelled, price change, pro-rata.
- Exceptions: subscriptions with no customer, negative lines and unusual jumps go to a person to decide before anything is sent.
Finance still approves and sends invoices. The reconciliation does the matching and makes the differences visible.
Month end with the reconciliation running
The bill lands, and within the same day there is a set of draft invoices and a short list of differences to review. The finance assistant spends their time on the twenty lines that need thought, not the thousands that match. Account managers get a note of customers whose seat counts moved, which is often the first sign of growth or trouble.
Is your cloud billing drifting?
- Reconciling the monthly cloud bill takes more than a day.
- You have found seats you were paying for but not billing.
- Customers have been billed for subscriptions they cancelled.
- Supplier tenant IDs are matched to customers by memory.
- Customer invoices come from a spreadsheet rather than from the bill.