{"product_id":"loan-repayment","title":"Loan Repayment Calculator | Loan Payoff Calculator","description":"\u003cstyle\u003e\n.lrp-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  width: 100%;\n  max-width: 1200px;\n  margin: 0 auto;\n  color: var(--ink);\n  background: var(--surface);\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  font-size: 15px;\n  line-height: 1.55;\n  container-type: inline-size;\n}\n.lrp-calculator,\n.lrp-calculator *,\n.lrp-calculator *::before,\n.lrp-calculator *::after { box-sizing: border-box; }\n.lrp-calculator * { min-width: 0; }\n.lrp-calculator h2,\n.lrp-calculator h3,\n.lrp-calculator p { margin-top: 0; }\n.lrp-calculator button,\n.lrp-calculator input,\n.lrp-calculator select { font: inherit; }\n.lrp-calculator button,\n.lrp-calculator input,\n.lrp-calculator select,\n.lrp-calculator a { -webkit-tap-highlight-color: transparent; }\n.lrp-calculator button:focus-visible,\n.lrp-calculator input:focus-visible,\n.lrp-calculator select:focus-visible,\n.lrp-calculator summary:focus-visible,\n.lrp-calculator a:focus-visible {\n  outline: 3px solid rgba(29, 78, 216, .35);\n  outline-offset: 2px;\n}\n.lrp-calculator .lrp-shell { padding: 24px; background: var(--tint); border: 1px solid var(--border); border-radius: 8px; }\n.lrp-calculator .lrp-header { display: grid; gap: 12px; margin-bottom: 16px; }\n.lrp-calculator .lrp-header h2 { margin-bottom: 0; font-size: 24px; line-height: 1.25; font-weight: 700; letter-spacing: -.02em; }\n.lrp-calculator .lrp-subtitle { margin-bottom: 0; color: var(--muted); max-width: 760px; }\n.lrp-calculator .lrp-pills { display: flex; flex-wrap: wrap; gap: 8px; }\n.lrp-calculator .lrp-pill { display: inline-flex; align-items: baseline; gap: 8px; padding: 6px 10px; border: 1px solid var(--border); border-radius: 999px; background: var(--surface); color: var(--muted); font-size: 13px; font-weight: 500; }\n.lrp-calculator .lrp-pill strong { color: var(--ink); font-variant-numeric: tabular-nums; }\n.lrp-calculator .lrp-toolbar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 16px; }\n.lrp-calculator .lrp-button { min-height: 44px; border: 1px solid transparent; border-radius: 6px; padding: 10px 16px; cursor: pointer; font-weight: 650; line-height: 1; transition: background-color .15s ease, border-color .15s ease, transform .15s ease, box-shadow .15s ease; }\n.lrp-calculator .lrp-button:hover { box-shadow: 0 2px 5px rgba(15,23,42,.12); }\n.lrp-calculator .lrp-button:active { transform: translateY(1px); }\n.lrp-calculator .lrp-download { display: inline-flex; align-items: center; gap: 10px; padding: 12px 18px; background: var(--accent); color: #fff; white-space: nowrap; }\n.lrp-calculator .lrp-download:hover { background: var(--accent-hover); }\n.lrp-calculator .lrp-download svg { width: 18px; height: 18px; flex: 0 0 auto; }\n.lrp-calculator .lrp-reset { background: var(--surface); color: var(--ink); border-color: #cbd5e1; }\n.lrp-calculator .lrp-reset:hover { background: #f1f5f9; }\n.lrp-calculator .lrp-workspace { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: 16px; align-items: start; }\n.lrp-calculator .lrp-card { background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: 16px; box-shadow: 0 1px 2px rgba(15,23,42,.06); }\n.lrp-calculator .lrp-card h3 { margin-bottom: 12px; font-size: 18px; line-height: 1.35; font-weight: 650; }\n.lrp-calculator .lrp-input-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; }\n.lrp-calculator .lrp-field { display: grid; grid-template-rows: auto auto minmax(38px, auto); align-content: start; gap: 6px; }\n.lrp-calculator .lrp-field-full { grid-column: 1 \/ -1; }\n.lrp-calculator .lrp-label,\n.lrp-calculator .lrp-group-label { font-size: 14px; font-weight: 600; color: var(--ink); }\n.lrp-calculator .lrp-control { width: 100%; min-height: 44px; padding: 10px 12px; color: var(--ink); background: var(--surface); border: 1px solid #cbd5e1; border-radius: 6px; }\n.lrp-calculator .lrp-control:hover { border-color: #94a3b8; }\n.lrp-calculator .lrp-control[aria-invalid=\"true\"] { border-color: #b91c1c; }\n.lrp-calculator .lrp-helper,\n.lrp-calculator .lrp-error { min-height: 38px; margin: 0; font-size: 13px; font-weight: 500; line-height: 1.45; color: var(--muted); }\n.lrp-calculator .lrp-error { color: #991b1b; }\n.lrp-calculator .lrp-segmented { display: inline-grid; grid-auto-flow: column; grid-auto-columns: 1fr; width: 100%; min-height: 44px; border: 1px solid #cbd5e1; border-radius: 6px; overflow: clip; background: var(--surface); }\n.lrp-calculator .lrp-segmented input { position: absolute; opacity: 0; pointer-events: none; }\n.lrp-calculator .lrp-segmented label { display: flex; align-items: center; justify-content: center; padding: 8px 12px; cursor: pointer; color: var(--muted); font-size: 13px; font-weight: 650; border-right: 1px solid #cbd5e1; }\n.lrp-calculator .lrp-segmented label:last-child { border-right: 0; }\n.lrp-calculator .lrp-segmented input:checked + label { color: #fff; background: var(--primary); }\n.lrp-calculator .lrp-segmented input:focus-visible + label { outline: 3px solid rgba(29,78,216,.35); outline-offset: -3px; }\n.lrp-calculator .lrp-hidden { display: none !important; }\n.lrp-calculator .lrp-advanced { margin-top: 16px; border-top: 1px solid var(--border); padding-top: 12px; }\n.lrp-calculator .lrp-advanced summary { cursor: pointer; font-weight: 650; color: var(--primary); }\n.lrp-calculator .lrp-advanced-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; padding-top: 12px; }\n.lrp-calculator .lrp-results { display: grid; gap: 12px; }\n.lrp-calculator .lrp-primary-result { padding: 16px; border: 1px solid #bfdbfe; border-radius: 8px; background: #eff6ff; }\n.lrp-calculator .lrp-primary-label { margin: 0 0 4px; color: #1e3a8a; font-size: 13px; font-weight: 650; }\n.lrp-calculator .lrp-primary-value { margin: 0; color: #172554; font-size: 30px; line-height: 1.2; font-weight: 700; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }\n.lrp-calculator .lrp-primary-note { margin: 6px 0 0; color: #1e3a8a; font-size: 13px; font-weight: 500; }\n.lrp-calculator .lrp-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }\n.lrp-calculator .lrp-metric { padding: 12px; border: 1px solid var(--border); border-radius: 6px; background: var(--surface); }\n.lrp-calculator .lrp-metric span { display: block; color: var(--muted); font-size: 13px; font-weight: 500; }\n.lrp-calculator .lrp-metric strong { display: block; margin-top: 4px; color: var(--ink); font-size: 20px; line-height: 1.25; font-weight: 700; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }\n.lrp-calculator .lrp-status { padding: 10px 12px; border-radius: 6px; background: #f1f5f9; color: var(--muted); font-size: 13px; font-weight: 500; }\n.lrp-calculator .lrp-section { margin-top: 16px; }\n.lrp-calculator .lrp-section-heading { display: grid; gap: 4px; margin-bottom: 12px; }\n.lrp-calculator .lrp-section-heading h3 { margin-bottom: 0; }\n.lrp-calculator .lrp-section-heading p { margin-bottom: 0; color: var(--muted); font-size: 13px; font-weight: 500; }\n.lrp-calculator .lrp-chart-cluster { display: grid; grid-template-columns: minmax(240px, 320px) minmax(260px, 360px); gap: 24px; align-items: end; justify-content: center; width: min(100%, 760px); margin: 0 auto; }\n.lrp-calculator .lrp-chart-visual { display: grid; place-items: center; width: 100%; }\n.lrp-calculator .lrp-donut-svg { display: block; width: min(100%, 300px); height: auto; aspect-ratio: 1; overflow: visible; }\n.lrp-calculator .lrp-donut-svg text { font-family: inherit; text-anchor: middle; }\n.lrp-calculator .lrp-legend { display: grid; gap: 8px; align-content: center; }\n.lrp-calculator .lrp-legend-row { display: grid; grid-template-columns: 12px minmax(92px, auto) auto auto; align-items: center; justify-content: start; gap: 8px 12px; font-size: 13px; font-weight: 500; }\n.lrp-calculator .lrp-swatch { width: 12px; height: 12px; border-radius: 3px; }\n.lrp-calculator .lrp-legend-name { color: var(--ink); }\n.lrp-calculator .lrp-legend-value,\n.lrp-calculator .lrp-legend-percent { color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; }\n.lrp-calculator .lrp-chart-caption,\n.lrp-calculator .lrp-table-note { margin-top: 16px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 6px; background: var(--tint); color: var(--muted); font-size: 13px; font-weight: 500; }\n.lrp-calculator .lrp-chart-empty { display: grid; place-items: center; min-height: 112px; padding: 16px; border: 1px dashed #cbd5e1; border-radius: 6px; color: var(--muted); text-align: center; font-size: 13px; font-weight: 500; }\n.lrp-calculator .lrp-line-wrap { width: 100%; }\n.lrp-calculator .lrp-line-svg { display: block; width: 100%; height: auto; min-height: 280px; overflow: visible; }\n.lrp-calculator .lrp-line-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 20px; margin-top: 16px; }\n.lrp-calculator .lrp-line-legend .lrp-legend-row { grid-template-columns: 12px auto auto; }\n.lrp-calculator .lrp-safe-stack .lrp-chart-cluster { grid-template-columns: 1fr; gap: 16px; }\n.lrp-calculator .lrp-safe-stack .lrp-line-legend { margin-top: 20px; }\n.lrp-calculator .lrp-safe-stack .lrp-chart-caption { margin-top: 20px; }\n.lrp-calculator .lrp-table-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: flex-start; gap: 12px; margin-bottom: 12px; }\n.lrp-calculator .lrp-table-head h3 { margin: 0; }\n.lrp-calculator .lrp-table-control { width: auto; min-width: 150px; margin-left: auto; }\n.lrp-calculator .lrp-table-overflow { width: 100%; overflow-x: auto; border: 1px solid var(--border); border-radius: 6px; background: var(--surface); }\n.lrp-calculator .lrp-table { width: 100%; min-width: 760px; border-collapse: collapse; font-size: 13px; }\n.lrp-calculator .lrp-table th,\n.lrp-calculator .lrp-table td { padding: 9px 10px; border-bottom: 1px solid var(--border); text-align: right; vertical-align: middle; font-variant-numeric: tabular-nums; white-space: nowrap; }\n.lrp-calculator .lrp-table th { background: #172554; color: #fff; font-weight: 650; }\n.lrp-calculator .lrp-table th:first-child,\n.lrp-calculator .lrp-table td:first-child { text-align: left; }\n.lrp-calculator .lrp-table tbody tr:hover { background: #f8fafc; }\n.lrp-calculator .lrp-table tbody tr:last-child td { border-bottom: 0; font-weight: 650; }\n.lrp-calculator .lrp-safe-table-stack .lrp-table-note { margin-top: 20px; }\n.lrp-calculator .lrp-education { margin-top: 24px; padding: 24px; background: var(--surface); border: 1px solid var(--border); border-radius: 8px; }\n.lrp-calculator .lrp-education h2 { margin-bottom: 12px; font-size: 24px; line-height: 1.25; font-weight: 700; }\n.lrp-calculator .lrp-education h3 { margin: 24px 0 8px; font-size: 18px; line-height: 1.35; font-weight: 650; }\n.lrp-calculator .lrp-education p { margin-bottom: 12px; color: #334155; }\n.lrp-calculator .lrp-education ul { margin: 0 0 12px; padding-left: 22px; color: #334155; }\n.lrp-calculator .lrp-education li { margin-bottom: 6px; }\n.lrp-calculator .lrp-education a { color: var(--primary); text-decoration: underline; text-underline-offset: 2px; }\n.lrp-calculator .lrp-education a:hover { color: #1e3a8a; }\n.lrp-calculator .lrp-sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }\n\n@container (max-width: 899px) {\n  .lrp-calculator .lrp-workspace { grid-template-columns: 1fr; }\n}\n@container (max-width: 639px) {\n  .lrp-calculator .lrp-shell { padding: 16px; }\n  .lrp-calculator .lrp-input-grid,\n  .lrp-calculator .lrp-advanced-grid,\n  .lrp-calculator .lrp-metrics { grid-template-columns: 1fr; }\n  .lrp-calculator .lrp-chart-cluster { grid-template-columns: 1fr; gap: 16px; align-items: center; }\n  .lrp-calculator .lrp-legend { justify-content: center; }\n  .lrp-calculator .lrp-line-svg { min-height: 250px; }\n  .lrp-calculator .lrp-line-legend { margin-top: 12px; }\n  .lrp-calculator .lrp-chart-caption,\n  .lrp-calculator .lrp-table-note { margin-top: 12px; }\n  .lrp-calculator .lrp-table-control { width: 100%; margin-left: 0; }\n  .lrp-calculator .lrp-education { padding: 16px; }\n}\n@container (max-width: 359px) {\n  .lrp-calculator .lrp-shell { padding: 12px; }\n  .lrp-calculator .lrp-card { padding: 12px; }\n  .lrp-calculator .lrp-toolbar { align-items: stretch; }\n  .lrp-calculator .lrp-button { width: 100%; justify-content: center; }\n  .lrp-calculator .lrp-legend-row { grid-template-columns: 12px minmax(80px, auto) auto; gap: 8px; }\n  .lrp-calculator .lrp-legend-percent { grid-column: 2 \/ -1; }\n}\n@media (max-width: 899px) {\n  .lrp-calculator .lrp-workspace { grid-template-columns: 1fr; }\n}\n@media (max-width: 639px) {\n  .lrp-calculator .lrp-shell { padding: 16px; }\n  .lrp-calculator .lrp-input-grid,\n  .lrp-calculator .lrp-advanced-grid,\n  .lrp-calculator .lrp-metrics { grid-template-columns: 1fr; }\n  .lrp-calculator .lrp-chart-cluster { grid-template-columns: 1fr; gap: 16px; }\n  .lrp-calculator .lrp-legend { justify-content: center; }\n  .lrp-calculator .lrp-line-svg { min-height: 250px; }\n  .lrp-calculator .lrp-line-legend { margin-top: 12px; }\n  .lrp-calculator .lrp-chart-caption,\n  .lrp-calculator .lrp-table-note { margin-top: 12px; }\n  .lrp-calculator .lrp-table-control { width: 100%; margin-left: 0; }\n  .lrp-calculator .lrp-education { padding: 16px; }\n}\n@media (max-width: 359px) {\n  .lrp-calculator .lrp-shell { padding: 12px; }\n  .lrp-calculator .lrp-card { padding: 12px; }\n  .lrp-calculator .lrp-toolbar { align-items: stretch; }\n  .lrp-calculator .lrp-button { width: 100%; justify-content: center; }\n  .lrp-calculator .lrp-legend-row { grid-template-columns: 12px minmax(80px, auto) auto; gap: 8px; }\n  .lrp-calculator .lrp-legend-percent { grid-column: 2 \/ -1; }\n}\n\u003c\/style\u003e\n\u003cdiv class=\"lrp-calculator\" data-calculator-root\u003e\n  \u003cdiv class=\"lrp-shell\"\u003e\n    \u003cheader class=\"lrp-header\"\u003e\n      \u003ch2\u003eLoan Repayment Calculator\u003c\/h2\u003e\n      \u003cp class=\"lrp-subtitle\"\u003eEstimate payments, total interest, payoff timing, a full amortization schedule, and the effect of extra monthly principal.\u003c\/p\u003e\n      \u003cdiv class=\"lrp-pills\" aria-label=\"Live loan summary\"\u003e\n        \u003cspan class=\"lrp-pill\"\u003ePayment \u003cstrong data-lrp-pill-payment\u003e—\u003c\/strong\u003e\u003c\/span\u003e\n        \u003cspan class=\"lrp-pill\"\u003eInterest \u003cstrong data-lrp-pill-interest\u003e—\u003c\/strong\u003e\u003c\/span\u003e\n        \u003cspan class=\"lrp-pill\"\u003ePayoff \u003cstrong data-lrp-pill-payoff\u003e—\u003c\/strong\u003e\u003c\/span\u003e\n        \u003cspan class=\"lrp-pill\"\u003eSaved \u003cstrong data-lrp-pill-saved\u003e—\u003c\/strong\u003e\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/header\u003e\n\n    \u003cdiv class=\"lrp-toolbar\"\u003e\n      \u003cbutton class=\"lrp-button lrp-download\" type=\"button\" data-lrp-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 class=\"lrp-button lrp-reset\" type=\"button\" data-lrp-reset\u003eReset\u003c\/button\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"lrp-workspace\"\u003e\n      \u003csection class=\"lrp-card\" aria-labelledby=\"lrp-inputs-heading\"\u003e\n        \u003ch3 id=\"lrp-inputs-heading\"\u003eLoan specifications\u003c\/h3\u003e\n        \u003cdiv class=\"lrp-input-grid\"\u003e\n          \u003cdiv class=\"lrp-field lrp-field-full\"\u003e\n            \u003clabel class=\"lrp-label\" for=\"lrp-payment-type\"\u003ePayment type\u003c\/label\u003e\n            \u003cselect class=\"lrp-control\" id=\"lrp-payment-type\" data-lrp-payment-type\u003e\n              \u003coption value=\"even-total\"\u003eEven total payments\u003c\/option\u003e\n              \u003coption value=\"even-principal\"\u003eEven principal payments\u003c\/option\u003e\n              \u003coption value=\"balloon\"\u003eBalloon payment\u003c\/option\u003e\n            \u003c\/select\u003e\n            \u003cp class=\"lrp-helper\"\u003eChoose a level payment, constant principal, or an earlier balloon payoff.\u003c\/p\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"lrp-field\"\u003e\n            \u003clabel class=\"lrp-label\" for=\"lrp-loan-amount\"\u003eLoan amount\u003c\/label\u003e\n            \u003cinput class=\"lrp-control\" id=\"lrp-loan-amount\" data-lrp-loan-amount data-lrp-kind=\"currency\" inputmode=\"decimal\" autocomplete=\"off\" value=\"10000\"\u003e\n            \u003cp class=\"lrp-helper\" data-lrp-error-for=\"loanAmount\"\u003eOriginal principal before interest and fees.\u003c\/p\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"lrp-field\"\u003e\n            \u003clabel class=\"lrp-label\" for=\"lrp-interest-rate\"\u003eAnnual interest rate\u003c\/label\u003e\n            \u003cinput class=\"lrp-control\" id=\"lrp-interest-rate\" data-lrp-interest-rate data-lrp-kind=\"percent\" inputmode=\"decimal\" autocomplete=\"off\" value=\"7.5\"\u003e\n            \u003cp class=\"lrp-helper\" data-lrp-error-for=\"annualRate\"\u003eNominal annual rate; 0% is supported.\u003c\/p\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"lrp-field\"\u003e\n            \u003clabel class=\"lrp-label\" for=\"lrp-term-value\"\u003eLoan term\u003c\/label\u003e\n            \u003cinput class=\"lrp-control\" id=\"lrp-term-value\" data-lrp-term-value data-lrp-kind=\"number\" inputmode=\"decimal\" autocomplete=\"off\" value=\"10\"\u003e\n            \u003cp class=\"lrp-helper\" data-lrp-error-for=\"termValue\"\u003eEnter the contractual amortization length.\u003c\/p\u003e\n          \u003c\/div\u003e\n\n          \u003cfieldset class=\"lrp-field\"\u003e\n            \u003clegend class=\"lrp-group-label\"\u003eTerm unit\u003c\/legend\u003e\n            \u003cdiv class=\"lrp-segmented\"\u003e\n              \u003cinput type=\"radio\" id=\"lrp-term-years\" name=\"lrp-term-unit\" value=\"years\" data-lrp-term-unit checked\u003e\n              \u003clabel for=\"lrp-term-years\"\u003eYears\u003c\/label\u003e\n              \u003cinput type=\"radio\" id=\"lrp-term-months\" name=\"lrp-term-unit\" value=\"months\" data-lrp-term-unit\u003e\n              \u003clabel for=\"lrp-term-months\"\u003eMonths\u003c\/label\u003e\n            \u003c\/div\u003e\n            \u003cp class=\"lrp-helper\"\u003eChanging units converts the current term.\u003c\/p\u003e\n          \u003c\/fieldset\u003e\n\n          \u003cdiv class=\"lrp-field\"\u003e\n            \u003clabel class=\"lrp-label\" for=\"lrp-compound-frequency\"\u003eCompound frequency\u003c\/label\u003e\n            \u003cselect class=\"lrp-control\" id=\"lrp-compound-frequency\" data-lrp-compound-frequency\u003e\n              \u003coption value=\"1\"\u003eYearly\u003c\/option\u003e\n              \u003coption value=\"2\"\u003eSemi-annually\u003c\/option\u003e\n              \u003coption value=\"4\"\u003eQuarterly\u003c\/option\u003e\n              \u003coption value=\"12\" selected\u003eMonthly\u003c\/option\u003e\n            \u003c\/select\u003e\n            \u003cp class=\"lrp-helper\"\u003eThe annual rate is converted to an equivalent monthly rate.\u003c\/p\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"lrp-field\"\u003e\n            \u003clabel class=\"lrp-label\" for=\"lrp-extra-payment\"\u003eExtra monthly payment\u003c\/label\u003e\n            \u003cinput class=\"lrp-control\" id=\"lrp-extra-payment\" data-lrp-extra-payment data-lrp-kind=\"currency\" inputmode=\"decimal\" autocomplete=\"off\" value=\"0\"\u003e\n            \u003cp class=\"lrp-helper\" data-lrp-error-for=\"extraPayment\"\u003eApplied directly to principal after scheduled interest.\u003c\/p\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"lrp-field lrp-field-full lrp-hidden\" data-lrp-balloon-fields\u003e\n            \u003clabel class=\"lrp-label\" for=\"lrp-balloon-value\"\u003eBalloon payment after\u003c\/label\u003e\n            \u003cinput class=\"lrp-control\" id=\"lrp-balloon-value\" data-lrp-balloon-value data-lrp-kind=\"number\" inputmode=\"decimal\" autocomplete=\"off\" value=\"10\"\u003e\n            \u003cp class=\"lrp-helper\" data-lrp-error-for=\"balloonValue\"\u003eThe remaining balance is due at this point.\u003c\/p\u003e\n          \u003c\/div\u003e\n\n          \u003cfieldset class=\"lrp-field lrp-hidden\" data-lrp-balloon-fields\u003e\n            \u003clegend class=\"lrp-group-label\"\u003eBalloon timing unit\u003c\/legend\u003e\n            \u003cdiv class=\"lrp-segmented\"\u003e\n              \u003cinput type=\"radio\" id=\"lrp-balloon-years\" name=\"lrp-balloon-unit\" value=\"years\" data-lrp-balloon-unit checked\u003e\n              \u003clabel for=\"lrp-balloon-years\"\u003eYears\u003c\/label\u003e\n              \u003cinput type=\"radio\" id=\"lrp-balloon-months\" name=\"lrp-balloon-unit\" value=\"months\" data-lrp-balloon-unit\u003e\n              \u003clabel for=\"lrp-balloon-months\"\u003eMonths\u003c\/label\u003e\n            \u003c\/div\u003e\n            \u003cp class=\"lrp-helper\"\u003eMust not exceed the amortization term.\u003c\/p\u003e\n          \u003c\/fieldset\u003e\n        \u003c\/div\u003e\n\n        \u003cdetails class=\"lrp-advanced\" data-lrp-advanced\u003e\n          \u003csummary\u003eAdvanced schedule options\u003c\/summary\u003e\n          \u003cdiv class=\"lrp-advanced-grid\"\u003e\n            \u003cdiv class=\"lrp-field\"\u003e\n              \u003clabel class=\"lrp-label\" for=\"lrp-start-date\"\u003eFirst payment month\u003c\/label\u003e\n              \u003cinput class=\"lrp-control\" id=\"lrp-start-date\" type=\"month\" data-lrp-start-date\u003e\n              \u003cp class=\"lrp-helper\"\u003eOptional; used for schedule labels and Excel export.\u003c\/p\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"lrp-field\"\u003e\n              \u003clabel class=\"lrp-label\" for=\"lrp-rounding-mode\"\u003eSchedule rounding\u003c\/label\u003e\n              \u003cselect class=\"lrp-control\" id=\"lrp-rounding-mode\" data-lrp-rounding-mode\u003e\n                \u003coption value=\"display\"\u003eFull precision, display cents\u003c\/option\u003e\n                \u003coption value=\"cash\"\u003eRound each payment to cents\u003c\/option\u003e\n              \u003c\/select\u003e\n              \u003cp class=\"lrp-helper\"\u003eCash rounding may create a small final-payment adjustment.\u003c\/p\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/details\u003e\n      \u003c\/section\u003e\n\n      \u003csection class=\"lrp-card lrp-results\" aria-labelledby=\"lrp-results-heading\"\u003e\n        \u003ch3 id=\"lrp-results-heading\"\u003eLive results\u003c\/h3\u003e\n        \u003cdiv class=\"lrp-primary-result\" aria-live=\"polite\" aria-atomic=\"true\"\u003e\n          \u003cp class=\"lrp-primary-label\" data-lrp-primary-label\u003eMonthly payment\u003c\/p\u003e\n          \u003cp class=\"lrp-primary-value\" data-lrp-primary-value\u003e$118.70\u003c\/p\u003e\n          \u003cp class=\"lrp-primary-note\" data-lrp-primary-note\u003eLevel scheduled payment before optional extra principal.\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"lrp-metrics\"\u003e\n          \u003cdiv class=\"lrp-metric\"\u003e\n\u003cspan\u003eTotal repayment\u003c\/span\u003e\u003cstrong data-lrp-total-payment\u003e—\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"lrp-metric\"\u003e\n\u003cspan\u003eTotal interest\u003c\/span\u003e\u003cstrong data-lrp-total-interest\u003e—\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"lrp-metric\"\u003e\n\u003cspan\u003ePayoff duration\u003c\/span\u003e\u003cstrong data-lrp-duration\u003e—\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"lrp-metric\"\u003e\n\u003cspan\u003eInterest saved\u003c\/span\u003e\u003cstrong data-lrp-interest-saved\u003e—\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"lrp-metric\"\u003e\n\u003cspan\u003eTime saved\u003c\/span\u003e\u003cstrong data-lrp-time-saved\u003e—\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"lrp-metric\"\u003e\n\u003cspan\u003eFinal payment\u003c\/span\u003e\u003cstrong data-lrp-final-payment\u003e—\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"lrp-metric\"\u003e\n\u003cspan\u003eEffective monthly rate\u003c\/span\u003e\u003cstrong data-lrp-monthly-rate\u003e—\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"lrp-metric\"\u003e\n\u003cspan\u003eBalloon principal\u003c\/span\u003e\u003cstrong data-lrp-balloon-principal\u003e—\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"lrp-status\" data-lrp-status\u003eResults update as assumptions change.\u003c\/div\u003e\n      \u003c\/section\u003e\n    \u003c\/div\u003e\n\n    \u003csection class=\"lrp-card lrp-section\" data-lrp-breakdown-card aria-labelledby=\"lrp-breakdown-heading\"\u003e\n      \u003cdiv class=\"lrp-section-heading\"\u003e\n        \u003ch3 id=\"lrp-breakdown-heading\"\u003eRepayment breakdown\u003c\/h3\u003e\n        \u003cp data-lrp-breakdown-intro\u003eSee how principal and financing cost contribute to total cash paid.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv data-lrp-breakdown-content\u003e\u003c\/div\u003e\n      \u003cp class=\"lrp-chart-caption\" data-lrp-breakdown-caption\u003eInterest is calculated from the unpaid balance, so faster principal reduction generally lowers borrowing cost.\u003c\/p\u003e\n      \u003cp class=\"lrp-sr-only\" data-lrp-breakdown-summary\u003e\u003c\/p\u003e\n    \u003c\/section\u003e\n\n    \u003csection class=\"lrp-card lrp-section\" data-lrp-line-card aria-labelledby=\"lrp-line-heading\"\u003e\n      \u003cdiv class=\"lrp-section-heading\"\u003e\n        \u003ch3 id=\"lrp-line-heading\"\u003eBalance and cumulative repayment\u003c\/h3\u003e\n        \u003cp data-lrp-line-intro\u003eThe chart tracks the remaining balance, principal repaid, and interest paid over time.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"lrp-line-wrap\" data-lrp-line-content\u003e\u003c\/div\u003e\n      \u003cdiv class=\"lrp-line-legend\" data-lrp-line-legend\u003e\u003c\/div\u003e\n      \u003cp class=\"lrp-chart-caption\" data-lrp-line-caption\u003eAt the end of the schedule, cumulative principal should equal the original loan amount and the balance should be zero.\u003c\/p\u003e\n      \u003cp class=\"lrp-sr-only\" data-lrp-line-summary\u003e\u003c\/p\u003e\n    \u003c\/section\u003e\n\n    \u003csection class=\"lrp-card lrp-section\" data-lrp-table-card aria-labelledby=\"lrp-schedule-heading\"\u003e\n      \u003cdiv class=\"lrp-table-head\"\u003e\n        \u003ch3 id=\"lrp-schedule-heading\"\u003eAmortization schedule\u003c\/h3\u003e\n        \u003cdiv class=\"lrp-field lrp-table-control\"\u003e\n          \u003clabel class=\"lrp-label\" for=\"lrp-schedule-view\"\u003eSchedule view\u003c\/label\u003e\n          \u003cselect class=\"lrp-control\" id=\"lrp-schedule-view\" data-lrp-schedule-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      \u003cdiv class=\"lrp-table-overflow\" data-lrp-table-overflow\u003e\n        \u003ctable class=\"lrp-table\"\u003e\n          \u003cthead\u003e\n            \u003ctr\u003e\n              \u003cth scope=\"col\"\u003ePeriod\u003c\/th\u003e\n              \u003cth scope=\"col\"\u003ePayment\u003c\/th\u003e\n              \u003cth scope=\"col\"\u003ePrincipal\u003c\/th\u003e\n              \u003cth scope=\"col\"\u003eInterest\u003c\/th\u003e\n              \u003cth scope=\"col\"\u003eExtra \/ balloon\u003c\/th\u003e\n              \u003cth scope=\"col\"\u003eEnding balance\u003c\/th\u003e\n            \u003c\/tr\u003e\n          \u003c\/thead\u003e\n          \u003ctbody data-lrp-schedule-body\u003e\u003c\/tbody\u003e\n        \u003c\/table\u003e\n      \u003c\/div\u003e\n      \u003cp class=\"lrp-table-note\" data-lrp-table-note\u003eAnnual rows sum the underlying monthly schedule. Switch to monthly detail for every payment.\u003c\/p\u003e\n    \u003c\/section\u003e\n  \u003c\/div\u003e\n\n  \u003csection class=\"lrp-education\"\u003e\n    \u003ch2\u003eHow to use the loan repayment calculator\u003c\/h2\u003e\n    \u003cp\u003eThis calculator estimates the cash flows of a fixed-rate installment loan. It can model three common structures: a level total payment, an even-principal schedule, and a balloon loan. The results are planning estimates rather than a lender quote. Actual statements may differ because of daily interest, fees, payment timing, escrow, promotional rates, or a lender’s rounding policy.\u003c\/p\u003e\n\n    \u003ch3\u003eWhat each input means\u003c\/h3\u003e\n    \u003cp\u003e\u003cstrong\u003ePayment type\u003c\/strong\u003e controls how principal is returned. Even total payments keep the scheduled installment level while the interest share falls and the principal share rises. Even principal payments return the same scheduled principal each month, so the first payment is highest and later payments decline. A balloon structure calculates regular payments over the full amortization term but requires the remaining balance at the selected balloon date.\u003c\/p\u003e\n    \u003cp\u003e\u003cstrong\u003eLoan amount\u003c\/strong\u003e is the opening principal. Enter the amount actually financed, not the sum of future payments. A higher principal increases the payment, total interest, and ending balloon balance in roughly direct proportion. Upfront charges should only be included when they are financed into the loan.\u003c\/p\u003e\n    \u003cp\u003e\u003cstrong\u003eAnnual interest rate\u003c\/strong\u003e is the nominal stated rate. Enter 7.5 for 7.5%, not 0.075. A higher rate raises the interest component and usually increases the scheduled payment. The calculator supports a zero rate, which divides principal evenly across the term. For consumer borrowing, compare the stated rate with the annual percentage rate and disclosures supplied by the lender. The \u003ca href=\"https:\/\/www.consumerfinance.gov\/ask-cfpb\/what-is-the-difference-between-a-mortgage-interest-rate-and-an-apr-en-135\/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eConsumer Financial Protection Bureau explains the difference between interest rate and APR\u003c\/a\u003e.\u003c\/p\u003e\n    \u003cp\u003e\u003cstrong\u003eLoan term\u003c\/strong\u003e is the amortization horizon. A longer term usually lowers the required installment but keeps principal outstanding longer, increasing total interest. Switching between years and months converts the current value rather than merely changing the label. Fractions of a year are converted to whole monthly payment periods.\u003c\/p\u003e\n    \u003cp\u003e\u003cstrong\u003eCompound frequency\u003c\/strong\u003e determines how the nominal annual rate becomes an equivalent monthly rate. Monthly compounding uses the annual rate divided by 12. For yearly, semiannual, or quarterly compounding, the calculator converts the stated periodic rate into an equivalent monthly rate. Confirm this convention against the note or agreement because lenders can use different accrual methods.\u003c\/p\u003e\n    \u003cp\u003e\u003cstrong\u003eExtra monthly payment\u003c\/strong\u003e is additional principal paid with each regular installment. It is optional and must be nonnegative. On a normal amortizing loan, extra principal can shorten the payoff period and reduce interest. On a balloon loan, it generally reduces the balloon amount while the contractual balloon date remains unchanged. Verify that the loan has no prepayment restriction and that extra funds are applied to principal. The CFPB provides general guidance on \u003ca href=\"https:\/\/www.consumerfinance.gov\/ask-cfpb\/can-i-pay-off-my-loan-early-en-843\/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003epaying a loan early\u003c\/a\u003e.\u003c\/p\u003e\n    \u003cp\u003e\u003cstrong\u003eBalloon payment after\u003c\/strong\u003e appears only for balloon loans. It must be positive and no later than the amortization term. A shorter balloon interval produces a larger final lump sum because less principal has been repaid through regular installments.\u003c\/p\u003e\n    \u003cp\u003e\u003cstrong\u003eFirst payment month\u003c\/strong\u003e is optional. It gives calendar labels to monthly schedule rows and is exported to Excel. \u003cstrong\u003eSchedule rounding\u003c\/strong\u003e keeps full mathematical precision by default and rounds only the displayed values. Cash rounding instead rounds each payment, interest amount, and principal amount to cents, which may slightly adjust the final payment.\u003c\/p\u003e\n\n    \u003ch3\u003eHow to read the results\u003c\/h3\u003e\n    \u003cp\u003eThe primary result is the scheduled payment for an even-total or balloon loan and the first payment for an even-principal loan. When extra principal is entered, the note distinguishes the required scheduled amount from the planned cash payment. Total repayment is the sum of all scheduled, extra, and balloon cash flows. Total interest is total repayment minus principal; it does not include separately charged fees.\u003c\/p\u003e\n    \u003cp\u003ePayoff duration counts the generated monthly payments. Time saved compares that duration with the same loan at zero extra payment. Interest saved makes the same comparison for total interest. A zero value means the extra payment does not change that measure, as can happen when there is no extra payment or when a balloon date fixes the schedule length. Final payment shows the last cash flow, which can be smaller than a regular payment after accelerated payoff or much larger for a balloon loan.\u003c\/p\u003e\n    \u003cp\u003eThe effective monthly rate is the rate applied to the unpaid balance in each row. Balloon principal is the outstanding principal included in the final balloon payment; it is zero for fully amortizing schedules.\u003c\/p\u003e\n\n    \u003ch3\u003eUnderstanding the charts and schedule\u003c\/h3\u003e\n    \u003cp\u003eThe repayment breakdown compares original principal with total interest. The segments and legend use the exact same model values, so their percentages sum to 100% of total repayment. A larger interest share indicates that financing cost is a greater portion of total cash paid.\u003c\/p\u003e\n    \u003cp\u003eThe line chart shows remaining balance, cumulative principal repaid, and cumulative interest. The balance should trend toward zero. Cumulative principal should end at the original loan amount. Cumulative interest rises fastest when the balance is high, which is why extra principal usually has more impact when paid earlier.\u003c\/p\u003e\n    \u003cp\u003eThe annual table aggregates monthly rows; the monthly view shows each calculation. Payment equals principal plus interest. The extra or balloon column isolates principal paid beyond the normal scheduled principal. Ending balance cannot fall below zero. The final row should show a zero balance, except that invalid or incomplete inputs intentionally produce no schedule.\u003c\/p\u003e\n\n    \u003ch3\u003eFormula, tradeoffs, and common mistakes\u003c\/h3\u003e\n    \u003cp\u003eFor a level-payment loan, the calculator uses the standard annuity formula: payment equals principal multiplied by the monthly rate and the growth factor, divided by the growth factor minus one. At a zero rate, payment is principal divide\nd by the number of months. Each month’s interest equals the opening balance multiplied by the monthly rate; principal is the payment minus interest.\u003c\/p\u003e\n    \u003cp\u003eLower payments are not automatically cheaper. Extending the term often lowers monthly pressure while raising lifetime interest. Extra payments can improve payoff speed but reduce liquidity, and a balloon loan can create refinancing risk if the lump sum is not available. Common mistakes include entering APR as the note rate, omitting financed fees from principal, assuming every lender compounds monthly, or treating an estimated schedule as a contract. For business borrowing, compare structures and eligibility through the \u003ca href=\"https:\/\/www.sba.gov\/funding-programs\/loans\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eU.S. Small Business Administration loan resources\u003c\/a\u003e. Always reconcile the model with the lender’s official disclosure and payment instructions.\u003c\/p\u003e\n  \u003c\/section\u003e\n\u003c\/div\u003e","brand":"FinancialModelsLab","offers":[{"title":"Default Title","offer_id":49909488058611,"sku":"loan-repayment","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/loan-repayment.webp?v=1783935542","url":"https:\/\/financialmodelslab.com\/products\/loan-repayment","provider":"Financial Models Lab","version":"1.0","type":"link"}