MSP Billing Accuracy: A Checklist for Managed Service Providers
A quarterly billing accuracy checklist built for MSPs. Covers per-device billing, PSA integration gaps, escalator enforcement, and the 5 things every MSP should audit.
Managed service providers have a billing accuracy problem that is structurally different from most B2B companies. Your revenue depends on device counts that change monthly, PSA systems that sync inconsistently, and multi-year contracts where the escalator clause gets ignored the day after signing. The average MSP we audit is under-billing by 2-4% of monthly recurring revenue. On a $3M book, that is $60K-$120K per year walking out the door.
This checklist is built specifically for MSPs. Run it quarterly. It takes about 90 minutes once you know where to pull the data.
1. Reconcile per-device and per-user counts against your RMM
This is the single biggest source of MSP billing leakage. Your contract says you bill per device or per user. Your PSA generates the invoice based on whatever count it has. Your RMM tool has the actual count. These numbers almost never match. Devices get added to the network and nobody updates the PSA. Users get onboarded and the seat count in ConnectWise or Autotask stays at last quarter's number.
Pull the current device or user count from your RMM (Datto, NinjaOne, ConnectWise Automate, whatever you run). Compare it to the count your PSA is billing. Do this for every managed client. If the RMM count is higher than the PSA count, you are under-billing. We typically find 5-15% device count drift within 6 months of contract signing.
2. Audit your PSA agreement configurations
ConnectWise Manage and Datto Autotask both use agreement objects to drive recurring billing. These agreements are configured manually, and manual configuration drifts. Check each agreement for: correct billing amount, correct billing cycle, correct addition and removal rules, and correct tax settings. A misconfigured agreement will silently under-bill every single month until someone notices.
Pay special attention to "additions" configuration in ConnectWise. If your agreement is set to not automatically bill for new additions, every device added after the initial setup is free to the client. That is not a feature. That is a leak.
3. Enforce annual escalators
MSP contracts almost always include a 3-5% annual escalator. MSP billing systems almost never apply them automatically. The escalator lives in the signed PDF. The PSA bills whatever rate was entered during onboarding. Year after year. A 4% escalator on a $8,000/month contract that goes unapplied for two years is $6,528 in lost revenue from a single client. Multiply that across 40 managed clients and the number gets uncomfortable fast.
Build a spreadsheet: Client Name, Contract Start Date, Escalator %, Current Billed Rate, Correct Rate After Escalation. Run it every January or on each contract anniversary. This is the single highest-ROI activity in MSP revenue operations.
4. Check for unbilled project work and out-of-scope hours
Every MSP does project work alongside managed services. Server migrations, network upgrades, new office buildouts. This work is supposed to be billed separately. In practice, technicians log time against the managed agreement instead of a project ticket, the hours get absorbed into the flat-rate contract, and the project work is never invoiced. Check your PSA for time entries logged against managed agreements that look like project work: large hour blocks, notes referencing migrations or installations, time from senior engineers who would not normally be doing routine managed work.
5. Verify tax and surcharge application
MSPs operating across multiple jurisdictions frequently misapply sales tax. If your PSA is configured with the wrong tax rate for a client's location, every invoice is wrong. Beyond tax, check whether you are billing contractual surcharges: after-hours support premiums, emergency response fees, on-site visit charges. These are in the contract. They are almost never in the PSA configuration.
The 5 things every MSP should audit quarterly
Here is the condensed version you can paste into your operations calendar. One: RMM-to-PSA device count reconciliation across all clients. Two: PSA agreement configuration review for billing rules and addition settings. Three: Annual escalator enforcement check against every active multi-year contract. Four: Project work billing audit to catch hours absorbed into managed agreements. Five: Tax rate and surcharge verification for every billing jurisdiction.
Each of these takes 15-20 minutes once you have the data pulled. The total quarterly investment is about 90 minutes. The typical recovery from running this checklist the first time is 2-4% of MRR, retroactively recoverable for most line items.
Why ConnectWise and Autotask don't solve this automatically
PSA tools are built for ticketing and workflow, not revenue assurance. ConnectWise Manage will happily bill the wrong amount every month without raising a flag, because it does not know what the contract says. It only knows what someone typed into the agreement configuration. Autotask has the same limitation. The PSA is an execution layer. It does what it is told. Nobody told it to read the contract.
The gap between the contract and the PSA configuration is where MSP revenue goes to die. Closing that gap manually is possible with the checklist above. Closing it automatically is what RevRecovery does. We ingest your contracts and your PSA data, flag every discrepancy, and calculate the dollar impact so you can recover it or correct it before the next billing cycle.
Either way, stop trusting your PSA to get it right. It will not. Run the checklist.
Stop reading about leakage. Find yours.
Upload five contracts and invoices. Get your first leakage report in minutes. Free.
Run Free Leak Scan