{"product_id":"loan-payment","title":"Loan Payment Calculator","description":"\u003cstyle\u003e\n.lp-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  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  padding: 24px;\n  background: var(--tint);\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  container-type: inline-size;\n}\n.lp-calculator,\n.lp-calculator *,\n.lp-calculator *::before,\n.lp-calculator *::after {\n  box-sizing: border-box;\n}\n.lp-calculator * {\n  min-width: 0;\n}\n.lp-calculator h2,\n.lp-calculator h3,\n.lp-calculator p {\n  margin-top: 0;\n}\n.lp-calculator h2 {\n  margin-bottom: 8px;\n  font-size: 24px;\n  line-height: 1.25;\n  font-weight: 700;\n}\n.lp-calculator h3 {\n  margin-bottom: 12px;\n  font-size: 18px;\n  line-height: 1.35;\n  font-weight: 650;\n}\n.lp-calculator a {\n  color: var(--primary);\n  text-decoration-thickness: 1px;\n  text-underline-offset: 2px;\n}\n.lp-calculator a:hover {\n  text-decoration-thickness: 2px;\n}\n.lp-header {\n  margin-bottom: 16px;\n}\n.lp-subtitle {\n  max-width: 760px;\n  margin-bottom: 16px;\n  color: var(--muted);\n}\n.lp-pills {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n}\n.lp-pill {\n  display: inline-flex;\n  align-items: center;\n  gap: 6px;\n  min-height: 32px;\n  padding: 6px 10px;\n  border: 1px solid var(--border);\n  border-radius: 999px;\n  background: var(--surface);\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n  font-variant-numeric: tabular-nums;\n}\n.lp-pill strong {\n  color: var(--ink);\n  font-weight: 700;\n}\n.lp-toolbar {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n  margin-bottom: 16px;\n}\n.lp-button {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: 10px;\n  min-height: 44px;\n  padding: 12px 18px;\n  border: 1px solid transparent;\n  border-radius: 6px;\n  font: inherit;\n  font-size: 14px;\n  font-weight: 700;\n  white-space: nowrap;\n  cursor: pointer;\n  transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease;\n}\n.lp-button:hover {\n  box-shadow: 0 2px 5px rgba(15,23,42,.12);\n}\n.lp-button:active {\n  transform: translateY(1px);\n}\n.lp-button:focus-visible,\n.lp-calculator input:focus-visible,\n.lp-calculator select:focus-visible,\n.lp-calculator summary:focus-visible {\n  outline: 3px solid rgba(29,78,216,.35);\n  outline-offset: 2px;\n}\n.lp-download {\n  background: var(--accent);\n  color: #ffffff;\n}\n.lp-download:hover {\n  background: var(--accent-hover);\n}\n.lp-reset {\n  border-color: #cbd5e1;\n  background: var(--surface);\n  color: var(--ink);\n}\n.lp-workspace {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n  gap: 16px;\n  align-items: start;\n}\n.lp-card,\n.lp-education {\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}\n.lp-card {\n  padding: 20px;\n}\n.lp-input-grid {\n  display: grid;\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  gap: 16px;\n}\n.lp-field {\n  display: flex;\n  flex-direction: column;\n  gap: 6px;\n}\n.lp-field label,\n.lp-fieldset legend {\n  color: var(--ink);\n  font-size: 14px;\n  font-weight: 600;\n}\n.lp-span-all,\n.lp-fieldset {\n  grid-column: 1 \/ -1;\n  margin: 0;\n  padding: 0;\n  border: 0;\n}\n.lp-control,\n.lp-select {\n  width: 100%;\n  min-height: 44px;\n  padding: 10px 12px;\n  border: 1px solid #cbd5e1;\n  border-radius: 6px;\n  background: var(--surface);\n  color: var(--ink);\n  font: inherit;\n  font-size: 15px;\n  font-variant-numeric: tabular-nums;\n}\n.lp-control:disabled {\n  border-color: var(--border);\n  background: #f1f5f9;\n  color: #334155;\n  cursor: not-allowed;\n  opacity: 1;\n}\n.lp-control:hover,\n.lp-select:hover {\n  border-color: #94a3b8;\n}\n.lp-helper,\n.lp-error {\n  min-height: 20px;\n  margin: 0;\n  font-size: 13px;\n  font-weight: 500;\n}\n.lp-helper {\n  color: var(--muted);\n}\n.lp-error {\n  color: #b91c1c;\n}\n.lp-segmented {\n  display: inline-grid;\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  gap: 4px;\n  width: 100%;\n  padding: 4px;\n  border: 1px solid var(--border);\n  border-radius: 6px;\n  background: var(--tint);\n}\n.lp-segmented input {\n  position: absolute;\n  opacity: 0;\n  pointer-events: none;\n}\n.lp-segmented label {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  min-height: 36px;\n  padding: 6px 10px;\n  border-radius: 4px;\n  color: var(--muted);\n  font-size: 14px;\n  font-weight: 650;\n  cursor: pointer;\n}\n.lp-segmented input:checked + label {\n  background: var(--surface);\n  color: var(--primary);\n  box-shadow: 0 1px 2px rgba(15,23,42,.08);\n}\n.lp-segmented input:focus-visible + label {\n  outline: 3px solid rgba(29,78,216,.35);\n  outline-offset: 1px;\n}\n.lp-results {\n  display: grid;\n  gap: 16px;\n}\n.lp-primary-result {\n  padding: 16px;\n  border: 1px solid #bfdbfe;\n  border-radius: 8px;\n  background: #eff6ff;\n}\n.lp-result-label {\n  margin-bottom: 4px;\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 600;\n}\n.lp-result-value {\n  margin: 0;\n  color: var(--ink);\n  font-size: 30px;\n  line-height: 1.15;\n  font-weight: 700;\n  font-variant-numeric: tabular-nums;\n  overflow-wrap: anywhere;\n}\n.lp-result-context {\n  margin: 6px 0 0;\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.lp-result-grid {\n  display: grid;\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  gap: 12px;\n}\n.lp-metric {\n  padding: 14px;\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  background: var(--surface);\n}\n.lp-metric span {\n  display: block;\n  margin-bottom: 4px;\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 600;\n}\n.lp-metric strong {\n  display: block;\n  font-size: 20px;\n  line-height: 1.25;\n  font-weight: 700;\n  font-variant-numeric: tabular-nums;\n  overflow-wrap: anywhere;\n}\n.lp-section {\n  margin-top: 16px;\n}\n.lp-breakdown-layout {\n  display: grid;\n  grid-template-columns: minmax(220px, 320px) minmax(240px, max-content);\n  justify-content: center;\n  align-items: center;\n  gap: 24px;\n}\n.lp-chart-visual {\n  display: grid;\n  place-items: center;\n  width: 100%;\n}\n.lp-donut-svg {\n  width: min(100%, 320px);\n  height: auto;\n  overflow: visible;\n}\n.lp-donut-total {\n  fill: var(--ink);\n  font-size: 22px;\n  font-weight: 700;\n  text-anchor: middle;\n  dominant-baseline: middle;\n  font-variant-numeric: tabular-nums;\n}\n.lp-donut-caption {\n  fill: var(--muted);\n  font-size: 13px;\n  font-weight: 600;\n  text-anchor: middle;\n}\n.lp-legend {\n  display: grid;\n  gap: 10px;\n  align-content: center;\n}\n.lp-legend-row {\n  display: grid;\n  grid-template-columns: 12px minmax(90px, max-content) max-content max-content;\n  align-items: center;\n  justify-content: start;\n  gap: 8px 12px;\n  color: var(--ink);\n  font-size: 13px;\n  font-weight: 500;\n  font-variant-numeric: tabular-nums;\n}\n.lp-swatch {\n  width: 12px;\n  height: 12px;\n  border-radius: 3px;\n}\n.lp-legend-value,\n.lp-legend-percent {\n  font-weight: 700;\n}\n.lp-legend-percent {\n  color: var(--muted);\n}\n.lp-empty-state {\n  padding: 16px;\n  border: 1px dashed #cbd5e1;\n  border-radius: 6px;\n  background: var(--tint);\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n  text-align: center;\n}\n.lp-chart-card {\n  display: grid;\n  gap: 16px;\n}\n.lp-chart-header {\n  display: grid;\n  gap: 4px;\n}\n.lp-chart-header p {\n  margin-bottom: 0;\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.lp-line-svg {\n  display: block;\n  width: 100%;\n  height: auto;\n}\n.lp-chart-legend {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: center;\n  gap: 12px 20px;\n  margin-top: 16px;\n}\n.lp-chart-legend-item {\n  display: inline-flex;\n  align-items: center;\n  gap: 8px;\n  color: var(--ink);\n  font-size: 13px;\n  font-weight: 600;\n}\n.lp-chart-caption,\n.lp-table-note {\n  padding: 10px 12px;\n  border: 1px solid var(--border);\n  border-radius: 6px;\n  background: var(--tint);\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.lp-chart-caption {\n  margin-top: 16px;\n}\n.lp-chart-summary {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap;\n  border: 0;\n}\n.lp-safe-stack .lp-breakdown-layout {\n  grid-template-columns: 1fr;\n  gap: 16px;\n}\n.lp-safe-stack .lp-legend {\n  justify-self: center;\n}\n.lp-safe-stack .lp-chart-legend {\n  margin-top: 20px;\n}\n.lp-safe-stack .lp-chart-caption {\n  margin-top: 20px;\n}\n.lp-table-controls {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n  margin-bottom: 12px;\n}\n.lp-table-toggle {\n  min-height: 36px;\n  padding: 7px 12px;\n  border: 1px solid #cbd5e1;\n  border-radius: 6px;\n  background: var(--surface);\n  color: var(--ink);\n  font: inherit;\n  font-size: 13px;\n  font-weight: 700;\n  cursor: pointer;\n}\n.lp-table-toggle[aria-pressed=\"true\"] {\n  border-color: var(--primary);\n  background: #eff6ff;\n  color: var(--primary);\n}\n.lp-table-wrap {\n  width: 100%;\n  overflow-x: auto;\n  border: 1px solid var(--border);\n  border-radius: 6px;\n  background: var(--surface);\n}\n.lp-table {\n  width: 100%;\n  min-width: 760px;\n  border-collapse: collapse;\n  font-size: 13px;\n  font-variant-numeric: tabular-nums;\n}\n.lp-table th,\n.lp-table td {\n  padding: 10px 12px;\n  border-bottom: 1px solid var(--border);\n  text-align: right;\n  white-space: nowrap;\n}\n.lp-table th:first-child,\n.lp-table td:first-child {\n  text-align: left;\n}\n.lp-table th {\n  background: var(--ink);\n  color: #ffffff;\n  font-weight: 700;\n}\n.lp-table tbody tr:hover {\n  background: var(--tint);\n}\n.lp-table tbody tr:last-child td {\n  border-bottom: 0;\n}\n.lp-table-note {\n  margin-top: 16px;\n}\n.lp-safe-table-stack .lp-table-note {\n  margin-top: 20px;\n}\n.lp-education {\n  margin-top: 16px;\n  padding: 24px;\n}\n.lp-education h2 {\n  margin-top: 28px;\n  font-size: 20px;\n}\n.lp-education h2:first-child {\n  margin-top: 0;\n}\n.lp-education h3 {\n  margin-top: 20px;\n  font-size: 17px;\n}\n.lp-education p,\n.lp-education li {\n  color: #334155;\n}\n.lp-education ul {\n  padding-left: 20px;\n}\n.lp-formula {\n  padding: 12px;\n  border-left: 4px solid var(--primary);\n  border-radius: 0 6px 6px 0;\n  background: #eff6ff;\n  color: var(--ink);\n  font-variant-numeric: tabular-nums;\n  overflow-wrap: anywhere;\n}\n@container (max-width: 899px) {\n  .lp-workspace {\n    grid-template-columns: 1fr;\n  }\n}\n@container (max-width: 639px) {\n  .lp-input-grid,\n  .lp-result-grid,\n  .lp-breakdown-layout {\n    grid-template-columns: 1fr;\n  }\n  .lp-breakdown-layout {\n    gap: 16px;\n  }\n  .lp-legend {\n    justify-self: center;\n  }\n  .lp-legend-row {\n    grid-template-columns: 12px minmax(80px, max-content) max-content;\n  }\n  .lp-legend-percent {\n    grid-column: 2 \/ -1;\n  }\n  .lp-card,\n  .lp-education {\n    padding: 16px;\n  }\n}\n@container (max-width: 380px) {\n  .lp-button {\n    flex: 1 1 100%;\n  }\n  .lp-toolbar {\n    display: grid;\n    grid-template-columns: 1fr;\n  }\n  .lp-card,\n  .lp-education {\n    padding: 14px;\n  }\n  .lp-result-value {\n    font-size: 27px;\n  }\n}\n\n@media (max-width: 899px) {\n  .lp-calculator {\n    padding: 16px;\n  }\n  .lp-workspace {\n    grid-template-columns: 1fr;\n  }\n}\n@media (max-width: 639px) {\n  .lp-calculator {\n    padding: 12px;\n  }\n  .lp-input-grid,\n  .lp-result-grid,\n  .lp-breakdown-layout {\n    grid-template-columns: 1fr;\n  }\n  .lp-breakdown-layout {\n    gap: 16px;\n  }\n  .lp-legend {\n    justify-self: center;\n  }\n  .lp-legend-row {\n    grid-template-columns: 12px minmax(80px, max-content) max-content;\n  }\n  .lp-legend-percent {\n    grid-column: 2 \/ -1;\n  }\n  .lp-card,\n  .lp-education {\n    padding: 16px;\n  }\n}\n@media (max-width: 380px) {\n  .lp-calculator {\n    padding: 8px;\n  }\n  .lp-button {\n    flex: 1 1 100%;\n  }\n  .lp-toolbar {\n    display: grid;\n    grid-template-columns: 1fr;\n  }\n  .lp-card,\n  .lp-education {\n    padding: 14px;\n  }\n  .lp-result-value {\n    font-size: 27px;\n  }\n}\n\u003c\/style\u003e\n\u003cdiv class=\"lp-calculator\" data-calculator-root\u003e\n  \u003cdiv class=\"lp-header\"\u003e\n    \u003ch2\u003eLoan Payment Calculator\u003c\/h2\u003e\n    \u003cp class=\"lp-subtitle\"\u003eEstimate an equal periodic loan payment, total repayment, total interest, and a complete amortization schedule for common payment frequencies.\u003c\/p\u003e\n    \u003cdiv class=\"lp-pills\" aria-label=\"Live loan summary\"\u003e\n      \u003cspan class=\"lp-pill\"\u003ePayment \u003cstrong data-lp-pill-payment\u003e$193.33\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"lp-pill\"\u003eInstallments \u003cstrong data-lp-pill-count\u003e60\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"lp-pill\"\u003eTotal interest \u003cstrong data-lp-pill-interest\u003e$1,599.68\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"lp-pill\"\u003ePeriodic rate \u003cstrong data-lp-pill-rate\u003e0.50%\u003c\/strong\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"lp-toolbar\"\u003e\n    \u003cbutton class=\"lp-button lp-download\" type=\"button\" data-lp-download aria-label=\"Download current loan calculation as Excel\"\u003e\n      \u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"\u003e\u003cpath fill=\"currentColor\" d=\"M11 4h2v9.17l3.59-3.58L18 11l-6 6-6-6 1.41-1.41L11 13.17V4ZM5 19h14v2H5v-2Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cspan\u003eDownload Excel\u003c\/span\u003e\n    \u003c\/button\u003e\n    \u003cbutton class=\"lp-button lp-reset\" type=\"button\" data-lp-reset\u003eReset\u003c\/button\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"lp-workspace\"\u003e\n    \u003csection class=\"lp-card\" aria-labelledby=\"lp-inputs-title\"\u003e\n      \u003ch3 id=\"lp-inputs-title\"\u003eLoan inputs\u003c\/h3\u003e\n      \u003cdiv class=\"lp-input-grid\"\u003e\n        \u003cfieldset class=\"lp-fieldset\"\u003e\n          \u003clegend\u003eCalculate\u003c\/legend\u003e\n          \u003cdiv class=\"lp-segmented\"\u003e\n            \u003cinput id=\"lp-solve-payment\" type=\"radio\" name=\"lp-solve-target\" value=\"payment\" checked data-lp-solve-target\u003e\n            \u003clabel for=\"lp-solve-payment\"\u003ePeriodic payment\u003c\/label\u003e\n            \u003cinput id=\"lp-solve-amount\" type=\"radio\" name=\"lp-solve-target\" value=\"amount\" data-lp-solve-target\u003e\n            \u003clabel for=\"lp-solve-amount\"\u003eLoan amount\u003c\/label\u003e\n          \u003c\/div\u003e\n        \u003c\/fieldset\u003e\n        \u003cdiv class=\"lp-field\"\u003e\n          \u003clabel for=\"lp-loan-amount\"\u003eLoan amount\u003c\/label\u003e\n          \u003cinput class=\"lp-control\" id=\"lp-loan-amount\" data-lp-input=\"amount\" type=\"text\" inputmode=\"decimal\" value=\"$10,000.00\" autocomplete=\"off\"\u003e\n          \u003cp class=\"lp-helper\"\u003ePrincipal borrowed before interest.\u003c\/p\u003e\n          \u003cp class=\"lp-error\" data-lp-error=\"amount\" aria-live=\"polite\"\u003e\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"lp-field\"\u003e\n          \u003clabel for=\"lp-periodic-payment-input\"\u003ePeriodic loan payment\u003c\/label\u003e\n          \u003cinput class=\"lp-control\" id=\"lp-periodic-payment-input\" data-lp-input=\"paymentInput\" type=\"text\" inputmode=\"decimal\" value=\"$193.33\" autocomplete=\"off\" disabled\u003e\n          \u003cp class=\"lp-helper\"\u003eEnter this value when calculating the affordable loan amount.\u003c\/p\u003e\n          \u003cp class=\"lp-error\" data-lp-error=\"paymentInput\" aria-live=\"polite\"\u003e\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"lp-field\"\u003e\n          \u003clabel for=\"lp-annual-rate\"\u003eAnnual rate\u003c\/label\u003e\n          \u003cinput class=\"lp-control\" id=\"lp-annual-rate\" data-lp-input=\"rate\" type=\"text\" inputmode=\"decimal\" value=\"6.00%\" autocomplete=\"off\"\u003e\n          \u003cp class=\"lp-helper\"\u003eNominal annual rate, not an APR with fees.\u003c\/p\u003e\n          \u003cp class=\"lp-error\" data-lp-error=\"rate\" aria-live=\"polite\"\u003e\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"lp-field\"\u003e\n          \u003clabel for=\"lp-loan-term\"\u003eLoan term\u003c\/label\u003e\n          \u003cinput class=\"lp-control\" id=\"lp-loan-term\" data-lp-input=\"term\" type=\"text\" inputmode=\"decimal\" value=\"5\" autocomplete=\"off\"\u003e\n          \u003cp class=\"lp-helper\"\u003eLength of time until the scheduled payoff.\u003c\/p\u003e\n          \u003cp class=\"lp-error\" data-lp-error=\"term\" aria-live=\"polite\"\u003e\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cfieldset class=\"lp-fieldset\"\u003e\n          \u003clegend\u003eLoan term unit\u003c\/legend\u003e\n          \u003cdiv class=\"lp-segmented\"\u003e\n            \u003cinput id=\"lp-term-years\" type=\"radio\" name=\"lp-term-unit\" value=\"years\" checked data-lp-term-unit\u003e\n            \u003clabel for=\"lp-term-years\"\u003eYears\u003c\/label\u003e\n            \u003cinput id=\"lp-term-months\" type=\"radio\" name=\"lp-term-unit\" value=\"months\" data-lp-term-unit\u003e\n            \u003clabel for=\"lp-term-months\"\u003eMonths\u003c\/label\u003e\n          \u003c\/div\u003e\n        \u003c\/fieldset\u003e\n        \u003cdiv class=\"lp-field lp-span-all\"\u003e\n          \u003clabel for=\"lp-frequency\"\u003ePayment frequency\u003c\/label\u003e\n          \u003cselect class=\"lp-select\" id=\"lp-frequency\" data-lp-input=\"frequency\"\u003e\n            \u003coption value=\"1\"\u003eYearly\u003c\/option\u003e\n            \u003coption value=\"2\"\u003eBi-annually\u003c\/option\u003e\n            \u003coption value=\"4\"\u003eQuarterly\u003c\/option\u003e\n            \u003coption value=\"12\" selected\u003eMonthly\u003c\/option\u003e\n            \u003coption value=\"52\"\u003eWeekly\u003c\/option\u003e\n            \u003coption value=\"365\"\u003eDaily\u003c\/option\u003e\n          \u003c\/select\u003e\n          \u003cp class=\"lp-helper\"\u003eThe annual rate is divided by this number of payments per year.\u003c\/p\u003e\n          \u003cp class=\"lp-error\" data-lp-error=\"frequency\" aria-live=\"polite\"\u003e\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/section\u003e\n    \u003csection class=\"lp-card lp-results\" aria-labelledby=\"lp-results-title\"\u003e\n      \u003ch3 id=\"lp-results-title\"\u003eLive results\u003c\/h3\u003e\n      \u003cdiv class=\"lp-primary-result\"\u003e\n        \u003cp class=\"lp-result-label\" data-lp-primary-label\u003ePeriodic loan payment\u003c\/p\u003e\n        \u003cp class=\"lp-result-value\" data-lp-primary\u003e$193.33\u003c\/p\u003e\n        \u003cp class=\"lp-result-context\" data-lp-primary-context\u003ePaid monthly for 60 installments\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"lp-result-grid\"\u003e\n        \u003cdiv class=\"lp-metric\"\u003e\n\u003cspan\u003eLoan payment total\u003c\/span\u003e\u003cstrong data-lp-total\u003e$11,599.68\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"lp-metric\"\u003e\n\u003cspan\u003eTotal interest\u003c\/span\u003e\u003cstrong data-lp-interest\u003e$1,599.68\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"lp-metric\"\u003e\n\u003cspan\u003eNumber of installments\u003c\/span\u003e\u003cstrong data-lp-count\u003e60\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"lp-metric\"\u003e\n\u003cspan\u003ePeriodic interest rate\u003c\/span\u003e\u003cstrong data-lp-periodic-rate\u003e0.50%\u003c\/strong\u003e\n\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"lp-chart-caption\" data-lp-aria-live aria-live=\"polite\"\u003eA $10,000.00 loan at 6.00% paid monthly over 5 years requires about $193.33 per payment.\u003c\/div\u003e\n    \u003c\/section\u003e\n  \u003c\/div\u003e\n  \u003csection class=\"lp-card lp-section\" data-lp-chart-card=\"breakdown\" aria-labelledby=\"lp-breakdown-title\"\u003e\n    \u003cdiv class=\"lp-chart-header\"\u003e\n      \u003ch3 id=\"lp-breakdown-title\"\u003ePrincipal and interest breakdown\u003c\/h3\u003e\n      \u003cp data-lp-breakdown-intro\u003eYour total repayment consists of the original principal plus interest charged over the full term.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"lp-breakdown-layout\" data-lp-breakdown-layout\u003e\n      \u003cdiv class=\"lp-chart-visual\" data-lp-donut-host\u003e\u003c\/div\u003e\n      \u003cdiv class=\"lp-legend\" data-lp-donut-legend\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"lp-chart-summary\" data-lp-donut-summary\u003e\u003c\/div\u003e\n    \u003cdiv class=\"lp-chart-caption\" data-lp-donut-caption\u003eInterest represents 13.79% of total scheduled payments.\u003c\/div\u003e\n  \u003c\/section\u003e\n  \u003csection class=\"lp-card lp-section lp-chart-card\" data-lp-chart-card=\"timeline\" aria-labelledby=\"lp-chart-title\"\u003e\n    \u003cdiv class=\"lp-chart-header\"\u003e\n      \u003ch3 id=\"lp-chart-title\"\u003eAmortization over time\u003c\/h3\u003e\n      \u003cp data-lp-line-intro\u003eThe outstanding balance falls as cumulative interest rises through the repayment schedule.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"lp-chart-visual\" data-lp-line-host\u003e\u003c\/div\u003e\n    \u003cdiv class=\"lp-chart-legend\" data-lp-line-legend\u003e\u003c\/div\u003e\n    \u003cdiv class=\"lp-chart-summary\" data-lp-line-summary\u003e\u003c\/div\u003e\n    \u003cdiv class=\"lp-chart-caption\" data-lp-line-caption\u003eBy the midpoint of the schedule, the remaining balance is approximately $5,372.48.\u003c\/div\u003e\n  \u003c\/section\u003e\n  \u003csection class=\"lp-card lp-section\" data-lp-table-card aria-labelledby=\"lp-table-title\"\u003e\n    \u003ch3 id=\"lp-table-title\"\u003eAmortization schedule\u003c\/h3\u003e\n    \u003cdiv class=\"lp-table-controls\" aria-label=\"Schedule detail level\"\u003e\n      \u003cbutton class=\"lp-table-toggle\" type=\"button\" data-lp-table-mode=\"detail\" aria-pressed=\"true\"\u003eEvery payment\u003c\/button\u003e\n      \u003cbutton class=\"lp-table-toggle\" type=\"button\" data-lp-table-mode=\"annual\" aria-pressed=\"false\"\u003eAnnual summary\u003c\/button\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"lp-table-wrap\" data-lp-table-wrap\u003e\n      \u003ctable class=\"lp-table\"\u003e\n        \u003cthead\u003e\u003ctr\u003e\n\u003cth scope=\"col\"\u003ePayment\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eOpening balance\u003c\/th\u003e\n\u003cth scope=\"col\"\u003ePayment\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eInterest\u003c\/th\u003e\n\u003cth scope=\"col\"\u003ePrincipal\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eEnding balance\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n        \u003ctbody data-lp-table-body\u003e\u003c\/tbody\u003e\n      \u003c\/table\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"lp-table-note\" data-lp-table-note\u003eThe final scheduled payment is adjusted for rounding so the ending balance reaches exactly $0.00.\u003c\/div\u003e\n  \u003c\/section\u003e\n  \u003csection class=\"lp-education\"\u003e\n    \u003ch2\u003eWhat this loan payment calculator estimates\u003c\/h2\u003e\n    \u003cp\u003eThis calculator models a standard fully amortizing loan with equal scheduled payments. It estimates the periodic payment, the total of all scheduled payments, total interest, the periodic interest rate, and the number of installments. It also builds a payment-by-payment amortization schedule showing how each installment is divided between interest and principal. The model assumes interest is calculated on the unpaid balance at the beginning of each payment period and that payments occur at the end of each period.\u003c\/p\u003e\n    \u003cp\u003eThe calculation is useful for comparing repayment structures before considering lender fees, insurance, taxes, late charges, promotional rates, balloon payments, or other contract-specific features. For consumer borrowing guidance, the \u003ca href=\"https:\/\/www.consumerfinance.gov\/consumer-tools\/auto-loans\/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eConsumer Financial Protection Bureau\u003c\/a\u003e explains how loan terms, rates, and add-on costs affect borrowing decisions.\u003c\/p\u003e\n    \u003ch2\u003eHow to enter each loan input\u003c\/h2\u003e\n    \u003ch3\u003eCalculation target and periodic payment\u003c\/h3\u003e\n    \u003cp\u003eChoose whether the calculator should solve for the periodic payment or the affordable loan amount. Periodic payment is the default target: enter the principal and the calculator solves for the equal installment. When loan amount is selected, the loan amount field becomes a calculated result and the periodic payment field becomes editable. Enter the amount you can pay each period, together with the rate, term, and frequency. A higher affordable payment supports a larger principal; a higher rate supports a smaller principal for the same payment. This reverse calculation is optional and uses the same amortization assumptions as the standard payment calculation.\u003c\/p\u003e\n    \u003ch3\u003eLoan amount\u003c\/h3\u003e\n    \u003cp\u003eEnter the principal you expect to borrow in U.S. dollars. This is a required input. A higher principal increases the periodic payment and total interest because more money remains outstanding throughout the schedule. Use the amount financed rather than the purchase price when a down payment reduces the balance. Do not include interest that has not yet accrued. If fees are rolled into the loan, include those financed fees in the principal; if they are paid upfront, leave them out.\u003c\/p\u003e\n    \u003ch3\u003eAnnual rate\u003c\/h3\u003e\n    \u003cp\u003eEnter the nominal annual interest rate as a percentage. The calculator divides this rate by the selected number of payments per year. A higher rate raises each payment and shifts more of the early schedule toward interest. A zero rate is allowed and simply divides the principal evenly across all installments. This field does not automatically incorporate origination fees or other finance charges, so it may differ from the disclosed annual percentage rate. The \u003ca href=\"https:\/\/www.federalreserve.gov\/consumerscommunities.htm\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eFederal Reserve consumer resources\u003c\/a\u003e provide broader background on credit and borrowing.\u003c\/p\u003e\n    \u003ch3\u003eLoan term and unit\u003c\/h3\u003e\n    \u003cp\u003eEnter the repayment horizon, then select years or months. This is required and must be greater than zero. Switching the unit converts the current value rather than merely changing its label: five years becomes sixty months, and sixty months becomes five years. A longer term normally lowers the periodic payment but raises total interest because the balance remains outstanding for more periods. A shorter term usually does the opposite. Very short terms combined with high rates can produce a large payment, so compare the result with available cash flow.\u003c\/p\u003e\n    \u003ch3\u003ePayment frequency\u003c\/h3\u003e\n    \u003cp\u003eSelect yearly, twice yearly, quarterly, monthly, weekly, or daily payments. The frequency determines both the number of installments and the periodic rate. For example, a 6% annual rate with monthly payments produces a 0.50% periodic rate. Increasing payment frequency does not create an automatic interest-rate advantage in this simplified nominal-rate model; it primarily changes the timing and size of equal installments. Real contracts may use daily accrual, actual calendar days, or an effective annual rate, so verify the lender's convention.\u003c\/p\u003e\n    \u003ch2\u003eHow the payment formula works\u003c\/h2\u003e\n    \u003cp\u003eThe periodic payment is based on the present value of an ordinary annuity. With principal \u003cstrong\u003eP\u003c\/strong\u003e, periodic rate \u003cstrong\u003er\u003c\/strong\u003e, and number of installments \u003cstrong\u003en\u003c\/strong\u003e, the payment is:\u003c\/p\u003e\n    \u003cp class=\"lp-formula\"\u003ePayment = P × r × (1 + r)\u003csup\u003en\u003c\/sup\u003e ÷ ((1 + r)\u003csup\u003en\u003c\/sup\u003e − 1)\u003c\/p\u003e\n    \u003cp\u003eWhen the periodic rate is zero, the formula would otherwise divide by zero, so the calculator uses the exact fallback payment of principal divided by the installment count. Each schedule row then calculates interest as opening balance multiplied by the periodic rate, principal as payment minus interest, and ending balance as opening balance minus principal. The last row is adjusted for fractional-cent rounding so the displayed schedule pays the balance off exactly.\u003c\/p\u003e\n    \u003ch2\u003eHow to interpret every result\u003c\/h2\u003e\n    \u003ch3\u003ePeriodic loan payment\u003c\/h3\u003e\n    \u003cp\u003eThis is the equal amount due at each selected payment interval. A higher value means a greater recurring cash-flow commitment. The payment is driven mainly by principal, annual rate, term, and frequency. A zero result means the inputs are incomplete or the principal is zero, not that a positive loan can be repaid for free.\u003c\/p\u003e\n    \u003ch3\u003eLoan payment total and total interest\u003c\/h3\u003e\n    \u003cp\u003eThe loan payment total is the sum of all scheduled installments. Total interest is that sum minus the original principal. High total interest can result from a high rate, a long term, or both. A negative interest value is not permitted in this model. The donut chart uses these same two values: principal and interest. Its legend reports the exact dollar amount and percentage of the total represented by each segment.\u003c\/p\u003e\n    \u003ch3\u003eNumber of installments and periodic rate\u003c\/h3\u003e\n    \u003cp\u003eThe installment count is the term expressed in payment periods. The periodic rate is the annual nominal rate divided by the selected annual frequency. These intermediate values explain why the same annual rate can produce different payment sizes at different frequencies. They are also useful for checking a lender's disclosed schedule.\u003c\/p\u003e\n    \u003ch3\u003eAmortization chart and table\u003c\/h3\u003e\n    \u003cp\u003eThe line chart plots outstanding balance and cumulative interest against progress through the schedule. The balance should decline to zero, while cumulative interest should rise toward total interest. The detailed table shows opening balance, payment, interest, principal, and ending balance for every installment. The annual summary groups payment rows into each year, which is useful for long monthly or weekly schedules. Use the table to see why early payments contain more interest and later payments contain more principal.\u003c\/p\u003e\n    \u003ch2\u003eCommon mistakes and practical tradeoffs\u003c\/h2\u003e\n    \u003cul\u003e\n      \u003cli\u003eDo not confuse purchase price with amount financed after a down payment or trade-in.\u003c\/li\u003e\n      \u003cli\u003eDo not compare a nominal rate directly with an APR that includes fees without understanding the difference.\u003c\/li\u003e\n      \u003cli\u003eDo not assume every weekly or daily loan uses a simple annual-rate division; some contracts use actual-day conventions.\u003c\/li\u003e\n      \u003cli\u003eDo not focus only on the smallest payment. A longer term can make the payment easier while materially increasing total interest.\u003c\/li\u003e\n      \u003cli\u003eDo not treat the schedule as a contract quote when taxes, insurance, fees, prepayment rules, or variable rates apply.\u003c\/li\u003e\n    \u003c\/ul\u003e\n    \u003cp\u003eFor a broader explanation of amortization and installment borrowing, see the educational material in \u003ca href=\"https:\/\/openstax.org\/books\/principles-finance\/pages\/7-3-loan-amortization\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eOpenStax Principles of Finance\u003c\/a\u003e. This calculator is an educational planning tool and does not provide personalized financial, legal, tax, or investment advice.\u003c\/p\u003e\n  \u003c\/section\u003e\n\u003c\/div\u003e","brand":"FinancialModelsLab","offers":[{"title":"Default Title","offer_id":49909487894771,"sku":"loan-payment","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/loan-payment.webp?v=1783935537","url":"https:\/\/financialmodelslab.com\/products\/loan-payment","provider":"Financial Models Lab","version":"1.0","type":"link"}