Operations

PSA Billing Mismatches: Identify and Fix Them Before They Cost You

6 min readOperations
LF

Written by

Leakage Finder Editorial Team

MSP billing reconciliation research and product team

Published
March 16, 2026

Helpful next step

See how this mismatch shows up in a ConnectWise billing workflow.

If you are researching a specific vendor-vs-PSA reconciliation problem, jump from the article into the matching compare page before you run your own audit.

MSP operations analyst identifying PSA billing mismatches on a dashboard

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.
Data reconciliation visualization showing matched and mismatched PSA billing entries
  • 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

Key takeaway

The real issue is rarely one broken row. It is the drift between vendor billing and PSA billing that keeps compounding until someone compares both exports line by line.

Next step

Turn this billing mismatch into a real audit.

Inspect the sample audit first, then run the same workflow on your own exports to see where mismatches, under-billing, and orphaned items are still hiding.

Related reading

Keep going with the next question MSP billing teams usually ask

Browse the blog

Share this article

Pass it to a teammate, drop it into a client thread, or save the link for your next billing review conversation.

PSA Billing Mismatches: Identify and Fix Them… | Leakage Finder