> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vortexiq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Days Sales Outstanding (DSO), Sage

> Average days from invoice issue to cash applied. Earliest warning of cash-flow trouble. How to read it, why it matters, and how to act on it.

**Metrics type:** [Key Metrics](/nerve-centre/overview#metrics-types-explained)  •  **Category:** [Ecommerce Platform](/nerve-centre/connectors#connectors-by-type)

> Average days from invoice issue to cash applied. Earliest warning of cash-flow trouble.

## At a glance

> Average days from Sage Intacct Invoice issue to Cash Receipt application. The single most-watched cash-flow KPI in mid-market commerce. Rising DSO is the earliest warning of cash-flow trouble. Card uses the standard formula (`AR Balance ÷ Total Credit Sales × Days`) and respects Multi-Entity Console + Customer dimension scope.

|                              |                                                                                                                                         |
| ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**           | Standard formula: `DSO = (AR Balance ÷ Total Credit Sales) × Number of Days`. Card uses 90-day rolling window.                          |
| **Tax treatment**            | Includes tax in both numerator (AR) and denominator (Credit Sales). Net result is the same as a tax-exclusive calculation.              |
| **AR balance**               | Open Invoice Amount Due, gross of Credit Memos. Pulled from `ARINVOICE.AMOUNTDUE` summed across all open Invoices.                      |
| **Credit sales**             | Invoiced Revenue (Cash Receipts with revenue offset excluded; only credit-terms transactions count, otherwise DSO is artificially low). |
| **Cash Sales / DTC prepaid** | Excluded from both numerator and denominator.                                                                                           |
| **Currency**                 | Multi-Entity Console: each component translated to reporting currency. Ratio is currency-neutral.                                       |
| **Entity scope**             | Respects dashboard filter; defaults to all connected entities.                                                                          |
| **Customer dimension**       | The card surfaces the headline. Pivoting by Customer dimension shows per-customer DSO, the killer cut for B2B AR triage.                |
| **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 Sage 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 B2B distributor on Sage Intacct Multi-Entity Console. Snapshot 14 Apr 26.

| Component                                            | Value                                 |
| ---------------------------------------------------- | ------------------------------------- |
| Open AR (excludes Cash Receipts with revenue offset) | \$9,840,000                           |
| 90-day Credit Sales (Invoiced Revenue)               | \$16,200,000                          |
| Days in window                                       | 90                                    |
| **DSO (this card)**                                  | **(9.84M ÷ 16.20M) × 90 = 54.7 days** |

|     | This period | Prior 30D | vsP       |
| --- | ----------- | --------- | --------- |
| DSO | 54.7        | 49.4      | +5.3 days |

By Customer dimension (top 5 contributors to DSO drift):

| Customer                | AR          | Days past terms | DSO contribution |
| ----------------------- | ----------- | --------------- | ---------------- |
| Apex Industrial Supply  | \$1,240,000 | +28             | +6.8 days        |
| Northwind Manufacturing | \$980,000   | +22             | +4.1 days        |
| Helios Wholesale        | \$620,000   | +18             | +2.0 days        |
| Vortex Energy LLC       | \$480,000   | +14             | +1.2 days        |
| Stella Components Co    | \$360,000   | +9              | +0.6 days        |

Five things to notice:

1. **DSO at 54.7 days exceeds the alert threshold (45 days).** Net-30 customers are paying \~25 days late on average. The card fires the sentiment alert.
2. **vsP is +5.3 days, just over the 5-day jump threshold.** Trend is bad. The Controller has a week to act before it spikes through 60 days.
3. **The Customer dimension cut is the actionable view.** Apex Industrial Supply alone is dragging DSO up by 6.8 days. A single payment-terms renegotiation conversation could drop DSO by 5 days. Without the Customer dimension cut, the Controller would chase 200 accounts; with it, they call 5.
4. **Net-30 textbook DSO is 35-40 days** for healthy B2B (terms + 5-10 days slack). 54.7 days means the average is now Net-30 + 25 days late. Compare to last year's 42 to confirm structural drift.
5. **Cash Sales correctly excluded.** If this distributor included DTC prepaid web orders (which clear instantly), DSO would compute artificially low because cash hits same-day. The card excludes them.

## Sibling cards merchants should reference together

| Card                                                                                    | Why pair it with DSO                                   |
| --------------------------------------------------------------------------------------- | ------------------------------------------------------ |
| [Invoice Aging Summary](/nerve-centre/kpi-cards/sage/invoice-aging-summary)             | The bucket detail behind DSO.                          |
| [A/R Aging Detail](/nerve-centre/kpi-cards/sage/a-r-aging-detail)                       | Per-customer aging bucket. The Customer-dimension cut. |
| [Cash Collected](/nerve-centre/kpi-cards/sage/cash-collected)                           | Receipts side. Strong cash-collected days reduce DSO.  |
| [Overdue Invoice Value](/nerve-centre/kpi-cards/sage/overdue-invoice-value)             | Pressure target. Overdue % of AR drives DSO.           |
| [Cash Application Rate](/nerve-centre/kpi-cards/sage/cash-application-rate)             | Operations efficiency.                                 |
| [Customer Credit Utilisation](/nerve-centre/kpi-cards/sage/customer-credit-utilisation) | Predictive risk view.                                  |
| [Top B2B Accounts by Revenue](/nerve-centre/kpi-cards/sage/sage-top-b2b-accounts)       | Concentration.                                         |
| [DSO Increase Alert](/nerve-centre/kpi-cards/sage/dso-increase-alert)                   | The trigger when DSO breaks vsP threshold.             |

## Reconciling against the vendor's own dashboard

**Where to look in Sage Intacct:**

Sage Intacct does not ship a standard DSO report. Most merchants build it as an Interactive Custom Report or as a Sage Intacct Dashboard performance card. The closest native equivalents:

> **Reports → Receivables → AR Aging Summary** (provides the AR balance numerator)
> **Reports → Receivables → AR Ledger** (transaction-level AR with payment dates)
> **Interactive Custom Report (ICR)** with the formula `(SUM AR) ÷ (SUM Credit Sales × 90) × 90`
> **Sage Intacct Performance Card** (some Implementation Partners pre-build this)

**Why our number may legitimately differ from a manual calculation:**

| Reason                         | Direction         | Why                                                                                                                                                                                          |
| ------------------------------ | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Window selection**           | Either            | Some Controllers use 90-day rolling, some trailing 12-month. Card defaults to 90-day.                                                                                                        |
| **Cash Receipts inclusion**    | Card excludes     | Including Cash Receipts with revenue offset 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.                                                                                                    |
| **Multi-Entity scope**         | Either            | Card defaults to all entities.                                                                                                                                                               |
| **Revenue Recognition timing** | Card may be lower | If Intacct Contracts is in use, deferred revenue is excluded from Credit Sales, which lowers the denominator and raises computed DSO. The card honours Intacct's recognised-only convention. |

**Cross-connector reconciliation:**

This card has no commerce-platform counterpart. Commerce platforms collect at order placement; DSO is meaningless on the commerce side. The relevant cross-connector relationships:

* [stripe.stripe\_payouts\_pending](/nerve-centre/stripe/stripe_payouts_pending): captures the card-payment lag (typically 2-3 days), not credit-terms DSO.
* [paypal.pp\_payouts\_pending](/nerve-centre/paypal/pp_payouts_pending): same for PayPal.

## Known limitations / merchant FAQs

**What is a "good" DSO?**
Net-30 B2B target: 35-40 days. Net-60 target: 65-75. Net-90 target: 95-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 (effectively). Or AR balance (numerator) is rising disproportionately due to a few late-paying customers. Drill into [A/R Aging Detail](/nerve-centre/kpi-cards/sage/a-r-aging-detail) by Customer dimension 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 with revenue offset?**
No. They 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 reporting currency per Intacct's Currency Configuration. The ratio is currency-neutral. FX shifts do not move DSO directly.

**Does Intacct Contracts and Revenue Management bias DSO?**
Yes if you include deferred revenue in Credit Sales. Contract-deferred revenue not yet billed should not be in the denominator. The card uses Invoiced Revenue (billed) only, so the bias is avoided. SaaS-subscription Intacct merchants will see DSO roughly track terms because subscriptions auto-charge.

**Is 45 days the right alert threshold?**
Default. Tunable per workspace. Net-60 businesses should set \~75-80. Net-30 with strict policy can set 40.

**Single-entity vs Multi-Entity Console behaviour?**
Identical formula. Multi-Entity Console scope just consolidates AR + Credit Sales across entities in reporting currency.

**How does this compare to NetSuite or QuickBooks DSO?**
NetSuite: identical formula, same exclusion of Cash Sales. QuickBooks Enterprise: similar but lacks the per-customer-dimension cut Intacct supports natively. Intacct's dimensional model lets you slice DSO by Department or Project (e.g. "what is the DSO of the Federal Government project?"); NetSuite needs Class/Department for the same view; QuickBooks cannot.

**Per-Customer DSO is not in NetSuite by default. Does Intacct expose it?**
Yes via the Customer dimension. The card pivots natively. This is the single most useful AR triage view for B2B Intacct merchants and the conversation Implementation Partners use to differentiate Intacct from QuickBooks.

**My Implementation Partner uses a 12-month trailing DSO. Why is the card 90-day?**
90-day is more responsive to recent payment behaviour. Trailing 12-month smooths seasonality but lags by months. The card is the operational view; the Partner's 12-month is the board view. Both are valid and the workspace can switch the default.

**What about fixed-fee subscription billing?**
Each billing cycle is treated as a credit sale. DSO captures whether subscribers pay on time. Healthy SaaS-adjacent businesses on Intacct see DSO at terms + 0-5 days because subscriptions auto-charge.

***

### Tracked live in Vortex IQ Nerve Centre

*Days Sales Outstanding (DSO)* is one of hundreds of KPI pulses Vortex IQ tracks across Sage and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English.

[Start for free](https://app.vortexiq.ai/login) or [book a demo](https://www.vortexiq.ai/contact-us) to see this metric running on your own data.
