Average days from invoice issue to cash applied. Earliest warning of cash-flow trouble.
At a glance
Average days from Receivables Invoice issue to Cash Receipt application. The single most-watched cash-flow KPI in Fortune 500 finance. Rising DSO is the earliest warning of cash-flow trouble.
| What it counts | Standard formula: DSO = (AR Balance ÷ Total Credit Sales) × Number of Days. Card uses 90-day rolling window. Oracle Fusion’s variant follows the same convention against AR_PAYMENT_SCHEDULES_ALL and RA_CUSTOMER_TRX_ALL. |
| Tax treatment | Includes tax in both numerator (AR open balance) and denominator (Credit Sales). Net result is the same as a tax-exclusive calculation. |
| AR balance | Open Receivables transaction Amount Due Remaining, gross of Credit Memos. Pulled from the AR aging snapshot. |
| Credit sales | Invoiced Revenue from Receivables (Cash Receipts excluded; only credit transactions count, otherwise DSO is artificially low). |
| Cash Sales / DTC prepaid | Excluded from both numerator and denominator. |
| Currency | Multi-Ledger: reporting currency. |
| Business Unit scope | Respects dashboard filter. |
| Time window | 30D vsP (rolling DSO computed on 90-day denominator) |
| Alert trigger | >45 days OR up >5 vsP, sentiment dso |
| Roles | owner, finance |
Calculation
Calculated automatically from your Oracle ERP Cloud data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.Worked example
A US Fortune 500 industrial-equipment distributor on Oracle ERP Cloud. Snapshot 14 Apr 26.| Component | Value |
|---|---|
| Open AR (excludes Cash Receipts) | $148,200,000 |
| 90-day Credit Sales (Invoiced Revenue) | $232,800,000 |
| Days in window | 90 |
| DSO (this card) | (148.2M / 232.8M) × 90 = 57.3 days |
| This period | Prior 30D | vsP | |
|---|---|---|---|
| DSO | 57.3 | 51.4 | +5.9 days |
- DSO at 57.3 days exceeds the alert threshold (45 days). Net-30 customers are paying ~27 days late on average. The card fires the sentiment alert.
- vsP is +5.9 days, above the 5-day jump threshold. Trend is bad and the threshold is breached. The Controller has 1 to 2 weeks to act before it spikes through.
- The breakdown helps diagnose. Six accounts in the 90+ aging bucket are pulling DSO up disproportionately. Resolving 3 of them would drop DSO back under 50.
- Net-30 textbook DSO is 35-40 days for healthy B2B (terms + 5 to 10 days slack). 57.3 days means the average is now Net-30 + 27 days late. Compare to last year’s same-quarter average; if 12 months ago it was 44, the trend is structural.
- Cash Sales correctly excluded. If this distributor included DTC prepaid web orders (which clear instantly via Stripe in their commerce stack), DSO would compute artificially low because cash hits same-day. The card excludes them so the number reflects credit-customer behaviour only.
Sibling cards merchants should reference together
| Card | Why pair it with DSO |
|---|---|
| Invoice Aging Summary | The bucket detail behind DSO. |
| A/R Aging Detail | Per-customer detail. |
| Cash Collected | Receipts side. Strong cash-collected days reduce DSO. |
| Overdue Invoice Value | Pressure target. Overdue % of AR drives DSO. |
| Cash Application Rate | Operations efficiency. |
| Customer Credit Utilisation | Predictive risk view. |
| Top B2B Accounts by Revenue | Concentration. |
| DSO Increase Alert | Threshold-based alert built on this card. |
Reconciling against the vendor’s own dashboard
Where to look in Oracle ERP Cloud: Oracle Fusion does not have a single standard DSO report (unlike SAP S/4HANA which ships a standard DSO Fiori app). Most Fortune 500 implementations build either:An OTBI analysis combining the Receivables Real Time and General Ledger Real Time subject areas with a calculated column for DSO The Account Receivables Dashboard in Oracle Analytics Cloud (OAC), which has a pre-built DSO tileWhy our number may legitimately differ from a manual calculation:
| Reason | Direction | Why |
|---|---|---|
| Window selection | Either | Some Controllers use 90-day rolling, some use trailing 12-month. Card defaults to 90-day. |
| Cash Receipts inclusion | Card excludes | Including Cash Receipt revenue artificially deflates DSO because they clear instantly. |
| Tax inclusion | Either | Some calculations use net-of-tax in both; others use gross. Card uses gross consistently. |
| Business Unit scope | Either | Card defaults to all BUs in the reporting ledger. |
| AR transaction type filter | Either | Some implementations exclude Chargebacks or Debit Memos from DSO; the card includes all credit transaction types by default. |
Known limitations / merchant FAQs
What is a “good” DSO for Fortune 500 commerce? Net-30 B2B target: 35 to 40 days. Net-60 target: 65 to 75. Net-90 target: 95 to 110. The healthy range is your terms + 5 to 15 days of slack. Anything beyond that signals collection or credit issues. Why is DSO rising even though cash collected is rising? Because revenue (denominator) is rising faster than cash. Or AR balance (numerator) is rising disproportionately due to a few late-paying customers. Drill into A/R Aging Detail to see who. What is the difference between DSO and BPDSO? BPDSO = Best Possible DSO (sales fully collected within terms). It is a theoretical floor. DSO ÷ BPDSO ratio shows collection efficiency; >1.5 means collections are slipping. Should I include Cash Receipts? No. Cash Receipts clear instantly so they push DSO toward zero artificially. DSO is meant to measure credit-customer payment behaviour. Multi-currency, FX impact? Each component (AR, Credit Sales) is translated to the reporting ledger currency at the period-average rate. The ratio is currency-neutral. FX shifts do not move DSO directly. What about subscription / recurring billing? Each billing cycle is treated as a credit sale. DSO captures whether subscribers pay on time. Healthy SaaS-adjacent businesses see DSO at terms + 0 to 5 days because subscriptions auto-charge. Is 45 days the right alert threshold? Default. Tunable per workspace. Net-60 businesses should set higher (~75-80). Net-30 with strict policy can set lower (40). Single-Ledger vs Multi-Ledger behaviour? Identical formula. Multi-Ledger scope just consolidates AR + Credit Sales across BUs in reporting currency. RMCS deferred revenue, does it bias DSO? Yes if you include it in Credit Sales. RMCS-deferred revenue not yet billed should not be in the denominator. The card uses Invoiced Revenue (billed) only, so the bias is avoided. How does this compare to SAP S/4HANA’s standard DSO Fiori app? SAP ships a built-in DSO tile; Oracle Fusion does not. SAP’s tile uses a similar formula but defaults to a calendar-month denominator vs our 90-day rolling. Our card matches a properly-built OTBI analysis on Receivables; an out-of-the-box SAP report on the same data set may differ by a few days due to denominator window choice. How does this compare to NetSuite’s DSO? Same formula, same logic, different underlying tables (NetSuite’stransaction + transactionAccountingLine vs Oracle’s RA_CUSTOMER_TRX_ALL + AR_PAYMENT_SCHEDULES_ALL). Companies running both during a NetSuite-to-Fusion upmarket migration see the same DSO figure across the cutover, which is the point of vendor-neutral reconciliation.