Cash conversion cycle explained: DSO, DIO and DPO in one worked example
The cash conversion cycle formula is DIO plus DSO minus DPO. Work through one example from ERP numbers and see which finance workflows move each term.
Part of the accounts payable and invoice processing guide.

The cash conversion cycle (CCC) is the number of days cash stays tied up between paying for inputs and collecting from customers. The formula is CCC = DIO + DSO - DPO: days inventory outstanding plus days sales outstanding, minus days payables outstanding. All three come from numbers already in your ERP. A company with 30 days of inventory, 50 days of receivables and 35 days of payables has a cash conversion cycle of 45 days.
For a B2B software or services company with little or no inventory, the cycle comes down to DSO minus DPO. Both levers sit in finance workflows: invoicing and collections on one side, payment runs on the other. This guide works one hypothetical company through the formula, then shows which workflow moves each term.
Key takeaways
- CCC = DIO + DSO - DPO. Inventory days plus receivable days, minus payable days. The result is in days.
- DIO and DPO use cost of goods sold; DSO uses credit sales. All three use the same day count, usually 365 for a year.
- In the worked example, the cycle is 45 days. Cutting DSO by 10 days and extending DPO by five brings it to 30 days.
- Each day has a dollar value. In the example, one day of DSO holds $35,000 of cash and one day of DPO holds $20,000.
- For companies without inventory, CCC = DSO - DPO, so collections and payment timing are the whole cycle.
What is the cash conversion cycle?
The cash conversion cycle measures how long each dollar spent on operations takes to come back as cash from customers. A shorter cycle means less working capital is tied up running the business.
OpenStax's Principles of Finance defines the cash cycle, "also called the cash conversion cycle," as the inventory conversion period plus the receivables collection period, minus the payables deferral period (OpenStax, 19.1). In practitioner shorthand those three periods are DIO, DSO and DPO.
The logic follows the cash. You pay vendors, hold inventory until it sells, then wait for customers to pay. Payables are the offset: every day you take to pay a vendor is a day the cycle does not have to fund.
The cash conversion cycle formula, term by term
The cash conversion cycle formula is CCC = DIO + DSO - DPO, with each term calculated on the same period and day count. The table shows each term's inputs.
| Term | What it measures | Formula | Denominator |
|---|---|---|---|
| DIO (days inventory outstanding) | Days to turn inventory into sales | Average inventory ÷ COGS × days | Cost of goods sold |
| DSO (days sales outstanding) | Days to collect after a credit sale | Average AR ÷ credit sales × days | Credit sales |
| DPO (days payables outstanding) | Days to pay vendors | Average AP ÷ COGS × days | Cost of goods sold |
These match the definitions in the OpenStax text, where inventory and payables turnover are calculated on cost of goods sold and receivables turnover on credit sales, each over 365 days. The Corporate Finance Institute gives the same formula, CCC = DIO + DSO - DPO.
Average balances smooth out month-end timing. A large payment run on the last day of the period can swing an ending AP balance, and with it DPO. Averaging the opening and closing balances reduces that noise. Whichever you choose, use it every period. For each term on its own, see what days sales outstanding is and how to calculate days payable outstanding.
A worked example: one company, three terms
This hypothetical B2B company sells hardware with a software subscription, so it holds some inventory. Every figure below is invented for illustration. The year has 365 days, and all sales are on credit.
| Input (annual) | Amount |
|---|---|
| Credit sales | $12,775,000 |
| Cost of goods sold | $7,300,000 |
| Average accounts receivable | $1,750,000 |
| Average inventory | $600,000 |
| Average accounts payable | $700,000 |
Step 1: Calculate DSO
DSO is average receivables divided by credit sales, times the days in the period.
$1,750,000 ÷ $12,775,000 × 365 = 50.0 days
Credit sales per day are $12,775,000 ÷ 365 = $35,000. Receivables of $1,750,000 equal 50 days of sales.
Step 2: Calculate DIO
DIO is average inventory divided by cost of goods sold, times the days in the period.
$600,000 ÷ $7,300,000 × 365 = 30.0 days
Cost of goods sold per day is $7,300,000 ÷ 365 = $20,000. Inventory of $600,000 equals 30 days of cost.
Step 3: Calculate DPO
DPO is average payables divided by cost of goods sold, times the days in the period.
$700,000 ÷ $7,300,000 × 365 = 35.0 days
Payables of $700,000 equal 35 days of cost at $20,000 a day.
Step 4: Combine the terms
Add inventory days and receivable days, then subtract payable days.
CCC = 30.0 + 50.0 - 35.0 = 45 days
On average, cash this company spends on goods comes back 45 days later.
Step 5: Put a dollar value on a day
Each term's daily base turns days into dollars, which is how a CFO compares the levers. The figures stay hypothetical.
| Change | Daily base | Cash effect |
|---|---|---|
| DSO down 10 days (50 → 40) | $35,000 of credit sales | $350,000 less tied up in receivables |
| DPO up 5 days (35 → 40) | $20,000 of cost of goods sold | $100,000 more held in payables |
| New cycle | 30 + 40 - 40 = 30 days |
The two changes cut the cycle from 45 days to 30 and free $450,000 of working capital in this model. The receivables lever is larger here because a day of sales is worth more than a day of cost.
The same company without inventory
If the company sold only software and held no inventory, DIO would be zero and the cycle would be DSO minus DPO. Using the original figures, that is 50 - 35 = 15 days.
One caution for software companies: cost of goods sold is often small next to total vendor spend, so DPO on COGS can look odd. Some teams calculate DPO on total vendor purchases instead. Either choice works if you state it and keep it the same every period.
Can the cash conversion cycle be negative?
Yes. A negative cash conversion cycle means you collect from customers before you pay vendors. Suppliers are effectively funding operations.
Software companies that bill annually upfront can see this. Cash arrives at the start of the contract, while hosting and contractor bills are paid over the following weeks. A negative cycle is a strength, but it can hide slow collections on the customers who do not pay upfront. Watch DSO by segment as well as in total.
Which workflows move each term?
DSO moves with invoicing, reminders and Cash Application. DPO moves with payment-run timing. DIO moves with purchasing and inventory planning. Finance owns the first two directly.
| Term | Workflow | What moves it |
|---|---|---|
| DSO | Invoicing | Invoices go out on the billing date, not days later |
| DSO | Reminders and dunning | A fixed cadence tied to the due date, paused on disputes |
| DSO | Cash Application | Payments applied the day they arrive, so AR is not overstated |
| DPO | Payment runs | Approved bills paid on their due date, not on approval |
| DPO | Early-payment discounts | Discounts taken only when worth more than holding the cash |
| DIO | Purchasing and inventory | Reorder points and purchase timing (outside finance ops) |
On the DSO side, the biggest gains usually come from invoice lag and unapplied cash. An invoice sent four days late adds four days to collection before the customer has seen it. Cash that has arrived but sits unapplied keeps receivables, and DSO, overstated. Our guide to days sales outstanding covers the formula variants, and how to reduce DSO covers the levers.
On the DPO side, the lever is paying on time, not early. Teams that release every approved bill in the next run pay many invoices days before they are due. Scheduling each bill to its due date extends DPO without paying anyone late. The exception is an early-payment discount worth more than the cash held, covered in how to capture an early-payment discount before the deadline passes.
How to make the cycle a number you can trust
The cash conversion cycle is only as accurate as the balances behind it, and three data problems distort it most. Fix these before reporting the trend to the board.
- Unapplied cash overstates DSO. If payments sit in a suspense account, receivables look higher than they are.
- Unposted vendor bills understate DPO. Bills received but not entered in the ERP leave AP too low, so DPO looks shorter than it is.
- Changing formulas breaks the trend. Switching from ending to average balances, or from 365 to 360 days, moves the number without any change in the business.
Loopfour, the deterministic finance workflow automation platform, runs the workflows that feed these balances: invoices issued from the approved source, reminders on a fixed cadence, Cash Application on matching rules, and bills scheduled to their due date with approvals in Slack. Each step is predefined, so the same input produces the same posting every time, and the AR and AP balances behind DSO and DPO reflect what happened that day. If your cycle is long because of slow invoicing or early payments, book a workflow review and we will map where the days go.
Frequently asked questions
What is the cash conversion cycle formula?
The cash conversion cycle equals days inventory outstanding plus days sales outstanding minus days payables outstanding (CCC = DIO + DSO - DPO). DIO and DPO are calculated on cost of goods sold, DSO on credit sales, and all three use the same number of days in the period.
What is a good cash conversion cycle?
Lower is better, but there is no universal target. Compare the figure with your own trend over time and with companies in the same industry, because a distributor holding inventory and a software company with none will have very different cycles.
Can the cash conversion cycle be negative?
Yes. A negative cycle means the company collects from customers before it pays its vendors, so suppliers effectively finance operations. Software companies that bill annually upfront can see this.
How do you calculate the cash conversion cycle for a SaaS company with no inventory?
With no inventory, DIO is zero, so the cash conversion cycle is DSO minus DPO. Use the same period and the same day count for both terms, and calculate DPO on a consistent cost base every period.
How do you improve the cash conversion cycle?
Shorten DSO by invoicing on time, running a fixed reminder cadence and applying cash the day it arrives. Extend DPO by paying approved bills on their due date rather than early, while still taking early-payment discounts that are worth more than holding the cash. Reduce DIO where inventory exists.
Conclusion
The cash conversion cycle is DIO plus DSO minus DPO, calculated from inventory, receivables, payables, sales and cost of goods sold. In the worked example it is 45 days, and two workflow changes bring it to 30. For most finance teams, the cycle moves when invoices go out on time, cash is applied the day it lands, and bills are paid on their due date.
Tell us the one workflow your team dreads. We will show it running. Book a demo.
Sources
- OpenStax, Principles of Finance 2e: 19.1 What Is Working Capital?
- Corporate Finance Institute: Cash Conversion Cycle
