{"product_id":"loan-balance","title":"Loan Balance Calculator","description":"\u003cstyle\u003e\n.lb-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: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", 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.lb-calculator,\n.lb-calculator *,\n.lb-calculator *::before,\n.lb-calculator *::after { box-sizing: border-box; }\n.lb-calculator * { min-width: 0; }\n.lb-calculator button,\n.lb-calculator input,\n.lb-calculator select { font: inherit; }\n.lb-calculator button { cursor: pointer; }\n.lb-calculator a { color: var(--primary); text-underline-offset: 2px; }\n.lb-calculator a:hover { text-decoration-thickness: 2px; }\n.lb-calculator :focus-visible { outline: 3px solid rgba(29,78,216,.35); outline-offset: 2px; }\n.lb-header { padding: 24px 24px 16px; border-bottom: 1px solid var(--border); background: linear-gradient(180deg, #fff 0%, var(--tint) 100%); }\n.lb-header h2 { margin: 0; font-size: 24px; line-height: 1.25; font-weight: 700; letter-spacing: -.02em; }\n.lb-subtitle { margin: 8px 0 0; color: var(--muted); max-width: 760px; }\n.lb-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }\n.lb-pill { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border: 1px solid var(--border); border-radius: 999px; background: #fff; color: var(--muted); font-size: 13px; font-weight: 500; white-space: nowrap; }\n.lb-pill strong { color: var(--ink); font-variant-numeric: tabular-nums; }\n.lb-toolbar { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; padding: 16px 24px; border-bottom: 1px solid var(--border); }\n.lb-btn { min-height: 44px; border: 1px solid var(--border); border-radius: 6px; padding: 11px 18px; font-weight: 650; display: inline-flex; align-items: center; justify-content: center; gap: 10px; white-space: nowrap; transition: background .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease; }\n.lb-btn:hover { box-shadow: 0 2px 5px rgba(15,23,42,.10); }\n.lb-btn:active { transform: translateY(1px); }\n.lb-download { background: var(--accent); border-color: var(--accent); color: #fff; }\n.lb-download:hover { background: var(--accent-hover); border-color: var(--accent-hover); }\n.lb-reset { background: #fff; color: var(--ink); }\n.lb-btn svg { width: 18px; height: 18px; flex: 0 0 auto; }\n.lb-workspace { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; padding: 24px; background: var(--tint); border-bottom: 1px solid var(--border); }\n.lb-panel { background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: 20px; box-shadow: 0 1px 2px rgba(15,23,42,.04); }\n.lb-panel h3,\n.lb-card h3,\n.lb-section-head h3 { margin: 0; font-size: 18px; line-height: 1.35; font-weight: 650; }\n.lb-panel-intro { margin: 6px 0 18px; color: var(--muted); font-size: 13px; font-weight: 500; }\n.lb-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }\n.lb-field { display: flex; flex-direction: column; gap: 7px; }\n.lb-field label,\n.lb-field-label,\n.lb-fieldset legend { font-size: 14px; font-weight: 600; color: var(--ink); }\n.lb-subcontrol { display: flex; flex-direction: column; gap: 6px; }\n.lb-subcontrol label { font-size: 13px; color: var(--muted); }\n.lb-control-row { display: grid; grid-template-columns: minmax(0, 1fr) 112px; gap: 8px; align-items: stretch; }\n.lb-input,\n.lb-select { width: 100%; min-height: 44px; border: 1px solid #cbd5e1; border-radius: 6px; background: #fff; color: var(--ink); padding: 10px 12px; font-variant-numeric: tabular-nums; }\n.lb-input:hover,\n.lb-select:hover { border-color: #94a3b8; }\n.lb-input[aria-invalid=\"true\"] { border-color: #b91c1c; box-shadow: 0 0 0 1px #b91c1c; }\n.lb-help { min-height: 40px; color: var(--muted); font-size: 13px; font-weight: 500; line-height: 1.45; }\n.lb-error { color: #991b1b; font-size: 13px; font-weight: 600; min-height: 19px; }\n.lb-results { display: flex; flex-direction: column; gap: 16px; }\n.lb-primary-result { border: 1px solid #bfdbfe; border-radius: 8px; background: #eff6ff; padding: 20px; }\n.lb-primary-label { color: #1e3a8a; font-size: 13px; font-weight: 650; text-transform: uppercase; letter-spacing: .04em; }\n.lb-primary-value { margin-top: 4px; font-size: 30px; line-height: 1.2; font-weight: 700; color: #172554; font-variant-numeric: tabular-nums; }\n.lb-primary-note { margin: 8px 0 0; color: #334155; font-size: 13px; font-weight: 500; }\n.lb-metric-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }\n.lb-metric { border: 1px solid var(--border); border-radius: 8px; background: #fff; padding: 14px; }\n.lb-metric-label { color: var(--muted); font-size: 13px; font-weight: 600; }\n.lb-metric-value { margin-top: 4px; font-size: 20px; line-height: 1.25; font-weight: 700; font-variant-numeric: tabular-nums; }\n.lb-progress-wrap { border: 1px solid var(--border); border-radius: 8px; padding: 14px; background: #fff; }\n.lb-progress-top { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 12px; }\n.lb-progress-top strong { font-size: 20px; font-variant-numeric: tabular-nums; }\n.lb-progress-top span { color: var(--muted); font-size: 13px; font-weight: 600; }\n.lb-progress-track { margin-top: 10px; height: 10px; border-radius: 999px; background: #e2e8f0; overflow: hidden; }\n.lb-progress-bar { height: 100%; width: 0; border-radius: inherit; background: var(--primary); transition: width .2s ease; }\n.lb-live { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }\n.lb-section { padding: 24px; border-bottom: 1px solid var(--border); }\n.lb-section-head { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 16px; }\n.lb-section-head p { margin: 4px 0 0; color: var(--muted); font-size: 13px; font-weight: 500; max-width: 720px; }\n.lb-chart-card { border: 1px solid var(--border); border-radius: 8px; background: #fff; padding: 20px; }\n.lb-chart-card.lb-safe-stack .lb-chart-cluster { grid-template-columns: 1fr; justify-items: center; row-gap: 24px; }\n.lb-chart-card.lb-safe-stack .lb-legend { width: 100%; max-width: 560px; }\n.lb-chart-card.lb-safe-stack .lb-chart-caption { margin-top: 20px; }\n.lb-chart-title-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 16px; margin-bottom: 16px; }\n.lb-chart-title-row h3 { margin: 0; font-size: 18px; font-weight: 650; }\n.lb-chart-kicker { color: var(--muted); font-size: 13px; font-weight: 500; }\n.lb-chart-cluster { display: grid; grid-template-columns: minmax(260px, 360px) minmax(260px, 420px); justify-content: center; align-items: center; gap: 24px; }\n.lb-chart-visual { width: 100%; max-width: 360px; margin: 0 auto; }\n.lb-donut-svg { display: block; width: 100%; height: auto; aspect-ratio: 1; }\n.lb-donut-total { font-size: 26px; font-weight: 700; fill: var(--ink); font-variant-numeric: tabular-nums; }\n.lb-donut-sub { font-size: 19px; font-weight: 600; fill: var(--muted); }\n.lb-legend { display: grid; gap: 10px; }\n.lb-legend-row { display: grid; grid-template-columns: 12px minmax(0, auto) auto auto; align-items: center; justify-content: start; gap: 8px 14px; font-size: 13px; font-weight: 600; }\n.lb-swatch { width: 12px; height: 12px; border-radius: 3px; }\n.lb-legend-name { color: var(--ink); }\n.lb-legend-value,\n.lb-legend-percent { color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; }\n.lb-chart-caption { margin-top: 20px; border: 1px solid #dbeafe; border-radius: 6px; background: #eff6ff; padding: 10px 12px; color: #334155; font-size: 13px; font-weight: 500; }\n.lb-empty { border: 1px dashed #cbd5e1; border-radius: 6px; background: var(--tint); padding: 20px; text-align: center; color: var(--muted); font-size: 13px; font-weight: 600; }\n.lb-breakdown-table { width: 100%; border-collapse: collapse; margin-top: 18px; font-size: 13px; }\n.lb-breakdown-table th,\n.lb-breakdown-table td { padding: 9px 10px; border-bottom: 1px solid var(--border); text-align: left; }\n.lb-breakdown-table th { color: var(--muted); font-weight: 650; background: var(--tint); }\n.lb-breakdown-table td:nth-child(n+2),\n.lb-breakdown-table th:nth-child(n+2) { text-align: right; font-variant-numeric: tabular-nums; }\n.lb-line-wrap { width: 100%; }\n.lb-line-svg { display: block; width: 100%; height: 360px; }\n.lb-line-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 20px; margin-top: 18px; }\n.lb-line-legend-item { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); font-size: 13px; font-weight: 600; }\n.lb-line-key { width: 28px; height: 4px; border-radius: 999px; }\n.lb-line-summary { margin-top: 18px; border: 1px solid #dbeafe; border-radius: 6px; background: #eff6ff; padding: 10px 12px; color: #334155; font-size: 13px; font-weight: 500; }\n.lb-table-controls { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; }\n.lb-table-control { display: flex; flex-direction: column; gap: 6px; }\n.lb-table-control label { font-size: 13px; font-weight: 650; }\n.lb-table-control .lb-select { min-width: 150px; }\n.lb-table-card { border: 1px solid var(--border); border-radius: 8px; background: #fff; padding: 0; }\n.lb-table-card.lb-safe-table-stack .lb-table-note { margin-top: 20px; }\n.lb-table-overflow { width: 100%; overflow-x: auto; border-radius: 8px 8px 0 0; }\n.lb-table { width: 100%; min-width: 760px; border-collapse: collapse; font-size: 13px; font-variant-numeric: tabular-nums; }\n.lb-table th,\n.lb-table td { padding: 10px 12px; border-bottom: 1px solid var(--border); text-align: right; white-space: nowrap; }\n.lb-table th:first-child,\n.lb-table td:first-child { text-align: left; }\n.lb-table th { background: #0f172a; color: #fff; font-weight: 650; }\n.lb-table tbody tr:hover { background: var(--tint); }\n.lb-table tbody tr:last-child td { border-bottom: 0; font-weight: 650; }\n.lb-table-note { margin: 16px 16px 16px; border: 1px solid var(--border); border-radius: 6px; background: var(--tint); padding: 10px 12px; color: var(--muted); font-size: 13px; font-weight: 500; }\n.lb-education { padding: 32px 24px; }\n.lb-education-inner { max-width: 900px; margin: 0 auto; }\n.lb-education h2 { margin: 30px 0 10px; font-size: 22px; line-height: 1.3; font-weight: 700; }\n.lb-education h2:first-child { margin-top: 0; }\n.lb-education h3 { margin: 20px 0 8px; font-size: 17px; line-height: 1.35; font-weight: 650; }\n.lb-education p { margin: 0 0 12px; color: #334155; }\n.lb-education ul { margin: 8px 0 14px; padding-left: 22px; color: #334155; }\n.lb-education li { margin: 6px 0; }\n.lb-formula { border: 1px solid var(--border); border-radius: 6px; background: var(--tint); padding: 12px; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; color: var(--ink); overflow-wrap: anywhere; }\n@container (max-width: 899px) {\n  .lb-workspace { grid-template-columns: 1fr; }\n}\n@container (max-width: 639px) {\n  .lb-header,\n  .lb-toolbar,\n  .lb-workspace,\n  .lb-section,\n  .lb-education { padding-left: 16px; padding-right: 16px; }\n  .lb-form-grid { grid-template-columns: 1fr; }\n  .lb-metric-grid { grid-template-columns: 1fr; }\n  .lb-chart-cluster { grid-template-columns: 1fr; justify-items: center; gap: 20px; }\n  .lb-legend { width: 100%; max-width: 420px; }\n  .lb-legend-row { grid-template-columns: 12px minmax(0, auto) auto; gap: 8px 12px; }\n  .lb-legend-percent { grid-column: 2 \/ -1; }\n  .lb-section-head { align-items: stretch; flex-direction: column; }\n}\n@container (max-width: 379px) {\n  .lb-header { padding-top: 20px; }\n  .lb-header h2 { font-size: 22px; }\n  .lb-toolbar { gap: 8px; }\n  .lb-btn { width: 100%; }\n  .lb-control-row { grid-template-columns: minmax(0, 1fr) 104px; }\n  .lb-panel,\n  .lb-chart-card { padding: 16px; }\n  .lb-primary-value { font-size: 27px; }\n  .lb-legend-row { grid-template-columns: 12px minmax(0, 1fr); }\n  .lb-legend-value,\n  .lb-legend-percent { grid-column: 2; }\n}\n\u003c\/style\u003e\n\u003cdiv class=\"lb-calculator\" data-calculator-root\u003e\n  \u003cheader class=\"lb-header\"\u003e\n    \u003ch2\u003eLoan Balance Calculator\u003c\/h2\u003e\n    \u003cp class=\"lb-subtitle\"\u003eEstimate how much principal remains after a chosen number of monthly payments, then review payment progress, interest, and the complete amortization path.\u003c\/p\u003e\n    \u003cdiv class=\"lb-pills\" aria-label=\"Live loan summary\"\u003e\n      \u003cspan class=\"lb-pill\"\u003ePayment \u003cstrong id=\"lb-pill-payment\"\u003e$188.71\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"lb-pill\"\u003ePaid off \u003cstrong id=\"lb-pill-progress\"\u003e37.03%\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"lb-pill\"\u003ePayments left \u003cstrong id=\"lb-pill-left\"\u003e36\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"lb-pill\"\u003eFuture interest \u003cstrong id=\"lb-pill-interest\"\u003e$497.12\u003c\/strong\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/header\u003e\n\n  \u003cdiv class=\"lb-toolbar\" aria-label=\"Calculator actions\"\u003e\n    \u003cbutton class=\"lb-btn lb-download\" id=\"lb-download\" type=\"button\"\u003e\n      \u003csvg aria-hidden=\"true\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M12 3v12\"\u003e\u003c\/path\u003e\u003cpath d=\"m7 10 5 5 5-5\"\u003e\u003c\/path\u003e\u003cpath d=\"M5 21h14\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cspan\u003eDownload Excel\u003c\/span\u003e\n    \u003c\/button\u003e\n    \u003cbutton class=\"lb-btn lb-reset\" id=\"lb-reset\" type=\"button\"\u003e\n      \u003csvg aria-hidden=\"true\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M3 12a9 9 0 1 0 3-6.7\"\u003e\u003c\/path\u003e\u003cpath d=\"M3 3v6h6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cspan\u003eReset\u003c\/span\u003e\n    \u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003csection class=\"lb-workspace\" aria-label=\"Loan inputs and results\"\u003e\n    \u003cdiv class=\"lb-panel\"\u003e\n      \u003ch3\u003eLoan details\u003c\/h3\u003e\n      \u003cp class=\"lb-panel-intro\"\u003eValues update instantly. The model assumes a fixed rate, equal monthly payments, and no extra fees or prepayments.\u003c\/p\u003e\n      \u003cdiv class=\"lb-form-grid\"\u003e\n        \u003cdiv class=\"lb-field\"\u003e\n          \u003clabel for=\"lb-loan\"\u003eOriginal loan amount\u003c\/label\u003e\n          \u003cinput class=\"lb-input\" id=\"lb-loan\" type=\"text\" inputmode=\"decimal\" value=\"$10,000.00\" autocomplete=\"off\" aria-describedby=\"lb-loan-help lb-loan-error\"\u003e\n          \u003cdiv class=\"lb-help\" id=\"lb-loan-help\"\u003eThe principal borrowed at the start of the loan.\u003c\/div\u003e\n          \u003cdiv class=\"lb-error\" id=\"lb-loan-error\" aria-live=\"polite\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"lb-field\"\u003e\n          \u003clabel for=\"lb-rate\"\u003eAnnual interest rate\u003c\/label\u003e\n          \u003cinput class=\"lb-input\" id=\"lb-rate\" type=\"text\" inputmode=\"decimal\" value=\"5.00%\" autocomplete=\"off\" aria-describedby=\"lb-rate-help lb-rate-error\"\u003e\n          \u003cdiv class=\"lb-help\" id=\"lb-rate-help\"\u003eNominal yearly rate, converted to a monthly rate.\u003c\/div\u003e\n          \u003cdiv class=\"lb-error\" id=\"lb-rate-error\" aria-live=\"polite\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"lb-field\"\u003e\n          \u003cspan class=\"lb-field-label\"\u003eOriginal loan term\u003c\/span\u003e\n          \u003cdiv class=\"lb-control-row\"\u003e\n            \u003cdiv class=\"lb-subcontrol\"\u003e\n\u003clabel for=\"lb-term\"\u003eTerm amount\u003c\/label\u003e\u003cinput class=\"lb-input\" id=\"lb-term\" type=\"text\" inputmode=\"decimal\" value=\"5\" autocomplete=\"off\" aria-describedby=\"lb-term-help lb-term-error\"\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"lb-subcontrol\"\u003e\n\u003clabel for=\"lb-term-unit\"\u003eTerm unit\u003c\/label\u003e\u003cselect class=\"lb-select\" id=\"lb-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\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"lb-help\" id=\"lb-term-help\"\u003eTotal contractual duration. It is normalized to whole months.\u003c\/div\u003e\n          \u003cdiv class=\"lb-error\" id=\"lb-term-error\" aria-live=\"polite\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"lb-field\"\u003e\n          \u003cspan class=\"lb-field-label\"\u003eTime already paid\u003c\/span\u003e\n          \u003cdiv class=\"lb-control-row\"\u003e\n            \u003cdiv class=\"lb-subcontrol\"\u003e\n\u003clabel for=\"lb-elapsed\"\u003eElapsed amount\u003c\/label\u003e\u003cinput class=\"lb-input\" id=\"lb-elapsed\" type=\"text\" inputmode=\"decimal\" value=\"2\" autocomplete=\"off\" aria-describedby=\"lb-elapsed-help lb-elapsed-error\"\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"lb-subcontrol\"\u003e\n\u003clabel for=\"lb-elapsed-unit\"\u003eElapsed unit\u003c\/label\u003e\u003cselect class=\"lb-select\" id=\"lb-elapsed-unit\"\u003e\n              \u003coption value=\"years\" selected\u003eYears\u003c\/option\u003e\n              \u003coption value=\"months\"\u003eMonths\u003c\/option\u003e\n            \u003c\/select\u003e\n\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"lb-help\" id=\"lb-elapsed-help\"\u003ePayments completed since origination, from zero through the full term.\u003c\/div\u003e\n          \u003cdiv class=\"lb-error\" id=\"lb-elapsed-error\" aria-live=\"polite\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"lb-results\"\u003e\n      \u003cdiv class=\"lb-primary-result\"\u003e\n        \u003cdiv class=\"lb-primary-label\"\u003eRemaining loan balance\u003c\/div\u003e\n        \u003cdiv class=\"lb-primary-value\" id=\"lb-balance\"\u003e$6,296.52\u003c\/div\u003e\n        \u003cp class=\"lb-primary-note\" id=\"lb-balance-note\"\u003eAfter 24 of 60 scheduled monthly payments.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"lb-metric-grid\"\u003e\n        \u003cdiv class=\"lb-metric\"\u003e\n\u003cdiv class=\"lb-metric-label\"\u003eMonthly payment\u003c\/div\u003e\n\u003cdiv class=\"lb-metric-value\" id=\"lb-payment\"\u003e$188.71\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"lb-metric\"\u003e\n\u003cdiv class=\"lb-metric-label\"\u003ePrincipal repaid\u003c\/div\u003e\n\u003cdiv class=\"lb-metric-value\" id=\"lb-principal-paid\"\u003e$3,703.48\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"lb-metric\"\u003e\n\u003cdiv class=\"lb-metric-label\"\u003eInterest paid to date\u003c\/div\u003e\n\u003cdiv class=\"lb-metric-value\" id=\"lb-interest-paid\"\u003e$825.62\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"lb-metric\"\u003e\n\u003cdiv class=\"lb-metric-label\"\u003eFuture interest\u003c\/div\u003e\n\u003cdiv class=\"lb-metric-value\" id=\"lb-future-interest\"\u003e$497.12\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"lb-progress-wrap\"\u003e\n        \u003cdiv class=\"lb-progress-top\"\u003e\n\u003cstrong id=\"lb-progress\"\u003e37.03%\u003c\/strong\u003e\u003cspan\u003eof original principal repaid\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"lb-progress-track\" aria-hidden=\"true\"\u003e\u003cdiv class=\"lb-progress-bar\" id=\"lb-progress-bar\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"lb-live\" id=\"lb-live\" aria-live=\"polite\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"lb-section lb-breakdown\" aria-labelledby=\"lb-breakdown-heading\"\u003e\n    \u003cdiv class=\"lb-section-head\"\u003e\n      \u003cdiv\u003e\n        \u003ch3 id=\"lb-breakdown-heading\"\u003eLifetime payment breakdown\u003c\/h3\u003e\n        \u003cp\u003eSee where every scheduled dollar falls: principal and interest already paid, plus principal and interest still ahead.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"lb-chart-card\" id=\"lb-breakdown-card\" data-chart-card\u003e\n      \u003cdiv class=\"lb-chart-title-row\"\u003e\n\u003ch3\u003eTotal scheduled payments\u003c\/h3\u003e\n\u003cspan class=\"lb-chart-kicker\" id=\"lb-breakdown-kicker\"\u003e$11,322.74 across 60 payments\u003c\/span\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"lb-chart-cluster\" id=\"lb-breakdown-cluster\"\u003e\n        \u003cdiv class=\"lb-chart-visual\" id=\"lb-donut-wrap\"\u003e\n          \u003csvg class=\"lb-donut-svg\" id=\"lb-donut\" viewbox=\"0 0 320 320\" role=\"img\" aria-labelledby=\"lb-donut-title lb-donut-desc\"\u003e\n            \u003ctitle id=\"lb-donut-title\"\u003eLoan payment breakdown\u003c\/title\u003e\n            \u003cdesc id=\"lb-donut-desc\"\u003ePayment breakdown chart.\u003c\/desc\u003e\n          \u003c\/svg\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"lb-legend\" id=\"lb-breakdown-legend\" aria-label=\"Payment breakdown legend\"\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"lb-empty\" id=\"lb-breakdown-empty\" hidden\u003eEnter a loan amount and term to see the payment breakdown.\u003c\/div\u003e\n      \u003cdiv class=\"lb-table-overflow\" id=\"lb-breakdown-table-wrap\"\u003e\n        \u003ctable class=\"lb-breakdown-table\" aria-label=\"Payment breakdown data\"\u003e\n          \u003cthead\u003e\u003ctr\u003e\n\u003cth\u003eCategory\u003c\/th\u003e\n\u003cth\u003eAmount\u003c\/th\u003e\n\u003cth\u003eShare\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n          \u003ctbody id=\"lb-breakdown-table\"\u003e\u003c\/tbody\u003e\n        \u003c\/table\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"lb-chart-caption\" id=\"lb-breakdown-caption\"\u003eAt this point, 37.03% of the original principal is repaid, while $497.12 of scheduled interest remains.\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"lb-section lb-chart\" aria-labelledby=\"lb-chart-heading\"\u003e\n    \u003cdiv class=\"lb-section-head\"\u003e\n      \u003cdiv\u003e\n        \u003ch3 id=\"lb-chart-heading\"\u003eBalance and principal progress\u003c\/h3\u003e\n        \u003cp\u003eThe balance curve typically falls slowly at first and faster later because each payment gradually shifts from interest toward principal.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"lb-chart-card\" id=\"lb-line-card\" data-chart-card\u003e\n      \u003cdiv class=\"lb-line-wrap\" id=\"lb-line-wrap\"\u003e\n        \u003csvg class=\"lb-line-svg\" id=\"lb-line-chart\" viewbox=\"0 0 920 360\" role=\"img\" aria-labelledby=\"lb-line-title lb-line-desc\"\u003e\n          \u003ctitle id=\"lb-line-title\"\u003eLoan balance and cumulative principal by month\u003c\/title\u003e\n          \u003cdesc id=\"lb-line-desc\"\u003eLine chart of remaining balance and cumulative principal repaid over the full loan term.\u003c\/desc\u003e\n        \u003c\/svg\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"lb-empty\" id=\"lb-line-empty\" hidden\u003eEnter a loan amount and term to see the amortization chart.\u003c\/div\u003e\n      \u003cdiv class=\"lb-line-legend\" id=\"lb-line-legend\" aria-label=\"Amortization chart legend\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"lb-line-summary\" id=\"lb-line-summary\"\u003eThe current point is month 24: $6,296.52 remains and $3,703.48 of principal has been repaid.\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"lb-section lb-table-section\" aria-labelledby=\"lb-table-heading\"\u003e\n    \u003cdiv class=\"lb-section-head\"\u003e\n      \u003cdiv\u003e\n        \u003ch3 id=\"lb-table-heading\"\u003eAmortization schedule\u003c\/h3\u003e\n        \u003cp\u003eEach row uses the same calculation model as the balance, charts, and Excel workbook.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"lb-table-controls\"\u003e\n        \u003cdiv class=\"lb-table-control\"\u003e\n          \u003clabel for=\"lb-table-view\"\u003eTable view\u003c\/label\u003e\n          \u003cselect class=\"lb-select\" id=\"lb-table-view\"\u003e\n            \u003coption value=\"annual\" selected\u003eAnnual summary\u003c\/option\u003e\n            \u003coption value=\"monthly\"\u003eMonthly detail\u003c\/option\u003e\n          \u003c\/select\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"lb-table-card\" id=\"lb-table-card\" data-table-card\u003e\n      \u003cdiv class=\"lb-table-overflow\" id=\"lb-table-overflow\"\u003e\n        \u003ctable class=\"lb-table\" aria-label=\"Loan amortization schedule\"\u003e\n          \u003cthead\u003e\u003ctr\u003e\n\u003cth\u003ePeriod\u003c\/th\u003e\n\u003cth\u003eStarting balance\u003c\/th\u003e\n\u003cth\u003ePayment\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 id=\"lb-schedule-body\"\u003e\u003c\/tbody\u003e\n        \u003c\/table\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"lb-table-note\" id=\"lb-table-note\"\u003eAnnual rows aggregate monthly payments. The last payment may be adjusted by a few cents so the ending balance reaches exactly zero.\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"lb-education\"\u003e\n    \u003cdiv class=\"lb-education-inner\"\u003e\n      \u003ch2\u003eWhat does this loan balance calculator estimate?\u003c\/h2\u003e\n      \u003cp\u003eThis calculator estimates the unpaid principal on a standard amortizing loan after a selected number of monthly payments. It is suitable for fixed-rate personal loans, auto loans, and many conventional mortgages when the contract uses equal monthly installments. The result is an estimate of principal still owed, not a lender’s formal payoff quote. A payoff quote can include daily accrued interest, late charges, escrow adjustments, prepayment fees, or other account-specific items that are not part of this model.\u003c\/p\u003e\n      \u003cp\u003eThe default example uses a $10,000 loan, a 5% annual interest rate, a five-year term, and two years of completed payments. Under those assumptions, the scheduled monthly payment is about $188.71 and the remaining principal is about $6,296.52 after 24 payments.\u003c\/p\u003e\n\n      \u003ch2\u003eHow should each input be used?\u003c\/h2\u003e\n      \u003ch3\u003eOriginal loan amount\u003c\/h3\u003e\n      \u003cp\u003eEnter the principal borrowed before interest. This field is required and should be a positive dollar amount. A larger loan raises the payment, interest cost, and remaining balance in direct proportion when the rate and term stay unchanged. Do not enter the total of all future payments or the current balance; the model needs the starting principal.\u003c\/p\u003e\n      \u003ch3\u003eAnnual interest rate\u003c\/h3\u003e\n      \u003cp\u003eEnter the nominal annual percentage rate used to calculate monthly interest. The calculator divides this rate by 12. A higher rate increases the monthly payment and causes principal to decline more slowly in the early months. A zero rate is valid and produces a simple straight-line repayment schedule. Keep lender fees separate unless they were financed into the original principal. For background on how consumer loan rates and disclosures work, review the \u003ca href=\"https:\/\/www.consumerfinance.gov\/ask-cfpb\/category-loans\/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eConsumer Financial Protection Bureau’s loan guidance\u003c\/a\u003e.\u003c\/p\u003e\n      \u003ch3\u003eOriginal loan term\u003c\/h3\u003e\n      \u003cp\u003eEnter the full contractual term in years or months. Changing the unit converts the current value rather than simply relabeling it. The calculator rounds the converted duration to the nearest whole month because the schedule is monthly. A longer term usually lowers the monthly payment but raises total interest and keeps the balance outstanding longer. A shorter term does the opposite.\u003c\/p\u003e\n      \u003ch3\u003eTime already paid\u003c\/h3\u003e\n      \u003cp\u003eEnter how long payments have been made, again in years or months. This amount may range from zero to the full term. Values beyond the original term are rejected because a standard amortizing loan should already be paid off. The model assumes all scheduled payments were made on time and in full. Missed payments, deferments, extra payments, and rate changes require a lender statement or a more specialized model.\u003c\/p\u003e\n\n      \u003ch2\u003eHow is the remaining balance calculated?\u003c\/h2\u003e\n      \u003cp\u003eFirst, the calculator determines the level monthly payment. For a positive monthly rate, the payment is based on the standard annuity formula. It then calculates the balance after the selected number of payments. With principal \u003cem\u003eP\u003c\/em\u003e, monthly rate \u003cem\u003er\u003c\/em\u003e, total months \u003cem\u003en\u003c\/em\u003e, and completed payments \u003cem\u003ek\u003c\/em\u003e:\u003c\/p\u003e\n      \u003cdiv class=\"lb-formula\"\u003ePayment = P × r × (1 + r)^n ÷ ((1 + r)^n − 1)\u003cbr\u003eBalance after k payments = P × (1 + r)^k − Payment × ((1 + r)^k − 1) ÷ r\u003c\/div\u003e\n      \u003cp\u003eWhen the interest rate is zero, the calculator uses payment = principal ÷ months and balance = principal − payment × completed payments. Full precision is maintained inside the model; rounding is applied only for display and export. This prevents small repeated rounding differences from accumulating in the balance.\u003c\/p\u003e\n\n      \u003ch2\u003eHow should the results be interpreted?\u003c\/h2\u003e\n      \u003ch3\u003eRemaining loan balance\u003c\/h3\u003e\n      \u003cp\u003eThis is the estimated principal still unpaid immediately after the selected payment count. A value of zero means the chosen period reaches the end of the modeled schedule. A high balance relative to the original principal is normal early in a long-term loan, especially at higher rates.\u003c\/p\u003e\n      \u003ch3\u003eMonthly payment\u003c\/h3\u003e\n      \u003cp\u003eThis is the scheduled principal-and-interest installment. It excludes taxes, insurance, escrow, optional protection products, and servicing fees. For mortgages, the amount debited from your account may therefore be materially higher. The \u003ca href=\"https:\/\/www.consumerfinance.gov\/owning-a-home\/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eCFPB home-buying resources\u003c\/a\u003e explain common mortgage payment components.\u003c\/p\u003e\n      \u003ch3\u003ePrincipal repaid and interest paid to date\u003c\/h3\u003e\n      \u003cp\u003ePrincipal repaid is the original amount minus the remaining balance. Interest paid to date is the sum of the interest portions of completed scheduled payments. Early payments usually contain more interest because interest is calculated on a larger outstanding balance. These figures help distinguish cash paid from actual debt reduction.\u003c\/p\u003e\n      \u003ch3\u003eFuture interest and payoff progress\u003c\/h3\u003e\n      \u003cp\u003eFuture interest is the scheduled interest from the next payment through maturity, assuming no changes. Payoff progress is principal repaid divided by original principal. It is not the percentage of time elapsed; the two can differ because amortization is nonlinear.\u003c\/p\u003e\n\n      \u003ch2\u003eWhat do the charts and schedule show?\u003c\/h2\u003e\n      \u003cp\u003eThe lifetime breakdown divides all scheduled payments into four current-state categories: principal already paid, interest already paid, principal remaining, and interest still scheduled. The line chart plots remaining balance and cumulative principal across the entire term, with the current month highlighted. The schedule then exposes the same model row by row. In monthly view, each row shows starting balance, payment, principal, interest, and ending balance. Annual view aggregates those rows into compact yearly totals.\u003c\/p\u003e\n      \u003cp\u003eUse the charts to understand direction and timing, but use the exact result cards and schedule for amounts. The exported Excel workbook captures the current inputs, results, breakdown, and every monthly schedule row. For a broader explanation of amortization and payment structure, see the \u003ca href=\"https:\/\/www.investopedia.com\/terms\/a\/amortization.asp\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eInvestopedia overview of amortization\u003c\/a\u003e.\u003c\/p\u003e\n\n      \u003ch2\u003eWhat assumptions can cause differences from a lender statement?\u003c\/h2\u003e\n      \u003cp\u003eCommon causes include daily rather than monthly interest accrual, payment dates that differ from the contractual due date, financed fees, skipped or partial payments, extra principal payments, adjustable rates, balloon payments, and rounding conventions. Mortgage balances may also be shown beside escrow balances that are not principal. The Federal Reserve’s \u003ca href=\"https:\/\/www.federalreserve.gov\/consumerscommunities\/consumer-resources.htm\" target=\"_blank\" rel=\"noopener noreferrer\"\u003econsumer financial resources\u003c\/a\u003e provide additional context on borrowing and credit.\u003c\/p\u003e\n      \u003cp\u003eBefore refinancing, selling collateral, or paying off a loan, request an official payoff statement from the servicer. This calculator is an educational planning tool and does not provide individualized financial, legal, tax, or investment advice.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\u003c\/div\u003e","brand":"FinancialModelsLab","offers":[{"title":"Default Title","offer_id":49909487272179,"sku":"loan-balance","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/loan-balance.webp?v=1783935519","url":"https:\/\/financialmodelslab.com\/products\/loan-balance","provider":"Financial Models Lab","version":"1.0","type":"link"}