{"product_id":"days-sales-outstanding","title":"DSO Calculator","description":"\u003cstyle\u003e\n.dso-calculator {\n  --ink: #0f172a;\n  --muted: #475569;\n  --border: #e2e8f0;\n  --surface: #ffffff;\n  --tint: #f8fafc;\n  --primary: #1d4ed8;\n  --accent: #c2410c;\n  --accent-hover: #9a3412;\n  --chart-1: #1e40af;\n  --chart-2: #0d9488;\n  --chart-3: #7c3aed;\n  --chart-4: #be185d;\n  --chart-5: #334155;\n  color: var(--ink);\n  background: var(--surface);\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  box-shadow: 0 1px 2px rgba(15,23,42,.06);\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  font-size: 15px;\n  line-height: 1.55;\n  max-width: 1200px;\n  margin: 0 auto;\n  overflow-wrap: anywhere;\n  container-type: inline-size;\n}\n.dso-calculator,\n.dso-calculator *,\n.dso-calculator *::before,\n.dso-calculator *::after { box-sizing: border-box; }\n.dso-calculator button,\n.dso-calculator input,\n.dso-calculator select { font: inherit; }\n.dso-calculator button,\n.dso-calculator input { min-width: 0; }\n.dso-calculator h2,\n.dso-calculator h3,\n.dso-calculator p { margin-top: 0; }\n.dso-calculator a { color: var(--primary); text-decoration-thickness: 1px; text-underline-offset: 2px; }\n.dso-calculator a:hover { text-decoration-thickness: 2px; }\n.dso-header { padding: 24px 24px 16px; border-bottom: 1px solid var(--border); background: linear-gradient(180deg, var(--tint), var(--surface)); border-radius: 8px 8px 0 0; }\n.dso-header h2 { margin-bottom: 8px; font-size: 24px; line-height: 1.25; font-weight: 700; letter-spacing: -.02em; }\n.dso-subtitle { color: var(--muted); margin-bottom: 16px; max-width: 760px; }\n.dso-pills { display: flex; flex-wrap: wrap; gap: 8px; min-width: 0; }\n.dso-pill { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 6px 10px; border: 1px solid var(--border); border-radius: 999px; background: var(--surface); color: var(--muted); font-size: 13px; font-weight: 500; font-variant-numeric: tabular-nums; }\n.dso-pill strong { color: var(--ink); font-weight: 700; }\n.dso-toolbar { display: flex; flex-wrap: wrap; gap: 12px; padding: 16px 24px; border-bottom: 1px solid var(--border); background: var(--surface); min-width: 0; }\n.dso-button { appearance: none; border: 1px solid var(--border); border-radius: 6px; padding: 11px 16px; min-height: 46px; background: var(--surface); color: var(--ink); font-weight: 650; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 10px; white-space: nowrap; transition: border-color .15s ease, background .15s ease, box-shadow .15s ease, transform .15s ease; }\n.dso-button:hover { border-color: #cbd5e1; background: var(--tint); box-shadow: 0 3px 8px rgba(15,23,42,.08); }\n.dso-button:active { transform: translateY(1px); }\n.dso-button:focus-visible,\n.dso-field input:focus-visible,\n.dso-details summary:focus-visible { outline: 3px solid rgba(29,78,216,.32); outline-offset: 2px; }\n.dso-download { padding: 12px 18px; background: var(--accent); border-color: var(--accent); color: #fff; }\n.dso-download:hover { background: var(--accent-hover); border-color: var(--accent-hover); }\n.dso-button svg { width: 19px; height: 19px; flex: 0 0 auto; }\n.dso-workspace { display: grid; grid-template-columns: minmax(0, 1.03fr) minmax(0, .97fr); gap: 24px; padding: 24px; align-items: start; }\n.dso-workspace \u003e *,\n.dso-grid \u003e *,\n.dso-results-grid \u003e *,\n.dso-chart-layout \u003e *,\n.dso-education-grid \u003e * { min-width: 0; }\n.dso-panel { border: 1px solid var(--border); border-radius: 8px; background: var(--surface); box-shadow: 0 1px 2px rgba(15,23,42,.04); }\n.dso-panel-head { padding: 16px 16px 12px; border-bottom: 1px solid var(--border); }\n.dso-panel-head h3 { margin-bottom: 4px; font-size: 18px; line-height: 1.35; font-weight: 650; }\n.dso-panel-head p { margin-bottom: 0; color: var(--muted); font-size: 13px; font-weight: 500; }\n.dso-panel-body { padding: 16px; }\n.dso-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }\n.dso-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; }\n.dso-field label { font-size: 14px; font-weight: 600; color: var(--ink); }\n.dso-control { position: relative; min-width: 0; }\n.dso-control input { width: 100%; min-height: 46px; border: 1px solid #cbd5e1; border-radius: 6px; padding: 10px 42px 10px 12px; background: var(--surface); color: var(--ink); font-size: 15px; font-variant-numeric: tabular-nums; }\n.dso-control input:hover { border-color: #94a3b8; }\n.dso-unit { position: absolute; inset-inline-end: 12px; top: 50%; transform: translateY(-50%); color: var(--muted); font-size: 13px; font-weight: 650; pointer-events: none; }\n.dso-helper { min-height: 40px; color: var(--muted); font-size: 13px; font-weight: 500; line-height: 1.45; }\n.dso-error { min-height: 20px; color: #b91c1c; font-size: 13px; font-weight: 600; }\n.dso-field.dso-has-error input { border-color: #b91c1c; background: #fff7f7; }\n.dso-formula { margin-top: 16px; padding: 12px; border: 1px solid var(--border); border-radius: 6px; background: var(--tint); color: var(--muted); font-size: 13px; font-weight: 500; }\n.dso-formula strong { color: var(--ink); }\n.dso-results { padding: 16px; }\n.dso-primary { padding: 20px; border-radius: 8px; background: #eff6ff; border: 1px solid #bfdbfe; }\n.dso-primary-label { color: #1e3a8a; font-size: 13px; font-weight: 650; text-transform: uppercase; letter-spacing: .05em; }\n.dso-primary-value { margin: 4px 0 6px; font-size: 30px; line-height: 1.15; font-weight: 700; color: #172554; font-variant-numeric: tabular-nums; }\n.dso-primary-copy { margin-bottom: 0; color: #334155; font-size: 13px; font-weight: 500; }\n.dso-results-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }\n.dso-result-card { padding: 14px; border: 1px solid var(--border); border-radius: 8px; background: var(--surface); min-height: 102px; }\n.dso-result-label { color: var(--muted); font-size: 13px; font-weight: 600; }\n.dso-result-value { margin-top: 4px; font-size: 20px; line-height: 1.25; font-weight: 700; font-variant-numeric: tabular-nums; }\n.dso-result-note { margin-top: 4px; color: var(--muted); font-size: 13px; font-weight: 500; }\n.dso-callout { margin-top: 12px; padding: 12px; border-left: 4px solid var(--primary); border-radius: 6px; background: var(--tint); color: var(--muted); font-size: 13px; font-weight: 500; }\n.dso-section { padding: 0 24px 24px; }\n.dso-chart-card,\n.dso-table-card { border: 1px solid var(--border); border-radius: 8px; background: var(--surface); padding: 16px; min-width: 0; }\n.dso-chart-head h3,\n.dso-table-head h3 { margin-bottom: 4px; font-size: 18px; line-height: 1.35; font-weight: 650; }\n.dso-chart-head p,\n.dso-table-head p { margin-bottom: 0; color: var(--muted); font-size: 13px; font-weight: 500; }\n.dso-chart-layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(240px, .8fr); gap: 24px; align-items: stretch; max-width: 980px; margin: 20px auto 0; }\n.dso-plot-wrap { min-width: 0; }\n.dso-chart-svg { width: 100%; height: auto; display: block; overflow: visible; }\n.dso-chart-empty { display: none; padding: 18px; border: 1px dashed #cbd5e1; border-radius: 6px; background: var(--tint); color: var(--muted); text-align: center; font-size: 13px; font-weight: 600; }\n.dso-chart-empty.dso-is-visible { display: block; }\n.dso-legend { display: grid; gap: 12px; align-content: end; align-self: stretch; }\n.dso-legend-row { display: grid; grid-template-columns: 12px minmax(0, max-content) minmax(0, max-content); gap: 10px; align-items: center; justify-content: start; font-size: 13px; font-weight: 500; }\n.dso-legend-swatch { width: 12px; height: 12px; border-radius: 3px; }\n.dso-legend-label { color: var(--ink); }\n.dso-legend-value { color: var(--muted); font-variant-numeric: tabular-nums; }\n.dso-chart-caption { margin-top: 18px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 6px; background: var(--tint); color: var(--muted); font-size: 13px; font-weight: 500; }\n.dso-chart-summary { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }\n.dso-safe-stack .dso-chart-layout { grid-template-columns: minmax(0, 1fr); gap: 20px; }\n.dso-safe-stack .dso-legend { margin-top: 4px; justify-content: center; }\n.dso-safe-stack .dso-chart-caption { margin-top: 20px; }\n.dso-table-head { margin-bottom: 16px; }\n.dso-table-overflow { width: 100%; overflow-x: auto; border: 1px solid var(--border); border-radius: 6px; }\n.dso-table { width: 100%; min-width: 720px; border-collapse: collapse; font-size: 13px; font-variant-numeric: tabular-nums; }\n.dso-table th,\n.dso-table td { padding: 11px 12px; border-bottom: 1px solid var(--border); text-align: right; vertical-align: middle; }\n.dso-table th:first-child,\n.dso-table td:first-child { text-align: left; }\n.dso-table th { background: #172554; color: #fff; font-weight: 700; white-space: nowrap; }\n.dso-table tbody tr:last-child td { border-bottom: 0; }\n.dso-table tbody tr:hover { background: var(--tint); }\n.dso-table-note { margin-top: 18px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 6px; background: var(--tint); color: var(--muted); font-size: 13px; font-weight: 500; }\n.dso-safe-table-stack .dso-table-note { margin-top: 22px; }\n.dso-details { margin: 0 24px 24px; border: 1px solid var(--border); border-radius: 8px; background: var(--surface); }\n.dso-details summary { cursor: pointer; padding: 14px 16px; font-weight: 650; }\n.dso-details-content { padding: 0 16px 16px; color: var(--muted); font-size: 13px; }\n.dso-education { padding: 32px 24px; border-top: 1px solid var(--border); background: var(--tint); border-radius: 0 0 8px 8px; }\n.dso-education h2 { margin-bottom: 12px; font-size: 22px; line-height: 1.3; font-weight: 700; }\n.dso-education h3 { margin: 24px 0 8px; font-size: 18px; line-height: 1.35; font-weight: 650; }\n.dso-education p { margin-bottom: 12px; color: #334155; }\n.dso-education-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }\n.dso-education-card { min-width: 0; }\n.dso-education ul { margin: 0 0 12px; padding-left: 20px; color: #334155; }\n.dso-education li { margin-bottom: 8px; }\n.dso-numeric { font-variant-numeric: tabular-nums; }\n\n@container (max-width: 897px) {\n  .dso-workspace { grid-template-columns: minmax(0, 1fr); }\n}\n@container (max-width: 637px) {\n  .dso-header,\n  .dso-toolbar,\n  .dso-workspace,\n  .dso-education { padding-left: 16px; padding-right: 16px; }\n  .dso-section { padding-left: 16px; padding-right: 16px; }\n  .dso-details { margin-left: 16px; margin-right: 16px; }\n  .dso-grid,\n  .dso-results-grid,\n  .dso-education-grid { grid-template-columns: minmax(0, 1fr); }\n  .dso-chart-layout { grid-template-columns: minmax(0, 1fr); gap: 20px; }\n  .dso-legend { justify-content: center; }\n  .dso-chart-caption { margin-top: 16px; }\n}\n@container (max-width: 377px) {\n  .dso-toolbar { display: grid; grid-template-columns: minmax(0, 1fr); }\n  .dso-button { width: 100%; }\n  .dso-header h2 { font-size: 22px; }\n  .dso-primary-value { font-size: 28px; }\n  .dso-chart-card,\n  .dso-table-card { padding: 12px; }\n}\n\n@media (max-width: 899px) {\n  .dso-workspace { grid-template-columns: minmax(0, 1fr); }\n}\n@media (max-width: 639px) {\n  .dso-header,\n  .dso-toolbar,\n  .dso-workspace,\n  .dso-education { padding-left: 16px; padding-right: 16px; }\n  .dso-section { padding-left: 16px; padding-right: 16px; }\n  .dso-details { margin-left: 16px; margin-right: 16px; }\n  .dso-grid,\n  .dso-results-grid,\n  .dso-education-grid { grid-template-columns: minmax(0, 1fr); }\n  .dso-chart-layout { grid-template-columns: minmax(0, 1fr); gap: 20px; }\n  .dso-legend { justify-content: center; }\n  .dso-chart-caption { margin-top: 16px; }\n}\n@media (max-width: 379px) {\n  .dso-toolbar { display: grid; grid-template-columns: minmax(0, 1fr); }\n  .dso-button { width: 100%; }\n  .dso-header h2 { font-size: 22px; }\n  .dso-primary-value { font-size: 28px; }\n  .dso-chart-card,\n  .dso-table-card { padding: 12px; }\n}\n\u003c\/style\u003e\n\u003cdiv class=\"dso-calculator\" data-calculator-root\u003e\n  \u003cheader class=\"dso-header\"\u003e\n    \u003ch2\u003eDays Sales Outstanding Calculator\u003c\/h2\u003e\n    \u003cp class=\"dso-subtitle\"\u003eMeasure how many days of sales are tied up in accounts receivable, compare the result with a collection target, and estimate the working capital impact.\u003c\/p\u003e\n    \u003cdiv class=\"dso-pills\" aria-label=\"Live summary\"\u003e\n      \u003cspan class=\"dso-pill\"\u003eDSO \u003cstrong class=\"dso-pill-dso\"\u003e—\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"dso-pill\"\u003eAverage receivables \u003cstrong class=\"dso-pill-average\"\u003e—\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"dso-pill\"\u003eDaily sales \u003cstrong class=\"dso-pill-daily\"\u003e—\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"dso-pill\"\u003eTarget gap \u003cstrong class=\"dso-pill-gap\"\u003e—\u003c\/strong\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/header\u003e\n\n  \u003cdiv class=\"dso-toolbar\" aria-label=\"Calculator actions\"\u003e\n    \u003cbutton class=\"dso-button dso-download\" type=\"button\"\u003e\n      \u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpath fill=\"currentColor\" d=\"M5 2h10l4 4v16H5V2Zm9 2.5V7h2.5L14 4.5ZM8 11h2l2 3 2-3h2l-3 4 3 4h-2l-2-3-2 3H8l3-4-3-4Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cspan\u003eDownload Excel\u003c\/span\u003e\n    \u003c\/button\u003e\n    \u003cbutton class=\"dso-button dso-reset\" type=\"button\"\u003e\n      \u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpath fill=\"currentColor\" d=\"M12 5a7 7 0 1 1-6.3 4H3l3.5-4L10 9H7.8A5 5 0 1 0 12 7V5Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cspan\u003eReset\u003c\/span\u003e\n    \u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"dso-workspace\"\u003e\n    \u003csection class=\"dso-panel\" aria-labelledby=\"dso-input-heading\"\u003e\n      \u003cdiv class=\"dso-panel-head\"\u003e\n        \u003ch3 id=\"dso-input-heading\"\u003eOperating inputs\u003c\/h3\u003e\n        \u003cp\u003eUse values from the same accounting period and keep the sales basis consistent.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"dso-panel-body\"\u003e\n        \u003cdiv class=\"dso-grid\"\u003e\n          \u003cdiv class=\"dso-field\"\u003e\n            \u003clabel for=\"dso-beginning\"\u003eBeginning accounts receivable\u003c\/label\u003e\n            \u003cdiv class=\"dso-control\"\u003e\n              \u003cinput id=\"dso-beginning\" class=\"dso-input\" type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" value=\"$300,000.00\" aria-describedby=\"dso-beginning-help dso-beginning-error\"\u003e\n              \u003cspan class=\"dso-unit\"\u003eUSD\u003c\/span\u003e\n            \u003c\/div\u003e\n            \u003cdiv id=\"dso-beginning-help\" class=\"dso-helper\"\u003eGross customer balances owed at the start of the period.\u003c\/div\u003e\n            \u003cdiv id=\"dso-beginning-error\" class=\"dso-error\" aria-live=\"polite\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"dso-field\"\u003e\n            \u003clabel for=\"dso-ending\"\u003eEnding accounts receivable\u003c\/label\u003e\n            \u003cdiv class=\"dso-control\"\u003e\n              \u003cinput id=\"dso-ending\" class=\"dso-input\" type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" value=\"$250,000.00\" aria-describedby=\"dso-ending-help dso-ending-error\"\u003e\n              \u003cspan class=\"dso-unit\"\u003eUSD\u003c\/span\u003e\n            \u003c\/div\u003e\n            \u003cdiv id=\"dso-ending-help\" class=\"dso-helper\"\u003eGross customer balances owed at the end of the period.\u003c\/div\u003e\n            \u003cdiv id=\"dso-ending-error\" class=\"dso-error\" aria-live=\"polite\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"dso-field\"\u003e\n            \u003clabel for=\"dso-sales\"\u003eTotal sales\u003c\/label\u003e\n            \u003cdiv class=\"dso-control\"\u003e\n              \u003cinput id=\"dso-sales\" class=\"dso-input\" type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" value=\"$5,000,000.00\" aria-describedby=\"dso-sales-help dso-sales-error\"\u003e\n              \u003cspan class=\"dso-unit\"\u003eUSD\u003c\/span\u003e\n            \u003c\/div\u003e\n            \u003cdiv id=\"dso-sales-help\" class=\"dso-helper\"\u003eCredit sales are preferred; use total sales only when credit sales are unavailable.\u003c\/div\u003e\n            \u003cdiv id=\"dso-sales-error\" class=\"dso-error\" aria-live=\"polite\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"dso-field\"\u003e\n            \u003clabel for=\"dso-period\"\u003eAccounting period\u003c\/label\u003e\n            \u003cdiv class=\"dso-control\"\u003e\n              \u003cinput id=\"dso-period\" class=\"dso-input\" type=\"text\" inputmode=\"numeric\" autocomplete=\"off\" value=\"365\" aria-describedby=\"dso-period-help dso-period-error\"\u003e\n              \u003cspan class=\"dso-unit\"\u003edays\u003c\/span\u003e\n            \u003c\/div\u003e\n            \u003cdiv id=\"dso-period-help\" class=\"dso-helper\"\u003eTypical choices are 30, 90, 180, 360, or 365 days.\u003c\/div\u003e\n            \u003cdiv id=\"dso-period-error\" class=\"dso-error\" aria-live=\"polite\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"dso-field\"\u003e\n            \u003clabel for=\"dso-target\"\u003eTarget DSO\u003c\/label\u003e\n            \u003cdiv class=\"dso-control\"\u003e\n              \u003cinput id=\"dso-target\" class=\"dso-input\" type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" value=\"30\" aria-describedby=\"dso-target-help dso-target-error\"\u003e\n              \u003cspan class=\"dso-unit\"\u003edays\u003c\/span\u003e\n            \u003c\/div\u003e\n            \u003cdiv id=\"dso-target-help\" class=\"dso-helper\"\u003eOptional internal benchmark for collection planning and cash-release estimates.\u003c\/div\u003e\n            \u003cdiv id=\"dso-target-error\" class=\"dso-error\" aria-live=\"polite\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"dso-formula\"\u003e\n\u003cstrong\u003eFormula:\u003c\/strong\u003e average receivables = (beginning receivables + ending receivables) ÷ 2; DSO = average receivables ÷ sales × accounting-period days.\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/section\u003e\n\n    \u003csection class=\"dso-panel\" aria-labelledby=\"dso-result-heading\"\u003e\n      \u003cdiv class=\"dso-panel-head\"\u003e\n        \u003ch3 id=\"dso-result-heading\"\u003eLive results\u003c\/h3\u003e\n        \u003cp\u003eOutputs update as you edit any input.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"dso-results\"\u003e\n        \u003cdiv class=\"dso-primary\"\u003e\n          \u003cdiv class=\"dso-primary-label\"\u003eDays sales outstanding\u003c\/div\u003e\n          \u003cdiv class=\"dso-primary-value dso-output-dso\"\u003e—\u003c\/div\u003e\n          \u003cp class=\"dso-primary-copy dso-output-interpretation\" aria-live=\"polite\"\u003eEnter valid operating inputs to calculate DSO.\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"dso-results-grid\"\u003e\n          \u003cdiv class=\"dso-result-card\"\u003e\n            \u003cdiv class=\"dso-result-label\"\u003eAverage receivables\u003c\/div\u003e\n            \u003cdiv class=\"dso-result-value dso-output-average\"\u003e—\u003c\/div\u003e\n            \u003cdiv class=\"dso-result-note\"\u003eAverage balance used in the ratio\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"dso-result-card\"\u003e\n            \u003cdiv class=\"dso-result-label\"\u003eAverage daily sales\u003c\/div\u003e\n            \u003cdiv class=\"dso-result-value dso-output-daily\"\u003e—\u003c\/div\u003e\n            \u003cdiv class=\"dso-result-note\"\u003eSales generated per calendar day\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"dso-result-card\"\u003e\n            \u003cdiv class=\"dso-result-label\"\u003eReceivables turnover\u003c\/div\u003e\n            \u003cdiv class=\"dso-result-value dso-output-turnover\"\u003e—\u003c\/div\u003e\n            \u003cdiv class=\"dso-result-note\"\u003eCollection cycles per accounting period\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"dso-result-card\"\u003e\n            \u003cdiv class=\"dso-result-label\"\u003eTarget working-capital impact\u003c\/div\u003e\n            \u003cdiv class=\"dso-result-value dso-output-release\"\u003e—\u003c\/div\u003e\n            \u003cdiv class=\"dso-result-note dso-output-release-note\"\u003ePotential receivables released at target DSO\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"dso-callout dso-output-callout\"\u003eThe benchmark comparison will appear when valid inputs are available.\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/section\u003e\n  \u003c\/div\u003e\n\n  \u003csection class=\"dso-section\"\u003e\n    \u003cdiv class=\"dso-chart-card\" data-chart-card\u003e\n      \u003cdiv class=\"dso-chart-head\"\u003e\n        \u003ch3\u003eSales accumulation and receivables\u003c\/h3\u003e\n        \u003cp class=\"dso-chart-intro\"\u003eThe crossing point shows how many days of sales are represented by average receivables.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"dso-chart-layout\"\u003e\n        \u003cdiv class=\"dso-plot-wrap\" data-chart-plot\u003e\n          \u003csvg class=\"dso-chart-svg\" role=\"img\" aria-labelledby=\"dso-chart-title dso-chart-desc\" viewbox=\"0 0 680 340\" preserveaspectratio=\"xMidYMid meet\"\u003e\n            \u003ctitle id=\"dso-chart-title\"\u003eCumulative sales and average accounts receivable chart\u003c\/title\u003e\n            \u003cdesc id=\"dso-chart-desc\"\u003eA line chart comparing cumulative sales through the accounting period with the average accounts receivable balance.\u003c\/desc\u003e\n          \u003c\/svg\u003e\n          \u003cdiv class=\"dso-chart-empty\"\u003eEnter positive sales and period values to see the chart.\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"dso-legend\" aria-label=\"Chart legend\"\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"dso-chart-caption\"\u003eThe chart will explain the relationship between sales velocity and the receivables balance.\u003c\/div\u003e\n      \u003cdiv class=\"dso-chart-summary\" aria-live=\"polite\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"dso-section\"\u003e\n    \u003cdiv class=\"dso-table-card\" data-table-card\u003e\n      \u003cdiv class=\"dso-table-head\"\u003e\n        \u003ch3\u003eCollection scenarios\u003c\/h3\u003e\n        \u003cp\u003eCompare the current position with faster and slower collection assumptions.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"dso-table-overflow\"\u003e\n        \u003ctable class=\"dso-table\"\u003e\n          \u003cthead\u003e\n            \u003ctr\u003e\n              \u003cth scope=\"col\"\u003eScenario\u003c\/th\u003e\n              \u003cth scope=\"col\"\u003eDSO\u003c\/th\u003e\n              \u003cth scope=\"col\"\u003eImplied receivables\u003c\/th\u003e\n              \u003cth scope=\"col\"\u003eChange vs. current\u003c\/th\u003e\n              \u003cth scope=\"col\"\u003eTurnover\u003c\/th\u003e\n            \u003c\/tr\u003e\n          \u003c\/thead\u003e\n          \u003ctbody class=\"dso-scenario-body\"\u003e\u003c\/tbody\u003e\n        \u003c\/table\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"dso-table-note\"\u003eImplied receivables equal average daily sales multiplied by the scenario DSO. Negative changes indicate cash that could be released if collections improve; positive changes indicate additional cash tied up.\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003cdetails class=\"dso-details\"\u003e\n    \u003csummary\u003eMethod and data consistency notes\u003c\/summary\u003e\n    \u003cdiv class=\"dso-details-content\"\u003eThis calculator uses the simple average of beginning and ending accounts receivable. For businesses with strong seasonality, acquisitions, rapid growth, or a highly uneven billing cycle, a monthly average may be more representative. Use net credit sales for the same period whenever available, and keep the accounting period consistent with the sales figure.\u003c\/div\u003e\n  \u003c\/details\u003e\n\n  \u003csection class=\"dso-education\"\u003e\n    \u003ch2\u003eHow to use and interpret the DSO calculator\u003c\/h2\u003e\n    \u003cdiv class=\"dso-education-grid\"\u003e\n      \u003cdiv class=\"dso-education-card\"\u003e\n        \u003ch3\u003eWhat does days sales outstanding measure?\u003c\/h3\u003e\n        \u003cp\u003eDays sales outstanding estimates the average number of days represented by a company’s accounts receivable balance. It translates a balance-sheet amount into a time-based operating metric. A DSO of 40 days means average receivables are approximately equal to 40 days of sales at the current sales pace. DSO is therefore a working-capital indicator, not a direct measurement of the exact age of every invoice.\u003c\/p\u003e\n        \u003cp\u003eThe metric is most useful when compared with the company’s own trend, contractual payment terms, collection target, and similar businesses. A lower DSO generally indicates faster conversion of billed revenue into cash. A higher DSO can indicate slower customer payments, looser credit standards, billing delays, disputes, or a shift toward customers with longer terms. However, a high or low number is not automatically good or bad without context.\u003c\/p\u003e\n\n        \u003ch3\u003eHow should each input be entered?\u003c\/h3\u003e\n        \u003cul\u003e\n          \u003cli\u003e\n\u003cstrong\u003eBeginning accounts receivable\u003c\/strong\u003e is the gross amount customers owed at the start of the accounting period. Enter a nonnegative U.S. dollar value from the opening balance sheet. A higher opening balance raises average receivables and usually increases DSO.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eEnding accounts receivable\u003c\/strong\u003e is the corresponding balance at the end of the period. Use the same accounting definition as the beginning balance. A sharp increase may reflect sales growth, slower collections, or both.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eTotal sales\u003c\/strong\u003e should ideally be net credit sales because cash sales never enter receivables. When credit-sales data are unavailable, total sales can be used as an approximation, but the result may understate DSO for a business with substantial cash sales.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eAccounting period\u003c\/strong\u003e is the number of days represented by the sales figure. Use 365 days for a full non-leap year, 366 for a leap year, or the actual days in a quarter or month. Mixing annual sales with a 90-day period produces a distorted result.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eTarget DSO\u003c\/strong\u003e is an optional planning benchmark. It does not change the core DSO calculation. It estimates how much receivables would be tied up at that target, assuming the same sales pace.\u003c\/li\u003e\n        \u003c\/ul\u003e\n\n        \u003ch3\u003eHow does the formula work?\u003c\/h3\u003e\n        \u003cp\u003eThe calculator first averages beginning and ending receivables. It then divides that average balance by sales to find the share of the accounting period represented by receivables. Multiplying by the period’s day count converts the ratio into days. The same relationship can be written as average receivables divided by average daily sales.\u003c\/p\u003e\n        \u003cp\u003eFor example, average receivables of $275,000 and annual sales of $5,000,000 produce average daily sales of about $13,698.63. Dividing $275,000 by that daily sales rate gives approximately 20.08 days. Full precision is retained internally, while displayed values are rounded for readability.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"dso-education-card\"\u003e\n        \u003ch3\u003eHow should the results be read?\u003c\/h3\u003e\n        \u003cp\u003e\u003cstrong\u003eDays sales outstanding\u003c\/strong\u003e is the primary result. A zero value is valid only when average receivables are zero and sales are positive. A negative value is not economically meaningful, so negative inputs are rejected. When sales or the accounting period are zero, DSO cannot be calculated because the denominator is not usable.\u003c\/p\u003e\n        \u003cp\u003e\u003cstrong\u003eAverage receivables\u003c\/strong\u003e is the balance used in the formula. \u003cstrong\u003eAverage daily sales\u003c\/strong\u003e normalizes the sales figure to one day. \u003cstrong\u003eReceivables turnover\u003c\/strong\u003e shows how many times the average receivables balance is theoretically collected during the accounting period; it is the inverse of DSO expressed in period turns. Higher turnover and lower DSO generally move together.\u003c\/p\u003e\n        \u003cp\u003e\u003cstrong\u003eTarget working-capital impact\u003c\/strong\u003e compares current average receivables with the amount implied by the target DSO. A positive release estimate means the target is lower than current DSO and collections would need to accelerate. A zero release means the company is already at or below the target. This is a directional operating estimate, not a promise of cash recovery.\u003c\/p\u003e\n\n        \u003ch3\u003eWhat do the chart and scenario table show?\u003c\/h3\u003e\n        \u003cp\u003eThe chart plots cumulative sales over the accounting period and a horizontal line for average receivables. The day where cumulative sales reaches the receivables level corresponds to DSO. When DSO exceeds the accounting period, the crossing point sits beyond the plotted horizon, signaling that average receivables are larger than the period’s total sales.\u003c\/p\u003e\n        \u003cp\u003eThe scenario table converts alternative DSO assumptions back into implied receivables. “Change vs. current” isolates the estimated working-capital movement. The table uses the same daily sales rate and model data as the headline results and Excel workbook, so the values cross-foot.\u003c\/p\u003e\n\n        \u003ch3\u003eWhat are common mistakes and limitations?\u003c\/h3\u003e\n        \u003cp\u003eCommon errors include mixing gross receivables with net sales, using ending receivables instead of an average, combining figures from different periods, or comparing companies with different revenue recognition and payment structures. Seasonal businesses may need monthly averages. Rapidly growing companies can also show elevated DSO because recent sales are disproportionately represented in ending receivables.\u003c\/p\u003e\n        \u003cp\u003eDSO should be evaluated with invoice-aging reports, bad-debt trends, payment terms, customer concentration, days payable outstanding, and inventory days. The \u003ca href=\"https:\/\/www.investopedia.com\/terms\/d\/dso.asp\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eInvestopedia overview of DSO\u003c\/a\u003e provides additional context. The \u003ca href=\"https:\/\/www.sba.gov\/business-guide\/manage-your-business\/manage-your-finances\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eU.S. Small Business Administration finance guide\u003c\/a\u003e discusses broader cash-management practices. For public-company analysis, use filed financial statements available through the \u003ca href=\"https:\/\/www.sec.gov\/edgar\/search\/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eSEC EDGAR database\u003c\/a\u003e, and review the \u003ca href=\"https:\/\/www.investor.gov\/introduction-investing\/getting-started\/researching-investments\/how-read-10-k\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eInvestor.gov guide to reading a Form 10-K\u003c\/a\u003e.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\u003c\/div\u003e","brand":"FinancialModelsLab","offers":[{"title":"Default Title","offer_id":49909489828083,"sku":"days-sales-outstanding","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/days-sales-outstanding.webp?v=1783935590","url":"https:\/\/financialmodelslab.com\/products\/days-sales-outstanding","provider":"Financial Models Lab","version":"1.0","type":"link"}