Take what clients owe you on the last day of the month, divide it by what you invoiced over the last three months, and multiply by the number of days in those three months. Use invoice totals, not revenue from your P&L, and treat VAT the same way on both sides. If you bill annual renewals up front, take them out and track them on their own, because one batch can add six days or more to DSO without any client paying a day later.
In this article
The short version
- DSO equals debtors at month end divided by the last three months of invoicing, multiplied by the days in that period, such as 91 for April to June.
- Use invoiced value rather than P&L revenue, treat VAT the same way on both sides, and measure on the last day of every month.
- In the worked example, £118,000 of debtors against £260,000 invoiced over 91 days gives 41.3 days, about 11 days beyond 30-day terms.
- A £36,000 batch of annual renewals raised in late June lifts the same MSP's DSO to 47.3 days without any client paying later.
- Track a core DSO with annual prebills removed alongside a named list of unpaid renewals, and bring DSO down by invoicing on the day and using direct debit.
The formula to use
DSO = debtors at month-end ÷ invoiced value over the last three months × days in those three months
You'll see other versions, including an average-balance method and a countback method that works backwards month by month. For a monthly management figure at an MSP, this one does the job and takes five minutes. It needs one number from your aged receivables report and one from your sales invoices.
A few choices keep it honest from month to month:
- Three months, not one. Project and hardware invoices arrive unevenly, and a single heavy month can swing a one-month figure by several days.
- Invoiced value, not revenue. Anything billed in advance sits in deferred income, so it's missing from revenue but fully present in debtors.
- VAT on both sides or neither. Your debtor balance includes VAT and P&L sales don't, and mixing them overstates DSO by about a fifth on standard-rated sales.
- The last day of the month, every month. An MSP that invoices on the 1st has a very different balance on the 2nd than on the 30th.
- Clear the noise first. Unallocated payments and unapplied credit notes make paid invoices look unpaid.
A worked example
Take an MSP with around 40 clients on monthly managed services, invoiced on the 1st in advance on 30-day terms, plus projects and hardware billed on delivery. All figures are ex VAT.
It invoiced £80,000 in April, £85,000 in May and £95,000 in June, so £260,000 over the quarter. At 30 June its aged receivables report totals £118,000. April to June is 91 days.
£118,000 ÷ £260,000 × 91 = 41.3 days
On 30-day terms, that's about 11 days beyond what clients agreed to. The figure on its own won't tell you who those clients are, so keep each month's aged report alongside it. When DSO moves, the report shows which accounts moved it.
How annual prebilled renewals distort DSO
Annual renewals billed up front are the usual cause of a sudden DSO jump at an MSP. Suppose that on 24 June the same MSP raises £36,000 of annual renewals for backup and licensing, covering July to the following June, on 30-day terms.
At 30 June, debtors are now £154,000 and the quarter's invoicing is £296,000.
£154,000 ÷ £296,000 × 91 = 47.3 days
DSO has jumped six days and nobody has paid later. Use P&L revenue instead of invoiced value and it's worse: the renewals aren't June revenue, so debtors rise by £36,000 while sales don't move, giving 53.9 days. The distortion runs the other way too. In a month with no renewals, a slow-paying renewal client can hide inside an otherwise healthy figure.
Split the measure in two:
- Core DSO. Run the formula on debtors and billing with annual prebills taken out. In the example, that brings June back to 41.3 days.
- Renewals collected. Track the share of renewal value paid by its due date, and keep a named list of every unpaid renewal. It's a short list, so names and amounts tell you more than a days figure.
If you'd rather lose the lump altogether, you can move clients to monthly billing of an annual commitment. The contract term stays the same and the invoice is spread over twelve months. Microsoft lets partners change an annual subscription's billing frequency at renewal, so check your own vendor terms for timing.
How to bring DSO down
DSO falls when money arrives on a predictable date, and most of the levers are about taking the date out of the client's hands.
- Invoice on the day. Every day the monthly run slips is a day added to DSO.
- Put managed services on direct debit. The amount can change from month to month under one mandate, with advance notice, which suits per-seat billing, and clients don't re-sign when seat counts change.
- Take a deposit or payment on order for hardware and large projects, so you're not funding kit your distributor has already charged you for.
- Send a reminder a few days before the due date as well as after it, on a fixed schedule.
- Log disputes with an owner and a date. A seat-count query left for a month is a month on your DSO.
Adfin collects direct debits at whatever amount you invoice each month, retries a failed collection for free and can fall back to the client's card, so a failed collection doesn't sit unnoticed until month end. For clients who pay by transfer or card, Adfin's Customer Agents chase over email, SMS or WhatsApp on a timing and channel suited to each client, send a statement when someone goes quiet and pass queries to the right person, all within rules you set and approve.
Common questions
What is the basic DSO formula? Debtors divided by credit sales, multiplied by the days in the period. For an MSP, use month-end debtors against the last three months of invoicing.
Should I use revenue or invoiced value? Invoiced value. Revenue leaves out anything billed in advance, such as annual renewals, while debtors include it in full, which can add ten days or more to DSO.
Do I include VAT when calculating DSO? Treat both sides the same way. Either use VAT-inclusive invoice totals against the debtor balance, or strip VAT out of both.
How often should an MSP calculate DSO? Monthly, on the last day of the month, using the same method each time.
How do I stop annual renewals distorting DSO? Calculate a core DSO with annual prebills taken out of both debtors and billing, and track renewals separately as the share of renewal value paid by its due date.
What's the quickest way to lower DSO? Move recurring managed services onto direct debit, so the payment date is fixed, and chase the remaining clients automatically from before the due date.
Sources
- ACCA - Working capital management (accurate as of September 2026) https://www.accaglobal.com/an/en/student/exam-support-resources/fundamentals-exams-study-resources/f9/technical-articles/wcm.html
- ICAEW Corporate Finance Faculty and Grant Thornton - Completion mechanisms: determining the final equity value in transactions (accurate as of September 2026) https://icaew.com/-/media/corporate/files/technical/corporate-finance/guidelines/icaew-completion-mechanisms-v2.ashx
- Microsoft Learn - Manage term duration and billing frequency (accurate as of September 2026) https://learn.microsoft.com/en-us/partner-center/customers/billing-frequency-changes
- Adfin - Next-generation direct debit (accurate as of September 2026) https://www.adfin.com/direct-debit-payments
- Adfin - Credit control (accurate as of September 2026) https://www.adfin.com/credit-control
