OTC KPIs: DSO and friends explained
The core KPIs for measuring order-to-cash health are DSO (days sales outstanding), the collection effectiveness index (CEI), invoice accuracy rate, and order-to-cash cycle time. Together they tell you how fast you're getting paid, how well your collections team is performing relative to what's actually collectible, and how many errors are leaking into the process before collections even starts.
The four KPIs that matter
DSO (days sales outstanding) is the headline metric almost everyone tracks, and for good reason: it's a direct read on how much cash is tied up in unpaid invoices relative to your sales volume. The formula is (accounts receivable / total credit sales) x number of days in period. A rising DSO usually means either collections is slipping or credit terms are being extended too loosely; a falling DSO usually means collections is working, though it can also mean sales is declining (fewer new invoices dilute the average less).
Collection effectiveness index (CEI) answers a narrower, arguably more useful question: of the receivables that were actually collectible during the period, what percentage did you collect? The formula is roughly ((beginning receivables + credit sales - ending total receivables) / (beginning receivables + credit sales - ending current receivables)) x 100. CEI is less sensitive to swings in sales volume than DSO, which makes it a fairer way to judge whether your collections team is doing its job well, independent of whether the sales team had a big or small month.
Invoice accuracy rate measures the percentage of invoices issued without an error in price, quantity, customer details, or terms. It's calculated as (error-free invoices / total invoices issued) x 100. This one gets overlooked because it doesn't sound like a "finance" metric, but a low invoice accuracy rate is often the root cause behind a bad DSO: customers don't pay disputed invoices, and every dispute adds days or weeks while it gets resolved.
Order-to-cash cycle time is the full clock: days from order placement to cash received and applied. It's the sum of every stage's delay, so it's the best single number for spotting whether the problem is upstream (slow fulfillment or invoicing) or downstream (slow collections).
Benchmark table
| KPI | Formula | Healthy benchmark | Warning sign |
|---|---|---|---|
| DSO | (AR / credit sales) x days | Within 5-10 days of payment terms | 15+ days beyond terms |
| CEI | (beginning AR + sales - ending total AR) / (beginning AR + sales - ending current AR) x 100 | 80%+ | Below 70% |
| Invoice accuracy rate | error-free invoices / total invoices x 100 | 98%+ | Below 95% |
| OTC cycle time | order date to cash-applied date | Varies by industry; B2B often 30-45 days | 60+ days for standard net-30 terms |
These benchmarks assume standard B2B terms (net-30 to net-60). Subscription and usage-based businesses, and industries with long project-based delivery cycles, will run these numbers differently, so compare against your own trend over time as much as against an external number.
Reading the KPIs together, not in isolation
A single KPI in isolation can mislead you. A company with DSO at 40 days on net-30 terms looks mediocre on its own, but if invoice accuracy is 99% and CEI is 88%, the real story is that collections is performing well and the gap is mostly customers paying slightly late, which is a very different problem (and a very different fix) than a company with the same 40-day DSO but 90% invoice accuracy and 65% CEI, where the real story is invoices going out wrong and collections failing to chase what's owed.
The most useful pattern to watch for is invoice accuracy trending down while DSO trends up in the following month or two. That lag is the invoice-to-collection pipeline showing you a problem before it fully shows up in cash flow, and it's usually the earliest warning sign available.
Where these numbers actually come from
All four of these KPIs assume you have clean, current, connected data across order capture, invoicing, and collections. If those systems don't talk to each other, you're often calculating DSO or CEI off a monthly export that's already stale by the time anyone reviews it. Getting these KPIs to update automatically and reliably, rather than living in a manually rebuilt spreadsheet each month, is usually one of the first concrete wins from a properly built order-to-cash automation project, before you even get to the process changes themselves.