Billing mismatches are silent profit killers. They do not trigger alerts. Your clients do not know about them. Your accounting system does not flag them. They sit there, month after month, draining margin until someone runs a reconciliation and finally sees the damage.
If you run an MSP, this is probably happening right now. And the longer it goes unchecked, the more revenue walks out the door.
What Is a PSA Billing Mismatch?
A PSA billing mismatch happens when a service, product, or seat count in your PSA billing does not match what your vendor is actually charging you for the same client. It goes in two directions.
Under-mismatch: Your vendor invoice shows more seats than your PSA billing. You are paying for licenses you are not billing back to the client. This is revenue leakage.
Over-mismatch: Your PSA billing shows more seats than the vendor invoice. You are charging more than you are paying. This is less common, but it creates a real client trust risk.
The vast majority of mismatches go in one direction: under. Industry data puts the split at roughly 85% under-mismatches and 15% over-mismatches for a typical MSP. In other words, most of the time you are leaving money on the table.
What Causes These Mismatches?
Mismatches do not come from one big failure. They come from small, routine gaps that repeat across your client base every month.
Client Changes Not Captured in PSA
This is the most common cause. A client onboards a new employee on Monday morning. IT provisions the Microsoft 365 account within the hour. The PSA agreement update goes on the to-do list and gets buried. By month-end, nobody remembers it happened.
Misaligned Product Names
Your PSA says "Microsoft 365 Business Std." Your vendor export says "Microsoft 365 Business Standard (NCE)." Same product. Different label. Manual reconciliation misses it. Automated fuzzy matching catches it.
Vendor-Side Product Changes
Microsoft updates a product name, changes a SKU code, or bundles products differently during a transition period. Your PSA keeps the old name. The vendor charges under the new one. The match breaks, and nobody notices until someone audits the numbers.
How to Identify Billing Mismatches
Systematic mismatch identification means comparing two datasets at the line-item level: your vendor billing export and your PSA billing export. The process works like this:
- Normalize both datasets so names, encoding, and column structures are consistent.
- Run an exact match on each client-plus-product combination.
- Fuzzy match the remaining unmatched rows and assign confidence scores.
- Flag matched pairs where the quantities differ.
- Flag vendor rows with no PSA counterpart. These are likely unbilled.
- Flag PSA rows with no vendor counterpart. These are potentially overbilled.
A reconciliation tool handles this entire process in seconds once you upload the two CSV files. The output is a prioritized list: highest-dollar mismatches first, with match quality indicated for each row.
How to Fix Mismatches and Prevent Them
Fixing What Already Exists
Start with the PSA agreement. Update each line to reflect the correct quantity, then issue a supplemental invoice for the current billing cycle. For larger historical gaps, have a direct conversation with the client and adjust billing transparently. Most clients understand that accurate billing protects both sides.
Preventing Future Leakage
Build a ticket-based change management process. Every seat addition or removal should route through your service desk with a billing update step baked in. That handles the process side.
Then run monthly reconciliation to catch anything that slips through. Both layers are necessary. Process reduces mismatches. Reconciliation catches what process misses. One without the other leaves gaps.
Frequently Asked Questions
Do billing mismatches always mean money lost?
Almost always. Extra vendor seats with no PSA counterpart represent unbilled revenue. In the less common case where PSA shows more than the vendor, you are overbilling a client. That is a trust risk even if it feels financially neutral in the short term.
How much leakage is typical for MSPs?
Industry benchmarks suggest 8 to 15 percent revenue leakage from billing mismatches. At the low end, a $40,000 per month Microsoft 365 book represents $3,200 per month in uncaptured revenue. This is consistent with what we see on first audits through Leakage Finder.
Can mismatches be prevented entirely?
No. Process and automation reduce mismatches significantly, but they cannot eliminate them. Clients will always make changes outside of normal channels. Monthly reconciliation is the reliable backstop that ensures every mismatch is caught within 30 days.
What tools do I need to run a billing reconciliation?
You need two things: a vendor billing export (CSV from your distributor or vendor portal) and a PSA billing export (CSV from ConnectWise, Autotask, HaloPSA, or similar). A reconciliation tool like Leakage Finder compares the two files, matches line items using exact and fuzzy logic, and surfaces mismatches ranked by dollar impact.
Stop Guessing. Start Reconciling.
Upload your vendor and PSA billing exports to Leakage Finder and see exactly where your revenue is leaking. Most MSPs find mismatches on the first run. The average time from upload to results is under two minutes.
Try Leakage Finder Free