{"product_id":"dscr","title":"Debt Service Coverage Ratio Calculator (DSCR)","description":"\u003cstyle\u003e\n.dscr-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(--tint);\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  padding: 24px;\n  font-family: Arial, Helvetica, sans-serif;\n  font-size: 15px;\n  line-height: 1.55;\n  max-width: 1200px;\n  margin: 0 auto;\n  box-shadow: 0 1px 2px rgba(15,23,42,.06);\n  container-type: inline-size;\n  container-name: dscr;\n}\n.dscr-calculator, .dscr-calculator *, .dscr-calculator *::before, .dscr-calculator *::after { box-sizing: border-box; }\n.dscr-header, .dscr-toolbar, .dscr-workspace, .dscr-workspace \u003e *, .dscr-field-grid \u003e *, .dscr-result-grid \u003e *, .dscr-chart-cluster \u003e *, .dscr-legend-row \u003e *, .dscr-table-toolbar \u003e *, .dscr-check-row \u003e *, .dscr-pills \u003e * { min-width: 0; }\n.dscr-calculator h2, .dscr-calculator h3, .dscr-calculator p { margin-top: 0; }\n.dscr-calculator h2 { font-size: 24px; line-height: 1.25; font-weight: 700; margin-bottom: 8px; }\n.dscr-calculator h3 { font-size: 18px; line-height: 1.35; font-weight: 650; margin-bottom: 16px; }\n.dscr-calculator a { color: #1e40af; text-decoration-thickness: 1px; text-underline-offset: 2px; }\n.dscr-calculator a:hover { color: #1d4ed8; }\n.dscr-header { margin-bottom: 16px; }\n.dscr-subtitle { color: var(--muted); margin-bottom: 12px; max-width: 850px; }\n.dscr-pills { display: flex; flex-wrap: wrap; gap: 8px; }\n.dscr-pill { display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; border: 1px solid var(--border); border-radius: 999px; background: var(--surface); color: var(--muted); font-size: 13px; font-weight: 500; }\n.dscr-pill strong { color: var(--ink); font-variant-numeric: tabular-nums; }\n.dscr-toolbar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }\n.dscr-button { min-height: 44px; border-radius: 6px; border: 1px solid var(--border); padding: 10px 16px; font: inherit; font-weight: 650; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 10px; background: var(--surface); color: var(--ink); box-shadow: 0 1px 2px rgba(15,23,42,.06); }\n.dscr-button:hover { box-shadow: 0 2px 5px rgba(15,23,42,.12); border-color: #cbd5e1; }\n.dscr-button:focus-visible, .dscr-calculator input:focus-visible, .dscr-calculator select:focus-visible, .dscr-segment-button:focus-visible, .dscr-details summary:focus-visible { outline: 3px solid #1d4ed8; outline-offset: 2px; }\n.dscr-download { background: var(--accent); color: #ffffff; border-color: var(--accent); padding: 12px 18px; white-space: nowrap; }\n.dscr-download:hover { background: var(--accent-hover); border-color: var(--accent-hover); color: #ffffff; }\n.dscr-download svg { width: 18px; height: 18px; flex: 0 0 auto; }\n.dscr-workspace { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .82fr); gap: 24px; align-items: start; }\n.dscr-panel, .dscr-card, .dscr-chart-card, .dscr-table-card, .dscr-education { background: var(--surface); border: 1px solid var(--border); border-radius: 8px; box-shadow: 0 1px 2px rgba(15,23,42,.06); }\n.dscr-panel, .dscr-results { padding: 20px; }\n.dscr-section + .dscr-section { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--border); }\n.dscr-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }\n.dscr-field { display: flex; flex-direction: column; gap: 6px; }\n.dscr-field-wide { grid-column: 1 \/ -1; }\n.dscr-field label, .dscr-fieldset legend { font-size: 14px; line-height: 1.35; font-weight: 600; color: var(--ink); }\n.dscr-field input, .dscr-field select { width: 100%; min-height: 44px; border: 1px solid #64748b; border-radius: 6px; background: #ffffff; color: var(--ink); padding: 9px 11px; font: inherit; font-variant-numeric: tabular-nums; }\n.dscr-field input[readonly] { background: #f1f5f9; color: #334155; }\n.dscr-helper { min-height: 40px; font-size: 13px; line-height: 1.45; font-weight: 500; color: var(--muted); }\n.dscr-error { min-height: 19px; font-size: 13px; line-height: 1.4; color: #b91c1c; font-weight: 600; }\n.dscr-fieldset { border: 0; padding: 0; margin: 0 0 16px; }\n.dscr-fieldset legend { margin-bottom: 8px; }\n.dscr-segment { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; background: #e2e8f0; border-radius: 7px; }\n.dscr-segment-button { min-height: 36px; border: 0; border-radius: 5px; background: transparent; color: #334155; padding: 7px 12px; font: inherit; font-size: 13px; font-weight: 650; cursor: pointer; }\n.dscr-segment-button[aria-pressed=\"true\"] { background: #ffffff; color: var(--primary); box-shadow: 0 1px 2px rgba(15,23,42,.12); }\n.dscr-check-row { display: flex; align-items: flex-start; gap: 10px; margin-top: 16px; }\n.dscr-check-row input { width: 18px; height: 18px; margin-top: 2px; flex: 0 0 auto; }\n.dscr-check-row label { font-size: 14px; font-weight: 600; }\n.dscr-check-row span { display: block; color: var(--muted); font-size: 13px; font-weight: 500; margin-top: 2px; }\n.dscr-mode-panel[hidden] { display: none; }\n.dscr-results { display: grid; gap: 16px; }\n.dscr-primary-result { padding: 20px; border-radius: 8px; border: 1px solid #bfdbfe; background: #eff6ff; }\n.dscr-result-label { color: var(--muted); font-size: 13px; font-weight: 600; margin-bottom: 4px; }\n.dscr-result-value { font-size: 30px; line-height: 1.15; font-weight: 700; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }\n.dscr-result-status { margin-top: 8px; font-size: 14px; font-weight: 650; }\n.dscr-status-strong { color: #047857; }\n.dscr-status-watch { color: #a16207; }\n.dscr-status-weak { color: #b91c1c; }\n.dscr-result-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }\n.dscr-result-card { padding: 14px; border: 1px solid var(--border); border-radius: 8px; background: #ffffff; }\n.dscr-result-card strong { display: block; font-size: 20px; line-height: 1.25; font-weight: 700; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }\n.dscr-result-card span { display: block; color: var(--muted); font-size: 13px; font-weight: 500; margin-top: 4px; }\n.dscr-interpretation { border-left: 4px solid var(--primary); background: var(--tint); padding: 12px; border-radius: 0 6px 6px 0; color: #334155; }\n.dscr-empty { border: 1px dashed #cbd5e1; border-radius: 6px; padding: 16px; color: var(--muted); background: var(--tint); text-align: center; }\n.dscr-breakdown { margin-top: 24px; }\n.dscr-chart-card { padding: 20px; }\n.dscr-chart-intro { color: var(--muted); margin-bottom: 16px; }\n.dscr-chart-cluster { display: grid; grid-template-columns: minmax(0, 420px) minmax(240px, auto); gap: 24px; justify-content: center; align-items: center; }\n.dscr-chart-plot { width: 100%; max-width: 420px; min-height: 250px; display: flex; align-items: center; justify-content: center; }\n.dscr-chart-plot svg { width: 100%; height: auto; display: block; overflow: visible; }\n.dscr-chart-legend { display: grid; gap: 10px; justify-content: start; }\n.dscr-legend-row { display: grid; grid-template-columns: 12px minmax(90px, auto) auto; gap: 10px; align-items: center; font-size: 13px; font-weight: 500; }\n.dscr-swatch { width: 12px; height: 12px; border-radius: 2px; }\n.dscr-legend-value { font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }\n.dscr-chart-table { margin-top: 16px; }\n.dscr-chart-callout { margin-top: 16px; border: 1px solid var(--border); background: var(--tint); border-radius: 6px; padding: 10px 12px; color: var(--muted); font-size: 13px; font-weight: 500; }\n.dscr-safe-stack .dscr-chart-cluster { grid-template-columns: 1fr; row-gap: 20px; justify-items: center; }\n.dscr-safe-stack .dscr-chart-legend { margin-top: 0; }\n.dscr-safe-stack .dscr-chart-callout { margin-top: 20px; }\n.dscr-table-card { margin-top: 24px; padding: 20px; }\n.dscr-table-toolbar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: space-between; margin-bottom: 12px; }\n.dscr-table-wrap { overflow-x: auto; overflow-y: visible; width: 100%; border: 1px solid var(--border); border-radius: 6px; }\n.dscr-table { border-collapse: collapse; width: 100%; min-width: 680px; font-variant-numeric: tabular-nums; }\n.dscr-table th, .dscr-table td { padding: 10px 12px; border-bottom: 1px solid var(--border); text-align: right; white-space: nowrap; }\n.dscr-table th:first-child, .dscr-table td:first-child { text-align: left; }\n.dscr-table th { background: #0f172a; color: #ffffff; font-size: 13px; font-weight: 700; }\n.dscr-table td { font-size: 13px; color: #334155; }\n.dscr-table tbody tr:last-child td { border-bottom: 0; }\n.dscr-table-note { margin-top: 16px; border: 1px solid var(--border); background: var(--tint); border-radius: 6px; padding: 10px 12px; color: var(--muted); font-size: 13px; font-weight: 500; }\n.dscr-safe-table-stack .dscr-table-note { margin-top: 20px; }\n.dscr-details { margin-top: 24px; background: var(--surface); border: 1px solid var(--border); border-radius: 8px; }\n.dscr-details summary { cursor: pointer; padding: 16px 20px; font-size: 18px; font-weight: 650; }\n.dscr-details-content { padding: 0 20px 20px; }\n.dscr-education { margin-top: 24px; padding: 24px; }\n.dscr-education h2 { margin-top: 24px; }\n.dscr-education h2:first-child { margin-top: 0; }\n.dscr-education h3 { margin-top: 20px; margin-bottom: 8px; }\n.dscr-education ul { padding-left: 20px; margin-top: 8px; }\n.dscr-education li + li { margin-top: 6px; }\n.dscr-formula { font-family: \"Courier New\", monospace; padding: 12px; border: 1px solid var(--border); background: var(--tint); border-radius: 6px; overflow-wrap: anywhere; }\n.dscr-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }\n\n@container dscr (max-width: 899px) {\n  .dscr-workspace { grid-template-columns: 1fr; }\n}\n@container dscr (max-width: 639px) {\n  .dscr-field-grid, .dscr-result-grid { grid-template-columns: 1fr; }\n  .dscr-chart-cluster { grid-template-columns: 1fr; row-gap: 20px; justify-items: center; }\n  .dscr-chart-legend { width: 100%; justify-content: center; }\n  .dscr-legend-row { grid-template-columns: 12px auto auto; justify-content: center; }\n  .dscr-toolbar .dscr-button { width: 100%; }\n  .dscr-panel, .dscr-results, .dscr-chart-card, .dscr-table-card, .dscr-education { padding: 16px; }\n  .dscr-helper { min-height: 0; }\n}\n@media (max-width: 899px) {\n  .dscr-calculator { padding: 20px; }\n  .dscr-workspace { grid-template-columns: 1fr; }\n}\n@media (max-width: 639px) {\n  .dscr-calculator { padding: 16px; }\n  .dscr-field-grid, .dscr-result-grid { grid-template-columns: 1fr; }\n  .dscr-chart-cluster { grid-template-columns: 1fr; row-gap: 20px; justify-items: center; }\n  .dscr-chart-legend { width: 100%; justify-content: center; }\n  .dscr-legend-row { grid-template-columns: 12px auto auto; justify-content: center; }\n  .dscr-toolbar .dscr-button { width: 100%; }\n  .dscr-panel, .dscr-results, .dscr-chart-card, .dscr-table-card, .dscr-education { padding: 16px; }\n  .dscr-helper { min-height: 0; }\n}\n\u003c\/style\u003e\n\u003cdiv class=\"dscr-calculator\" data-calculator-root\u003e\n  \u003csection class=\"dscr-header\"\u003e\n    \u003ch2\u003eDebt Service Coverage Ratio Calculator\u003c\/h2\u003e\n    \u003cp class=\"dscr-subtitle\"\u003eMeasure whether monthly net operating income can cover loan payments, review the cash-flow cushion, and export a lender-ready workbook.\u003c\/p\u003e\n    \u003cdiv class=\"dscr-pills\" aria-label=\"Live calculation summary\"\u003e\n      \u003cspan class=\"dscr-pill\"\u003eDSCR \u003cstrong data-dscr-pill-ratio\u003e—\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"dscr-pill\"\u003eMonthly NOI \u003cstrong data-dscr-pill-noi\u003e—\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"dscr-pill\"\u003eDebt service \u003cstrong data-dscr-pill-debt\u003e—\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"dscr-pill\"\u003eTarget \u003cstrong data-dscr-pill-target\u003e—\u003c\/strong\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n  \u003cdiv class=\"dscr-toolbar\"\u003e\n    \u003cbutton type=\"button\" class=\"dscr-button dscr-download\" data-dscr-download\u003e\n      \u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpath fill=\"currentColor\" d=\"M11 3h2v10.17l3.59-3.58L18 11l-6 6-6-6 1.41-1.41L11 13.17V3Zm-6 16h14v2H5v-2Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cspan\u003eDownload Excel\u003c\/span\u003e\n    \u003c\/button\u003e\n    \u003cbutton type=\"button\" class=\"dscr-button\" data-dscr-reset\u003eReset\u003c\/button\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"dscr-workspace\"\u003e\n    \u003csection class=\"dscr-panel\" aria-labelledby=\"dscr-inputs-heading\"\u003e\n      \u003ch3 id=\"dscr-inputs-heading\"\u003eLoan and property inputs\u003c\/h3\u003e\n      \u003cdiv class=\"dscr-section\"\u003e\n        \u003cdiv class=\"dscr-field-grid\"\u003e\n          \u003cdiv class=\"dscr-field\"\u003e\n            \u003clabel for=\"dscr-loan\"\u003eTotal loan amount\u003c\/label\u003e\n            \u003cinput id=\"dscr-loan\" data-dscr-input=\"loan\" data-dscr-mask=\"currency\" inputmode=\"decimal\" autocomplete=\"off\" value=\"$500,000.00\"\u003e\n            \u003cdiv class=\"dscr-helper\"\u003eOutstanding principal used to calculate the scheduled payment.\u003c\/div\u003e\n            \u003cdiv class=\"dscr-error\" data-dscr-error=\"loan\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"dscr-field\"\u003e\n            \u003clabel for=\"dscr-rate\"\u003eAnnual interest rate\u003c\/label\u003e\n            \u003cinput id=\"dscr-rate\" data-dscr-input=\"rate\" data-dscr-mask=\"percent\" inputmode=\"decimal\" autocomplete=\"off\" value=\"7.00%\"\u003e\n            \u003cdiv class=\"dscr-helper\"\u003eNominal annual rate divided into monthly periods.\u003c\/div\u003e\n            \u003cdiv class=\"dscr-error\" data-dscr-error=\"rate\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"dscr-field\"\u003e\n            \u003clabel for=\"dscr-term\"\u003eLoan term value\u003c\/label\u003e\n            \u003cinput id=\"dscr-term\" data-dscr-input=\"term\" data-dscr-mask=\"number\" inputmode=\"decimal\" autocomplete=\"off\" value=\"25\"\u003e\n            \u003cdiv class=\"dscr-helper\"\u003eAmortization length in the selected unit.\u003c\/div\u003e\n            \u003cdiv class=\"dscr-error\" data-dscr-error=\"term\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"dscr-field\"\u003e\n            \u003clabel for=\"dscr-term-unit\"\u003eLoan term unit\u003c\/label\u003e\n            \u003cselect id=\"dscr-term-unit\" data-dscr-term-unit\u003e\n              \u003coption value=\"years\" selected\u003eYears\u003c\/option\u003e\n              \u003coption value=\"months\"\u003eMonths\u003c\/option\u003e\n            \u003c\/select\u003e\n            \u003cdiv class=\"dscr-helper\"\u003eChanging the unit converts the current term value.\u003c\/div\u003e\n            \u003cdiv class=\"dscr-error\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"dscr-field dscr-field-wide\"\u003e\n            \u003clabel for=\"dscr-payment\"\u003eMonthly debt service\u003c\/label\u003e\n            \u003cinput id=\"dscr-payment\" data-dscr-input=\"payment\" data-dscr-mask=\"currency\" inputmode=\"decimal\" autocomplete=\"off\" value=\"$3,533.90\" readonly\u003e\n            \u003cdiv class=\"dscr-helper\"\u003eCalculated principal-and-interest payment, or your custom amount.\u003c\/div\u003e\n            \u003cdiv class=\"dscr-error\" data-dscr-error=\"payment\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"dscr-check-row\"\u003e\n          \u003cinput type=\"checkbox\" id=\"dscr-custom-payment\" data-dscr-custom-payment\u003e\n          \u003clabel for=\"dscr-custom-payment\"\u003eUse a custom monthly debt service\u003cspan\u003eEnable this for interest-only payments, blended obligations, or a lender-provided payment.\u003c\/span\u003e\u003c\/label\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"dscr-section\"\u003e\n        \u003cfieldset class=\"dscr-fieldset\"\u003e\n          \u003clegend\u003eNet operating income method\u003c\/legend\u003e\n          \u003cdiv class=\"dscr-segment\" role=\"group\" aria-label=\"Net operating income method\"\u003e\n            \u003cbutton type=\"button\" class=\"dscr-segment-button\" data-dscr-mode=\"direct\" aria-pressed=\"true\"\u003eEnter NOI\u003c\/button\u003e\n            \u003cbutton type=\"button\" class=\"dscr-segment-button\" data-dscr-mode=\"estimate\" aria-pressed=\"false\"\u003eEstimate from income\u003c\/button\u003e\n          \u003c\/div\u003e\n        \u003c\/fieldset\u003e\n        \u003cdiv class=\"dscr-mode-panel\" data-dscr-panel=\"direct\"\u003e\n          \u003cdiv class=\"dscr-field\"\u003e\n            \u003clabel for=\"dscr-noi\"\u003eMonthly net operating income\u003c\/label\u003e\n            \u003cinput id=\"dscr-noi\" data-dscr-input=\"noi\" data-dscr-mask=\"currency\" inputmode=\"decimal\" autocomplete=\"off\" value=\"$4,500.00\"\u003e\n            \u003cdiv class=\"dscr-helper\"\u003eIncome after vacancy and operating expenses, but before debt service, depreciation, and income taxes.\u003c\/div\u003e\n            \u003cdiv class=\"dscr-error\" data-dscr-error=\"noi\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"dscr-mode-panel\" data-dscr-panel=\"estimate\" hidden\u003e\n          \u003cdiv class=\"dscr-field-grid\"\u003e\n            \u003cdiv class=\"dscr-field\"\u003e\n              \u003clabel for=\"dscr-gross\"\u003eMonthly gross income\u003c\/label\u003e\n              \u003cinput id=\"dscr-gross\" data-dscr-input=\"gross\" data-dscr-mask=\"currency\" inputmode=\"decimal\" autocomplete=\"off\" value=\"$7,500.00\"\u003e\n              \u003cdiv class=\"dscr-helper\"\u003ePotential rent and recurring property income before deductions.\u003c\/div\u003e\n              \u003cdiv class=\"dscr-error\" data-dscr-error=\"gross\"\u003e\u003c\/div\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"dscr-field\"\u003e\n              \u003clabel for=\"dscr-expenses\"\u003eOperating expense rate\u003c\/label\u003e\n              \u003cinput id=\"dscr-expenses\" data-dscr-input=\"expenses\" data-dscr-mask=\"percent\" inputmode=\"decimal\" autocomplete=\"off\" value=\"30.00%\"\u003e\n              \u003cdiv class=\"dscr-helper\"\u003eMaintenance, management, taxes, insurance, utilities, and similar operating costs.\u003c\/div\u003e\n              \u003cdiv class=\"dscr-error\" data-dscr-error=\"expenses\"\u003e\u003c\/div\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"dscr-field\"\u003e\n              \u003clabel for=\"dscr-vacancy\"\u003eVacancy rate\u003c\/label\u003e\n              \u003cinput id=\"dscr-vacancy\" data-dscr-input=\"vacancy\" data-dscr-mask=\"percent\" inputmode=\"decimal\" autocomplete=\"off\" value=\"10.00%\"\u003e\n              \u003cdiv class=\"dscr-helper\"\u003eExpected income loss from vacancy and collection shortfalls.\u003c\/div\u003e\n              \u003cdiv class=\"dscr-error\" data-dscr-error=\"vacancy\"\u003e\u003c\/div\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"dscr-section\"\u003e\n        \u003cdiv class=\"dscr-field-grid\"\u003e\n          \u003cdiv class=\"dscr-field\"\u003e\n            \u003clabel for=\"dscr-target\"\u003eTarget DSCR\u003c\/label\u003e\n            \u003cinput id=\"dscr-target\" data-dscr-input=\"target\" data-dscr-mask=\"ratio\" inputmode=\"decimal\" autocomplete=\"off\" value=\"1.25\"\u003e\n            \u003cdiv class=\"dscr-helper\"\u003eA planning threshold only; actual lender requirements vary.\u003c\/div\u003e\n            \u003cdiv class=\"dscr-error\" data-dscr-error=\"target\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/section\u003e\n    \u003csection class=\"dscr-results\" aria-labelledby=\"dscr-results-heading\"\u003e\n      \u003ch3 id=\"dscr-results-heading\"\u003eLive results\u003c\/h3\u003e\n      \u003cdiv class=\"dscr-primary-result\"\u003e\n        \u003cdiv class=\"dscr-result-label\"\u003eDebt service coverage ratio\u003c\/div\u003e\n        \u003cdiv class=\"dscr-result-value\" data-dscr-ratio\u003e—\u003c\/div\u003e\n        \u003cdiv class=\"dscr-result-status\" data-dscr-status\u003eEnter valid values to calculate.\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"dscr-result-grid\"\u003e\n        \u003cdiv class=\"dscr-result-card\"\u003e\n\u003cstrong data-dscr-monthly-noi\u003e—\u003c\/strong\u003e\u003cspan\u003eMonthly NOI\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"dscr-result-card\"\u003e\n\u003cstrong data-dscr-monthly-debt\u003e—\u003c\/strong\u003e\u003cspan\u003eMonthly debt service\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"dscr-result-card\"\u003e\n\u003cstrong data-dscr-cushion\u003e—\u003c\/strong\u003e\u003cspan\u003eMonthly cash-flow cushion\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"dscr-result-card\"\u003e\n\u003cstrong data-dscr-min-noi\u003e—\u003c\/strong\u003e\u003cspan\u003eNOI required at target\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"dscr-result-card\"\u003e\n\u003cstrong data-dscr-annual-noi\u003e—\u003c\/strong\u003e\u003cspan\u003eAnnual NOI\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"dscr-result-card\"\u003e\n\u003cstrong data-dscr-annual-debt\u003e—\u003c\/strong\u003e\u003cspan\u003eAnnual debt service\u003c\/span\u003e\n\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"dscr-interpretation\" data-dscr-interpretation\u003eComplete the inputs to see an interpretation.\u003c\/div\u003e\n      \u003cdiv class=\"dscr-visually-hidden\" aria-live=\"polite\" data-dscr-live\u003e\u003c\/div\u003e\n    \u003c\/section\u003e\n  \u003c\/div\u003e\n  \u003csection class=\"dscr-breakdown\"\u003e\n    \u003cdiv class=\"dscr-chart-card\" data-dscr-chart-card\u003e\n      \u003ch3\u003eIncome versus debt service\u003c\/h3\u003e\n      \u003cp class=\"dscr-chart-intro\" data-dscr-chart-intro\u003eThe bars compare the income available for debt service with the required monthly payment.\u003c\/p\u003e\n      \u003cdiv class=\"dscr-chart-empty dscr-empty\" data-dscr-chart-empty hidden\u003ePositive NOI and debt service are required to draw the comparison.\u003c\/div\u003e\n      \u003cdiv data-dscr-chart-content\u003e\n        \u003cdiv class=\"dscr-chart-cluster\"\u003e\n          \u003cdiv class=\"dscr-chart-plot\" data-dscr-chart-plot\u003e\u003c\/div\u003e\n          \u003cdiv class=\"dscr-chart-legend\" data-dscr-chart-legend\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"dscr-table-wrap dscr-chart-table\" data-dscr-chart-summary-wrap\u003e\n          \u003ctable class=\"dscr-table\" aria-label=\"Income and debt service chart data\"\u003e\n            \u003cthead\u003e\u003ctr\u003e\n\u003cth\u003eMeasure\u003c\/th\u003e\n\u003cth\u003eMonthly amount\u003c\/th\u003e\n\u003cth\u003eRelative to debt service\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n            \u003ctbody data-dscr-chart-summary\u003e\u003c\/tbody\u003e\n          \u003c\/table\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"dscr-chart-callout\" data-dscr-chart-callout\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n  \u003csection class=\"dscr-table-card\" data-dscr-table-card\u003e\n    \u003cdiv class=\"dscr-table-toolbar\"\u003e\n      \u003ch3\u003eLoan amortization schedule\u003c\/h3\u003e\n      \u003cdiv class=\"dscr-segment\" role=\"group\" aria-label=\"Schedule detail\"\u003e\n        \u003cbutton type=\"button\" class=\"dscr-segment-button\" data-dscr-schedule=\"annual\" aria-pressed=\"true\"\u003eAnnual\u003c\/button\u003e\n        \u003cbutton type=\"button\" class=\"dscr-segment-button\" data-dscr-schedule=\"monthly\" aria-pressed=\"false\"\u003eMonthly\u003c\/button\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"dscr-empty\" data-dscr-table-empty hidden\u003eEnter a positive loan, term, and payment to build a schedule; the interest rate may be zero.\u003c\/div\u003e\n    \u003cdiv class=\"dscr-table-wrap\" data-dscr-table-wrap\u003e\n      \u003ctable class=\"dscr-table\" aria-label=\"Loan amortization schedule\"\u003e\n        \u003cthead\u003e\u003ctr\u003e\n\u003cth data-dscr-period-header\u003eYear\u003c\/th\u003e\n\u003cth\u003eBeginning balance\u003c\/th\u003e\n\u003cth\u003ePayments\u003c\/th\u003e\n\u003cth\u003ePrincipal\u003c\/th\u003e\n\u003cth\u003eInterest\u003c\/th\u003e\n\u003cth\u003eEnding balance\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n        \u003ctbody data-dscr-schedule-body\u003e\u003c\/tbody\u003e\n      \u003c\/table\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"dscr-table-note\" data-dscr-table-note\u003eThe annual view aggregates monthly rows. A custom payment may produce an early payoff or negative amortization.\u003c\/div\u003e\n  \u003c\/section\u003e\n  \u003cdetails class=\"dscr-details\"\u003e\n    \u003csummary\u003eCalculation assumptions and advanced interpretation\u003c\/summary\u003e\n    \u003cdiv class=\"dscr-details-content\"\u003e\n      \u003cp\u003eThe scheduled payment assumes level monthly payments and monthly compounding. The DSCR uses monthly NOI divided by monthly debt service, so the numerator and denominator share the same period. The schedule excludes taxes, escrow, fees, balloon payments, and prepayment penalties unless those amounts are included in the custom debt-service input.\u003c\/p\u003e\n      \u003cp data-dscr-advanced-text\u003eCurrent assumptions will appear here after calculation.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/details\u003e\n  \u003csection class=\"dscr-education\"\u003e\n    \u003ch2\u003eWhat this DSCR calculator estimates\u003c\/h2\u003e\n    \u003cp\u003eThe debt service coverage ratio compares net operating income with required debt payments over the same period. It is commonly used in commercial real estate, project finance, and business lending because it focuses on the cash generated by the financed asset or operation. A ratio of 1.00 means income exactly equals debt service. A ratio above 1.00 indicates a positive cushion; a ratio below 1.00 indicates that operating income alone does not fully cover the scheduled payment.\u003c\/p\u003e\n    \u003cp\u003eThis tool calculates the monthly loan payment from principal, annual interest rate, and amortization term, unless you enable a custom monthly debt-service amount. It then calculates DSCR, annualized income and debt service, the monthly cash-flow cushion, and the minimum NOI required to meet your target ratio. The chart and schedule use the same current-state model as the summary and Excel export.\u003c\/p\u003e\n    \u003ch2\u003eHow to complete each input\u003c\/h2\u003e\n    \u003ch3\u003eTotal loan amount\u003c\/h3\u003e\n    \u003cp\u003eEnter the principal balance to be amortized. Use the amount actually financed rather than the purchase price. A larger loan generally increases the monthly payment and lowers DSCR when NOI, rate, and term remain unchanged. Enter a positive dollar amount. A blank or zero balance clears the amortization schedule and prevents a calculated payment.\u003c\/p\u003e\n    \u003ch3\u003eAnnual interest rate\u003c\/h3\u003e\n    \u003cp\u003eEnter the nominal annual rate as a percentage, such as 7% rather than 0.07. A higher rate increases interest expense and usually reduces DSCR. A zero rate is supported and produces a straight-line principal payment. Do not add lender fees or points to the rate unless you intentionally want an all-in approximation.\u003c\/p\u003e\n    \u003ch3\u003eLoan term\u003c\/h3\u003e\n    \u003cp\u003eEnter the amortization period and choose years or months. Changing the selector converts the current value instead of merely relabeling it. A longer term typically lowers the monthly payment and raises DSCR, but it also increases the time needed to repay principal and may increase total interest. The amortization term is not necessarily the same as loan maturity when a balloon payment is required.\u003c\/p\u003e\n    \u003ch3\u003eMonthly debt service and custom payment\u003c\/h3\u003e\n    \u003cp\u003eBy default, the payment is calculated from the loan terms. Enable the custom-payment option when a lender has supplied a contractual monthly payment, when the debt is interest-only, or when several obligations should be combined into one amount. The DSCR always uses the displayed debt-service amount. The schedule uses the custom payment too, so a payment below monthly interest will show negative amortization rather than silently forcing a payoff.\u003c\/p\u003e\n    \u003ch3\u003eMonthly net operating income\u003c\/h3\u003e\n    \u003cp\u003eIn direct mode, enter monthly NOI after recurring operating expenses and vacancy loss but before financing costs, depreciation, and income taxes. Keep the measurement period consistent: monthly NOI must be compared with monthly debt service. Higher NOI raises DSCR dollar for dollar. Negative NOI is allowed for diagnostic purposes and will produce a negative ratio.\u003c\/p\u003e\n    \u003ch3\u003eGross income, operating expenses, and vacancy\u003c\/h3\u003e\n    \u003cp\u003eIn estimate mode, gross income is the property’s potential recurring monthly income. The operating expense rate represents costs such as property management, maintenance, insurance, property taxes, and owner-paid utilities. The vacancy rate represents expected lost income from empty units and collection problems. This calculator estimates NOI as gross income multiplied by one minus vacancy and then by one minus the expense rate. Rates must stay between 0% and 100%. Avoid counting the same vacancy or expense twice.\u003c\/p\u003e\n    \u003ch3\u003eTarget DSCR\u003c\/h3\u003e\n    \u003cp\u003eThe target is a planning benchmark used to calculate the minimum NOI required. A target of 1.25 means NOI should equal 125% of debt service. The common 1.25 figure is not universal: lender requirements depend on asset type, market, leverage, borrower strength, and loan structure. Review the actual covenant or term sheet rather than treating any generic threshold as approval guidance.\u003c\/p\u003e\n    \u003ch2\u003eHow the model works\u003c\/h2\u003e\n    \u003cp class=\"dscr-formula\"\u003eMonthly payment = P × r × (1 + r)^n ÷ ((1 + r)^n − 1)\u003cbr\u003eDSCR = monthly NOI ÷ monthly debt service\u003cbr\u003eEstimated NOI = gross income × (1 − vacancy rate) × (1 − expense rate)\u003c\/p\u003e\n    \u003cp\u003eIn the payment formula, P is principal, r is the monthly interest rate, and n is the number of monthly payments. When the rate is zero, the payment equals principal divided by the number of months. The same formulas are applied at full precision, with rounding only for display and workbook formatting.\u003c\/p\u003e\n    \u003ch2\u003eHow to interpret the results\u003c\/h2\u003e\n    \u003cp\u003e\u003cstrong\u003eDSCR\u003c\/strong\u003e is the primary coverage measure. Above 1.00 means operating income covers debt service; exactly 1.00 means no operating cushion; below 1.00 means a shortfall. A negative ratio reflects negative NOI. The status message compares the result with both break-even and your selected target.\u003c\/p\u003e\n    \u003cp\u003e\u003cstrong\u003eMonthly cash-flow cushion\u003c\/strong\u003e equals NOI minus debt service. It shows the dollar buffer after the scheduled payment, not distributable profit. Capital expenditures, reserves, taxes, and owner distributions may still reduce cash available. \u003cstrong\u003eNOI required at target\u003c\/strong\u003e equals debt service multiplied by the target ratio and is useful for rent, occupancy, or expense planning.\u003c\/p\u003e\n    \u003cp\u003e\u003cstrong\u003eAnnual NOI and annual debt service\u003c\/strong\u003e simply annualize the monthly amounts. The chart compares the two monthly measures on a common scale. The schedule separates each payment into principal and interest and shows the ending balance. If a custom payment pays the loan off early, the schedule stops at payoff; if it is too low, the balance may rise.\u003c\/p\u003e\n    \u003ch2\u003eDecision use, tradeoffs, and common mistakes\u003c\/h2\u003e\n    \u003cul\u003e\n      \u003cli\u003eStress-test NOI for rent declines, vacancy, repairs, and insurance increases rather than relying only on a current best case.\u003c\/li\u003e\n      \u003cli\u003eMatch periods exactly. Do not divide annual NOI by a monthly payment or monthly NOI by annual debt service.\u003c\/li\u003e\n      \u003cli\u003eExclude principal and interest from operating expenses when NOI is intended to be pre-debt-service.\u003c\/li\u003e\n      \u003cli\u003eCheck whether the lender uses property NOI, business cash flow, EBITDA, or another covenant definition.\u003c\/li\u003e\n      \u003cli\u003eDo not assume a high DSCR guarantees approval; collateral, leverage, liquidity, and documentation also matter.\u003c\/li\u003e\n    \u003c\/ul\u003e\n    \u003cp\u003eFor broader context, review the \u003ca href=\"https:\/\/www.investopedia.com\/terms\/d\/dscr.asp\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eInvestopedia overview of DSCR\u003c\/a\u003e, JPMorgan’s explanation of \u003ca href=\"https:\/\/www.jpmorgan.com\/insights\/real-estate\/commercial-term-lending\/what-is-debt-service-coverage-ratio-dscr-in-real-estate\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eDSCR in commercial real estate\u003c\/a\u003e, the U.S. Small Business Administration’s \u003ca href=\"https:\/\/www.sba.gov\/funding-programs\/loans\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eloan-program guidance\u003c\/a\u003e, and the Federal Reserve’s \u003ca href=\"https:\/\/www.federalreserve.gov\/consumerscommunities\/community-development.htm\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ecommunity development resources\u003c\/a\u003e. These sources provide context, but the governing loan documents and lender underwriting standards control the actual calculation.\u003c\/p\u003e\n  \u003c\/section\u003e\n\u003c\/div\u003e","brand":"FinancialModelsLab","offers":[{"title":"Default Title","offer_id":49909487763699,"sku":"dscr","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/dscr.webp?v=1783935535","url":"https:\/\/financialmodelslab.com\/products\/dscr","provider":"Financial Models Lab","version":"1.0","type":"link"}