back to blog

The Missing Metric in MSP Accounts Receivable

Read Time 3 mins | Written by: Gradient MSP

DSO shows how fast invoices get paid but hides how long payment disputes stay open. Learn the missing metric MSPs should track.

Most MSPs track days sales outstanding (DSO). It is a good number, and it is incomplete. DSO tells you how long invoices take to get paid on average. It does not tell you how long a payment dispute sits unresolved, and that is where a lot of cash and goodwill quietly get stuck.

 

What Does DSO Miss About MSP Accounts Receivable?

 

DSO blends every invoice into one average, so it hides disputes. A client who pays on day 30 and a client who questions one line item for 90 days both fold into the same number.

 

Disputes also live in the wrong places. They show up in tickets, emails, and phone calls, not in the AR report, so nobody sees them as a group. The result: you know what is overdue, but not what is contested, or for how long.

 

What Is Dispute Age, and How Do You Measure It?

 

Dispute age is the number of days between the moment a client questions an invoice and the moment the question is resolved, whether that means a credit, a corrected invoice, or the client confirming the charge.

 

Track three numbers:

 

  • Dispute rate: invoices disputed divided by invoices sent
  • Dispute age: the median number of days disputes stay open (use the median so one very old case does not skew it)
  • Disputed dollars outstanding: the total value sitting in open disputes

 

Each one needs only a few fields on the invoice: a disputed flag, an opened date, a resolved date, and a reason code such as price, quantity, tax, scope, or other.

 

Illustrative example, not a benchmark: an MSP sends 200 invoices in a month and 10 are disputed, a 5% dispute rate. The median dispute stays open for 18 days, and $12,400 is tied up in open disputes. DSO alone would show none of this.

 

Why Does a Long Dispute Age Cost More Than the Invoice?

 

Because the cost compounds. Money stays tied up, and some clients hold the whole invoice until their question is answered, not just the disputed line. Every email and call spends staff time. And the longer a client waits for an answer, the more it dents their trust in your billing.

 

Reason codes make the metric more useful than the number itself. Quantity disputes point to counts that are out of sync. Price disputes point to a gap between the quote, the agreement, and the invoice. Tax disputes point to how the total was presented. Together, they are a map of where your billing breaks.

 

How Do You Shorten Dispute Age?

 

Start with three habits:

 

  1. Give every dispute an owner and a response time, so none waits in a shared inbox.
  2. Code every dispute by reason, and review the codes monthly.
  3. Fix the cause upstream, not just the invoice.

 

Many quantity and price disputes start long before the invoice goes out, with a mismatch between what vendors bill you, what your agreements say, and what lands on the client invoice. Gradient Reconcile compares your vendor invoices against your agreements, so those gaps are found and fixed before a client ever sees them. Fewer surprises on the invoice means fewer disputes to age.

 

FAQ

 

What is DSO, and why is it not enough?

DSO (days sales outstanding) is the average number of days it takes to collect payment after an invoice is sent. It is useful for cash flow, but it averages disputed and undisputed invoices together, so it cannot show how long disputes stay unresolved.

 

What is a good dispute age for an MSP?

There is no universal benchmark. Measure your own baseline for two months, then set a target and watch the trend and your oldest open case. A shrinking median is the signal that matters.

 

Where should I track disputes?

Wherever your invoices live: your accounting system or your PSA. All you need is a disputed flag, an opened date, a resolved date, and a reason code. A simple spreadsheet is enough to start.