{"product_id":"apr","title":"APR Calculator","description":"\u003cstyle\u003e\n.apr-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  container-type: inline-size;\n  margin: 0 auto;\n  color: var(--ink);\n  background: var(--surface);\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}\n.apr-calculator,\n.apr-calculator *,\n.apr-calculator *::before,\n.apr-calculator *::after { box-sizing: border-box; }\n.apr-calculator h2,\n.apr-calculator h3,\n.apr-calculator p { margin-top: 0; }\n.apr-calculator a { color: var(--primary); text-underline-offset: 3px; }\n.apr-calculator a:hover { text-decoration-thickness: 2px; }\n.apr-shell { padding: 24px; background: var(--tint); border: 1px solid var(--border); border-radius: 8px; }\n.apr-header { display: grid; gap: 12px; margin-bottom: 16px; min-width: 0; }\n.apr-title { margin: 0; font-size: 24px; line-height: 1.25; font-weight: 700; letter-spacing: -0.02em; }\n.apr-subtitle { margin: 0; max-width: 820px; color: var(--muted); }\n.apr-pills { display: flex; flex-wrap: wrap; gap: 8px; min-width: 0; }\n.apr-pill { display: inline-flex; align-items: baseline; gap: 6px; min-width: 0; padding: 6px 10px; border: 1px solid var(--border); border-radius: 999px; background: var(--surface); color: var(--muted); font-size: 13px; font-weight: 500; }\n.apr-pill strong { color: var(--ink); font-variant-numeric: tabular-nums; }\n.apr-toolbar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 16px; min-width: 0; }\n.apr-button { min-height: 44px; border-radius: 6px; padding: 11px 16px; border: 1px solid var(--border); background: var(--surface); color: var(--ink); font: inherit; font-weight: 650; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 10px; white-space: nowrap; box-shadow: 0 1px 2px rgba(15,23,42,.06); transition: background-color .15s ease, border-color .15s ease, transform .15s ease, box-shadow .15s ease; }\n.apr-button:hover { border-color: #cbd5e1; box-shadow: 0 3px 8px rgba(15,23,42,.10); }\n.apr-button:active { transform: translateY(1px); }\n.apr-button:focus-visible,\n.apr-input:focus-visible,\n.apr-select:focus-visible,\n.apr-segment-label:has(.apr-segment-input:focus-visible) { outline: 3px solid rgba(29,78,216,.35); outline-offset: 2px; }\n.apr-download { background: var(--accent); border-color: var(--accent); color: #ffffff; padding: 12px 18px; }\n.apr-download:hover { background: var(--accent-hover); border-color: var(--accent-hover); }\n.apr-download:disabled { background: #7c2d12; border-color: #7c2d12; color: #ffffff; cursor: not-allowed; opacity: .62; box-shadow: none; }\n.apr-button-icon { width: 18px; height: 18px; flex: 0 0 auto; }\n.apr-workspace { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; min-width: 0; }\n.apr-panel { min-width: 0; background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: 16px; box-shadow: 0 1px 2px rgba(15,23,42,.06); }\n.apr-panel-title { margin: 0 0 16px; font-size: 18px; line-height: 1.35; font-weight: 650; }\n.apr-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; min-width: 0; }\n.apr-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }\n.apr-field-wide { grid-column: 1 \/ -1; }\n.apr-label { display: block; color: var(--ink); font-size: 14px; font-weight: 600; }\n.apr-input,\n.apr-select { width: 100%; min-width: 0; min-height: 44px; border: 1px solid #cbd5e1; border-radius: 6px; background: var(--surface); color: var(--ink); font: inherit; padding: 9px 11px; font-variant-numeric: tabular-nums; }\n.apr-input:hover,\n.apr-select:hover { border-color: #94a3b8; }\n.apr-helper,\n.apr-error { min-height: 20px; margin: 0; font-size: 13px; font-weight: 500; line-height: 1.45; }\n.apr-helper { color: var(--muted); }\n.apr-error { color: #b91c1c; }\n.apr-input.apr-invalid,\n.apr-select.apr-invalid { border-color: #b91c1c; background: #fff7f7; }\n.apr-segment { display: inline-grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 4px; width: 100%; min-width: 0; padding: 4px; border: 1px solid #cbd5e1; border-radius: 6px; background: var(--tint); }\n.apr-segment-label { position: relative; min-width: 0; border-radius: 4px; padding: 7px 10px; text-align: center; color: var(--muted); font-size: 13px; font-weight: 650; cursor: pointer; }\n.apr-segment-input { position: absolute; width: 1px; height: 1px; opacity: 0; }\n.apr-segment-label:has(.apr-segment-input:checked) { background: var(--surface); color: var(--primary); box-shadow: 0 1px 2px rgba(15,23,42,.10); }\n.apr-primary-result { padding: 16px; border: 1px solid #bfdbfe; border-radius: 8px; background: #eff6ff; margin-bottom: 16px; min-width: 0; }\n.apr-primary-label { margin: 0 0 4px; color: #1e3a8a; font-size: 13px; font-weight: 650; }\n.apr-primary-value { margin: 0; color: #172554; font-size: 30px; line-height: 1.2; font-weight: 700; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }\n.apr-primary-note { margin: 6px 0 0; color: #1e3a8a; font-size: 13px; font-weight: 500; }\n.apr-result-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; min-width: 0; }\n.apr-result-card { min-width: 0; padding: 12px; border: 1px solid var(--border); border-radius: 8px; background: var(--surface); }\n.apr-result-card span { display: block; margin-bottom: 4px; color: var(--muted); font-size: 13px; font-weight: 500; }\n.apr-result-card strong { display: block; color: var(--ink); font-size: 20px; line-height: 1.3; font-weight: 700; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }\n.apr-result-list { display: grid; gap: 8px; margin-top: 16px; }\n.apr-result-row { display: grid; grid-template-columns: minmax(0, max-content) minmax(0, max-content); gap: 8px 16px; align-items: baseline; justify-content: start; min-width: 0; padding-top: 8px; border-top: 1px solid var(--border); }\n.apr-result-row span { color: var(--muted); font-size: 13px; font-weight: 500; }\n.apr-result-row strong { color: var(--ink); font-size: 15px; font-weight: 650; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }\n.apr-section { margin-top: 16px; min-width: 0; }\n.apr-section-head { margin-bottom: 16px; min-width: 0; }\n.apr-section-head h3 { margin: 0 0 4px; font-size: 18px; line-height: 1.35; font-weight: 650; }\n.apr-section-head p { margin: 0; color: var(--muted); font-size: 13px; font-weight: 500; }\n.apr-chart-cluster { display: grid; grid-template-columns: minmax(220px, 300px) minmax(0, max-content); justify-content: center; align-items: center; gap: 24px; min-width: 0; }\n.apr-chart-visual { min-width: 0; display: flex; justify-content: center; align-items: center; }\n.apr-donut-svg { display: block; width: min(100%, 300px); height: auto; aspect-ratio: 1 \/ 1; overflow: visible; }\n.apr-line-svg { display: block; width: 100%; max-width: 900px; height: auto; margin: 0 auto; overflow: visible; }\n.apr-chart-empty { padding: 16px; border: 1px dashed #94a3b8; border-radius: 6px; background: var(--tint); color: var(--muted); text-align: center; font-size: 13px; font-weight: 500; }\n.apr-legend { display: grid; gap: 10px; min-width: 0; align-content: center; }\n.apr-chart-side { display: grid; gap: 16px; align-content: center; min-width: 0; }\n.apr-chart-side .apr-chart-callout { margin-top: 0; }\n.apr-legend-row { display: grid; grid-template-columns: 12px minmax(0, max-content) minmax(0, max-content) minmax(0, max-content); gap: 8px 12px; align-items: baseline; justify-content: start; min-width: 0; font-size: 13px; font-weight: 500; }\n.apr-swatch { width: 12px; height: 12px; border-radius: 3px; align-self: center; }\n.apr-legend-name { color: var(--ink); overflow-wrap: anywhere; }\n.apr-legend-value,\n.apr-legend-percent { color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; }\n.apr-chart-callout,\n.apr-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.apr-line-wrap { display: grid; gap: 16px; min-width: 0; }\n.apr-line-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 20px; min-width: 0; }\n.apr-line-legend-item { display: inline-grid; grid-template-columns: 18px minmax(0, max-content); gap: 8px; align-items: center; color: var(--ink); font-size: 13px; font-weight: 600; }\n.apr-line-key { width: 18px; height: 4px; border-radius: 4px; }\n.apr-safe-stack .apr-chart-cluster { grid-template-columns: minmax(0, 1fr); gap: 16px; }\n.apr-safe-stack .apr-legend { justify-content: center; }\n.apr-safe-stack .apr-chart-callout { margin-top: 20px; }\n.apr-table-overflow { width: 100%; max-width: 100%; overflow-x: auto; border: 1px solid var(--border); border-radius: 6px; background: var(--surface); }\n.apr-table { width: 100%; min-width: 820px; border-collapse: collapse; font-size: 13px; font-variant-numeric: tabular-nums; }\n.apr-table th,\n.apr-table td { padding: 10px 12px; border-bottom: 1px solid var(--border); text-align: right; white-space: nowrap; }\n.apr-table th { background: #e2e8f0; color: var(--ink); font-weight: 700; }\n.apr-table th:first-child,\n.apr-table td:first-child { text-align: left; }\n.apr-table tbody tr:last-child td { border-bottom: 0; }\n.apr-table tbody tr:nth-child(even) { background: var(--tint); }\n.apr-safe-table-stack .apr-table-note { margin-top: 20px; }\n.apr-education { margin-top: 16px; padding: 24px; background: var(--surface); border: 1px solid var(--border); border-radius: 8px; min-width: 0; }\n.apr-education h2 { margin: 0 0 12px; font-size: 24px; line-height: 1.3; font-weight: 700; }\n.apr-education h3 { margin: 24px 0 8px; font-size: 18px; line-height: 1.35; font-weight: 650; }\n.apr-education p { margin-bottom: 12px; color: #334155; }\n.apr-education ul { margin: 0 0 12px; padding-left: 22px; color: #334155; }\n.apr-education li + li { margin-top: 8px; }\n.apr-formula { padding: 12px; border-left: 4px solid var(--primary); background: var(--tint); border-radius: 0 6px 6px 0; color: var(--ink); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }\n.apr-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@container (max-width: 899px) {\n  .apr-workspace { grid-template-columns: minmax(0, 1fr); }\n}\n@container (max-width: 639px) {\n  .apr-chart-cluster { grid-template-columns: minmax(0, 1fr); gap: 16px; }\n  .apr-legend { justify-content: center; }\n}\n@media (max-width: 899px) {\n  .apr-workspace { grid-template-columns: minmax(0, 1fr); }\n}\n@media (max-width: 639px) {\n  .apr-shell { padding: 16px; }\n  .apr-form-grid { grid-template-columns: minmax(0, 1fr); }\n  .apr-field-wide { grid-column: auto; }\n  .apr-result-grid { grid-template-columns: minmax(0, 1fr); }\n  .apr-chart-cluster { grid-template-columns: minmax(0, 1fr); gap: 16px; }\n  .apr-legend { justify-content: center; }\n  .apr-legend-row { grid-template-columns: 12px minmax(0, max-content) minmax(0, max-content); }\n  .apr-legend-percent { grid-column: 2 \/ 4; padding-left: 0; }\n  .apr-education { padding: 16px; }\n}\n@media (max-width: 380px) {\n  .apr-shell { padding: 12px; }\n  .apr-panel { padding: 12px; }\n  .apr-toolbar { align-items: stretch; }\n  .apr-button { width: 100%; }\n  .apr-result-row { grid-template-columns: minmax(0, 1fr); gap: 2px; }\n}\n\u003c\/style\u003e\n\u003cdiv class=\"apr-calculator\" data-calculator-root\u003e\n  \u003cdiv class=\"apr-shell\"\u003e\n    \u003cheader class=\"apr-header\"\u003e\n      \u003ch2 class=\"apr-title\"\u003eAPR \u0026amp; Loan Cost Calculator\u003c\/h2\u003e\n      \u003cp class=\"apr-subtitle\"\u003eEstimate the nominal APR, effective APR, periodic payment, and full borrowing cost after financed and upfront fees.\u003c\/p\u003e\n      \u003cdiv class=\"apr-pills\" aria-label=\"Live loan summary\"\u003e\n        \u003cspan class=\"apr-pill\"\u003eAPR \u003cstrong data-pill-apr\u003e—\u003c\/strong\u003e\u003c\/span\u003e\n        \u003cspan class=\"apr-pill\"\u003eEffective APR \u003cstrong data-pill-eapr\u003e—\u003c\/strong\u003e\u003c\/span\u003e\n        \u003cspan class=\"apr-pill\"\u003ePayment \u003cstrong data-pill-payment\u003e—\u003c\/strong\u003e\u003c\/span\u003e\n        \u003cspan class=\"apr-pill\"\u003eTotal cost \u003cstrong data-pill-cost\u003e—\u003c\/strong\u003e\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/header\u003e\n\n    \u003cdiv class=\"apr-toolbar\"\u003e\n      \u003cbutton class=\"apr-button apr-download\" type=\"button\" data-download\u003e\n        \u003csvg class=\"apr-button-icon\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpath fill=\"currentColor\" d=\"M12 3a1 1 0 0 1 1 1v8.59l2.3-2.3a1 1 0 1 1 1.4 1.42l-4 4a1 1 0 0 1-1.4 0l-4-4a1 1 0 1 1 1.4-1.42l2.3 2.3V4a1 1 0 0 1 1-1Zm-7 14a1 1 0 0 1 1 1v1h12v-1a1 1 0 1 1 2 0v2a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n        \u003cspan\u003eDownload Excel\u003c\/span\u003e\n      \u003c\/button\u003e\n      \u003cbutton class=\"apr-button\" type=\"button\" data-reset\u003eReset\u003c\/button\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"apr-workspace\"\u003e\n      \u003csection class=\"apr-panel\" aria-labelledby=\"apr-inputs-title\"\u003e\n        \u003ch3 class=\"apr-panel-title\" id=\"apr-inputs-title\"\u003eLoan specification\u003c\/h3\u003e\n        \u003cdiv class=\"apr-form-grid\"\u003e\n          \u003cdiv class=\"apr-field\"\u003e\n            \u003clabel class=\"apr-label\" for=\"apr-loan-amount\"\u003eLoan amount\u003c\/label\u003e\n            \u003cinput class=\"apr-input\" id=\"apr-loan-amount\" type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" value=\"$200,000.00\" data-field=\"loanAmount\" data-mask=\"currency\" aria-describedby=\"apr-loan-amount-help apr-loan-amount-error\"\u003e\n            \u003cp class=\"apr-helper\" id=\"apr-loan-amount-help\"\u003eCash amount stated in the loan agreement.\u003c\/p\u003e\n            \u003cp class=\"apr-error\" id=\"apr-loan-amount-error\" data-error=\"loanAmount\"\u003e\u003c\/p\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"apr-field\"\u003e\n            \u003clabel class=\"apr-label\" for=\"apr-interest-rate\"\u003eNominal interest rate\u003c\/label\u003e\n            \u003cinput class=\"apr-input\" id=\"apr-interest-rate\" type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" value=\"6.00%\" data-field=\"interestRate\" data-mask=\"percent\" aria-describedby=\"apr-interest-rate-help apr-interest-rate-error\"\u003e\n            \u003cp class=\"apr-helper\" id=\"apr-interest-rate-help\"\u003eQuoted annual rate before fees.\u003c\/p\u003e\n            \u003cp class=\"apr-error\" id=\"apr-interest-rate-error\" data-error=\"interestRate\"\u003e\u003c\/p\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"apr-field\"\u003e\n            \u003clabel class=\"apr-label\" for=\"apr-loan-term\"\u003eLoan term\u003c\/label\u003e\n            \u003cinput class=\"apr-input\" id=\"apr-loan-term\" type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" value=\"30\" data-field=\"loanTerm\" data-mask=\"number\" aria-describedby=\"apr-loan-term-help apr-loan-term-error\"\u003e\n            \u003cp class=\"apr-helper\" id=\"apr-loan-term-help\"\u003eRepayment duration in the selected unit.\u003c\/p\u003e\n            \u003cp class=\"apr-error\" id=\"apr-loan-term-error\" data-error=\"loanTerm\"\u003e\u003c\/p\u003e\n          \u003c\/div\u003e\n\n          \u003cfieldset class=\"apr-field\"\u003e\n            \u003clegend class=\"apr-label\"\u003eTerm unit\u003c\/legend\u003e\n            \u003cdiv class=\"apr-segment\"\u003e\n              \u003clabel class=\"apr-segment-label\" for=\"apr-term-years\"\u003e\u003cinput class=\"apr-segment-input\" id=\"apr-term-years\" type=\"radio\" name=\"apr-term-unit\" value=\"years\" checked data-term-unit\u003eYears\u003c\/label\u003e\n              \u003clabel class=\"apr-segment-label\" for=\"apr-term-months\"\u003e\u003cinput class=\"apr-segment-input\" id=\"apr-term-months\" type=\"radio\" name=\"apr-term-unit\" value=\"months\" data-term-unit\u003eMonths\u003c\/label\u003e\n            \u003c\/div\u003e\n            \u003cp class=\"apr-helper\"\u003eChanging the unit converts the current term.\u003c\/p\u003e\n            \u003cp class=\"apr-error\" aria-hidden=\"true\"\u003e\u003c\/p\u003e\n          \u003c\/fieldset\u003e\n\n          \u003cdiv class=\"apr-field\"\u003e\n            \u003clabel class=\"apr-label\" for=\"apr-payment-frequency\"\u003ePayment frequency\u003c\/label\u003e\n            \u003cselect class=\"apr-select\" id=\"apr-payment-frequency\" data-field=\"paymentFrequency\" aria-describedby=\"apr-payment-frequency-help apr-payment-frequency-error\"\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              \u003coption value=\"26\"\u003eBi-weekly\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=\"apr-helper\" id=\"apr-payment-frequency-help\"\u003eHow often installments are made.\u003c\/p\u003e\n            \u003cp class=\"apr-error\" id=\"apr-payment-frequency-error\" data-error=\"paymentFrequency\"\u003e\u003c\/p\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"apr-field\"\u003e\n            \u003clabel class=\"apr-label\" for=\"apr-compounding-frequency\"\u003eCompounding frequency\u003c\/label\u003e\n            \u003cselect class=\"apr-select\" id=\"apr-compounding-frequency\" data-field=\"compoundingFrequency\" aria-describedby=\"apr-compounding-frequency-help apr-compounding-frequency-error\"\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              \u003coption value=\"26\"\u003eBi-weekly\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=\"apr-helper\" id=\"apr-compounding-frequency-help\"\u003eHow often the quoted rate compounds.\u003c\/p\u003e\n            \u003cp class=\"apr-error\" id=\"apr-compounding-frequency-error\" data-error=\"compoundingFrequency\"\u003e\u003c\/p\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"apr-field\"\u003e\n            \u003clabel class=\"apr-label\" for=\"apr-rolled-fees\"\u003eFees rolled into loan\u003c\/label\u003e\n            \u003cinput class=\"apr-input\" id=\"apr-rolled-fees\" type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" value=\"$5,000.00\" data-field=\"rolledFees\" data-mask=\"currency\" aria-describedby=\"apr-rolled-fees-help apr-rolled-fees-error\"\u003e\n            \u003cp class=\"apr-helper\" id=\"apr-rolled-fees-help\"\u003eFinanced fees that accrue interest.\u003c\/p\u003e\n            \u003cp class=\"apr-error\" id=\"apr-rolled-fees-error\" data-error=\"rolledFees\"\u003e\u003c\/p\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"apr-field\"\u003e\n            \u003clabel class=\"apr-label\" for=\"apr-separate-fees\"\u003eFees paid separately\u003c\/label\u003e\n            \u003cinput class=\"apr-input\" id=\"apr-separate-fees\" type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" value=\"$0.00\" data-field=\"separateFees\" data-mask=\"currency\" aria-describedby=\"apr-separate-fees-help apr-separate-fees-error\"\u003e\n            \u003cp class=\"apr-helper\" id=\"apr-separate-fees-help\"\u003eUpfront fees not added to the balance.\u003c\/p\u003e\n            \u003cp class=\"apr-error\" id=\"apr-separate-fees-error\" data-error=\"separateFees\"\u003e\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/section\u003e\n\n      \u003csection class=\"apr-panel\" aria-labelledby=\"apr-results-title\"\u003e\n        \u003ch3 class=\"apr-panel-title\" id=\"apr-results-title\"\u003eLive results\u003c\/h3\u003e\n        \u003cdiv class=\"apr-primary-result\" aria-live=\"polite\" aria-atomic=\"true\"\u003e\n          \u003cp class=\"apr-primary-label\"\u003eEffective APR\u003c\/p\u003e\n          \u003cp class=\"apr-primary-value\" data-primary-result\u003e—\u003c\/p\u003e\n          \u003cp class=\"apr-primary-note\" data-primary-note\u003eEnter a valid loan specification to calculate the all-in annualized cost.\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"apr-result-grid\"\u003e\n          \u003cdiv class=\"apr-result-card\"\u003e\n\u003cspan\u003eAnnual Percentage Rate\u003c\/span\u003e\u003cstrong data-result=\"apr\"\u003e—\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"apr-result-card\"\u003e\n\u003cspan\u003eEffective Annual Rate\u003c\/span\u003e\u003cstrong data-result=\"ear\"\u003e—\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"apr-result-card\"\u003e\n\u003cspan\u003ePayment per period\u003c\/span\u003e\u003cstrong data-result=\"payment\"\u003e—\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"apr-result-card\"\u003e\n\u003cspan\u003eTotal finance charge\u003c\/span\u003e\u003cstrong data-result=\"financeCharge\"\u003e—\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"apr-result-list\"\u003e\n          \u003cdiv class=\"apr-result-row\"\u003e\n\u003cspan\u003eTotal payments\u003c\/span\u003e\u003cstrong data-result=\"totalPayments\"\u003e—\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"apr-result-row\"\u003e\n\u003cspan\u003eTotal interest\u003c\/span\u003e\u003cstrong data-result=\"totalInterest\"\u003e—\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"apr-result-row\"\u003e\n\u003cspan\u003eTotal fees\u003c\/span\u003e\u003cstrong data-result=\"totalFees\"\u003e—\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"apr-result-row\"\u003e\n\u003cspan\u003eFinanced principal\u003c\/span\u003e\u003cstrong data-result=\"financedPrincipal\"\u003e—\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"apr-result-row\"\u003e\n\u003cspan\u003ePeriodic equivalent rate\u003c\/span\u003e\u003cstrong data-result=\"periodicRate\"\u003e—\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"apr-result-row\"\u003e\n\u003cspan\u003eEquivalent nominal rate\u003c\/span\u003e\u003cstrong data-result=\"equivalentRate\"\u003e—\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"apr-result-row\"\u003e\n\u003cspan\u003eApproximate APR\u003c\/span\u003e\u003cstrong data-result=\"approxApr\"\u003e—\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"apr-result-row\"\u003e\n\u003cspan\u003eNumber of payments\u003c\/span\u003e\u003cstrong data-result=\"paymentCount\"\u003e—\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/section\u003e\n    \u003c\/div\u003e\n\n    \u003csection class=\"apr-panel apr-section\" data-chart-card=\"breakdown\" aria-labelledby=\"apr-breakdown-title\"\u003e\n      \u003cdiv class=\"apr-section-head\"\u003e\n        \u003ch3 id=\"apr-breakdown-title\"\u003eTotal repayment breakdown\u003c\/h3\u003e\n        \u003cp data-breakdown-intro\u003ePrincipal, interest, and fees shown as parts of total cash paid.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"apr-chart-cluster\" data-breakdown-cluster\u003e\n        \u003cdiv class=\"apr-chart-visual\" data-breakdown-visual\u003e\u003c\/div\u003e\n        \u003cdiv class=\"apr-chart-side\"\u003e\n          \u003cdiv class=\"apr-legend\" data-breakdown-legend\u003e\u003c\/div\u003e\n          \u003cdiv class=\"apr-chart-callout\" data-breakdown-caption\u003eEnter values above to see the repayment mix.\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"apr-sr-only\" data-breakdown-summary\u003e\u003c\/div\u003e\n    \u003c\/section\u003e\n\n    \u003csection class=\"apr-panel apr-section\" data-chart-card=\"timeline\" aria-labelledby=\"apr-timeline-title\"\u003e\n      \u003cdiv class=\"apr-section-head\"\u003e\n        \u003ch3 id=\"apr-timeline-title\"\u003eBalance and cumulative interest\u003c\/h3\u003e\n        \u003cp\u003eSee how the outstanding balance declines while interest accumulates over the loan term.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"apr-line-wrap\"\u003e\n        \u003cdiv class=\"apr-chart-visual\" data-line-visual\u003e\u003c\/div\u003e\n        \u003cdiv class=\"apr-line-legend\" data-line-legend\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"apr-sr-only\" data-line-summary\u003e\u003c\/div\u003e\n      \u003cdiv class=\"apr-chart-callout\" data-line-caption\u003eEnter values above to generate the repayment timeline.\u003c\/div\u003e\n    \u003c\/section\u003e\n\n    \u003csection class=\"apr-panel apr-section\" data-table-card aria-labelledby=\"apr-schedule-title\"\u003e\n      \u003cdiv class=\"apr-section-head\"\u003e\n        \u003ch3 id=\"apr-schedule-title\"\u003eAnnual repayment schedule\u003c\/h3\u003e\n        \u003cp\u003eAnnual totals are derived from the same period-by-period model used for the results and Excel workbook.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"apr-table-overflow\" data-table-overflow\u003e\n        \u003ctable class=\"apr-table\"\u003e\n          \u003cthead\u003e\n            \u003ctr\u003e\n              \u003cth scope=\"col\"\u003eYear\u003c\/th\u003e\n              \u003cth scope=\"col\"\u003ePayments\u003c\/th\u003e\n              \u003cth scope=\"col\"\u003eStarting balance\u003c\/th\u003e\n              \u003cth scope=\"col\"\u003ePrincipal paid\u003c\/th\u003e\n              \u003cth scope=\"col\"\u003eInterest paid\u003c\/th\u003e\n              \u003cth scope=\"col\"\u003eEnding balance\u003c\/th\u003e\n              \u003cth scope=\"col\"\u003eCumulative interest\u003c\/th\u003e\n            \u003c\/tr\u003e\n          \u003c\/thead\u003e\n          \u003ctbody data-schedule-body\u003e\u003c\/tbody\u003e\n        \u003c\/table\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"apr-table-note\" data-table-note\u003eThe schedule appears after all required inputs are valid. Detailed payment rows are included in the Excel export.\u003c\/div\u003e\n    \u003c\/section\u003e\n  \u003c\/div\u003e\n\n  \u003csection class=\"apr-education\" aria-labelledby=\"apr-guide-title\"\u003e\n    \u003ch2 id=\"apr-guide-title\"\u003eHow to use and interpret the APR calculator\u003c\/h2\u003e\n    \u003cp\u003eThis calculator estimates the cost of a fixed-rate, fully amortizing loan with equal payments. It separates the advertised nominal interest rate from APR, which incorporates qualifying fees, and from effective APR, which also reflects compounding. The result is useful for comparing loan offers that have different fee structures, payment intervals, or compounding conventions. It is an analytical estimate rather than a lender disclosure, legal determination, or personalized financial recommendation.\u003c\/p\u003e\n\n    \u003ch3\u003eWhat each input means\u003c\/h3\u003e\n    \u003cul\u003e\n      \u003cli\u003e\n\u003cstrong\u003eLoan amount\u003c\/strong\u003e is the stated amount borrowed before fees. Enter the contractual principal, not the total of future payments. A larger amount generally increases the payment and total interest in dollars, although the percentage APR can fall when a fixed fee is spread across a larger principal.\u003c\/li\u003e\n      \u003cli\u003e\n\u003cstrong\u003eNominal interest rate\u003c\/strong\u003e is the quoted annual rate before fees. Enter a percentage such as 6% rather than a decimal such as 0.06. A higher rate raises the periodic payment, total interest, EAR, APR, and effective APR.\u003c\/li\u003e\n      \u003cli\u003e\n\u003cstrong\u003eLoan term\u003c\/strong\u003e is the repayment duration. Choose years or months; switching the unit converts the current value. A longer term usually lowers each payment but increases total interest because the balance remains outstanding longer. Very short terms can make upfront fees produce a much higher APR.\u003c\/li\u003e\n      \u003cli\u003e\n\u003cstrong\u003ePayment frequency\u003c\/strong\u003e controls how often installments occur. Monthly means 12 payments per year, bi-weekly means 26, and weekly means 52. The calculator converts the compounding rate into an equivalent rate for the chosen payment interval.\u003c\/li\u003e\n      \u003cli\u003e\n\u003cstrong\u003eCompounding frequency\u003c\/strong\u003e specifies how often interest is applied under the quoted nominal rate. More frequent compounding increases the effective annual rate when the nominal rate is unchanged. This field may differ from payment frequency.\u003c\/li\u003e\n      \u003cli\u003e\n\u003cstrong\u003eFees rolled into loan\u003c\/strong\u003e are financed charges added to the balance. Because they are part of financed principal, they accrue interest and increase both the payment and APR. Examples may include financed origination charges or points, depending on the agreement.\u003c\/li\u003e\n      \u003cli\u003e\n\u003cstrong\u003eFees paid separately\u003c\/strong\u003e are upfront charges that reduce the borrower’s net proceeds but are not added to the amortizing balance. They increase APR even though the lender does not charge periodic interest on them in this model. Separate fees must remain below the loan amount so net proceeds stay positive.\u003c\/li\u003e\n    \u003c\/ul\u003e\n\n    \u003ch3\u003eUnderstanding the results\u003c\/h3\u003e\n    \u003cp\u003e\u003cstrong\u003eAnnual Percentage Rate\u003c\/strong\u003e is the nominal annualized rate implied by the payment stream and net loan proceeds. It is calculated by solving for the periodic rate that equates the present value of payments with the cash actually received, then multiplying that rate by the number of payments per year. The \u003ca href=\"https:\/\/www.consumerfinance.gov\/ask-cfpb\/what-is-the-difference-between-a-loan-interest-rate-and-the-apr-en-733\/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eConsumer Financial Protection Bureau\u003c\/a\u003e explains why APR and interest rate can differ.\u003c\/p\u003e\n    \u003cp\u003e\u003cstrong\u003eEffective APR\u003c\/strong\u003e compounds the periodic APR over a full year. It is normally at least as high as nominal APR when there is more than one payment period per year. \u003cstrong\u003eEffective Annual Rate\u003c\/strong\u003e performs a similar compounding adjustment on the quoted interest rate but excludes fees. Comparing EAR with effective APR isolates the effect of fees on the all-in annualized cost.\u003c\/p\u003e\n    \u003cp\u003e\u003cstrong\u003ePayment per period\u003c\/strong\u003e is the equal installment required to amortize the loan amount plus financed fees. \u003cstrong\u003eTotal interest\u003c\/strong\u003e is the sum of interest across all scheduled payments. \u003cstrong\u003eTotal fees\u003c\/strong\u003e combines rolled and separately paid fees. \u003cstrong\u003eTotal finance charge\u003c\/strong\u003e equals interest plus all modeled fees, while \u003cstrong\u003etotal payments\u003c\/strong\u003e equals the original loan amount plus that finance charge. A zero result is possible only when the rate and all fees are zero.\u003c\/p\u003e\n    \u003cp\u003e\u003cstrong\u003ePeriodic equivalent rate\u003c\/strong\u003e is the rate used for each payment interval after reconciling payment and compounding frequencies. \u003cstrong\u003eEquivalent nominal rate\u003c\/strong\u003e annualizes that periodic rate without compounding. \u003cstrong\u003eApproximate APR\u003c\/strong\u003e uses a simplified finance-charge formula; it can be useful as a reasonableness check but may differ materially from the iterative APR, especially for long terms, large fees, or unusual frequencies.\u003c\/p\u003e\n\n    \u003ch3\u003eHow the model works\u003c\/h3\u003e\n    \u003cp class=\"apr-formula\"\u003eEquivalent periodic rate = (1 + nominal rate ÷ compounding periods)\u003csup\u003ecompounding periods ÷ payment periods\u003c\/sup\u003e − 1. Payment = financed principal × periodic rate ÷ (1 − (1 + periodic rate)\u003csup\u003e−number of payments\u003c\/sup\u003e). APR is then solved iteratively from the present value of the payment stream and net proceeds.\u003c\/p\u003e\n    \u003cp\u003eThe model uses full precision internally and rounds only for display and export. When the nominal rate is zero, payment is financed principal divided by the number of payments. The final scheduled payment is adjusted by a few cents when necessary so the ending balance is exactly zero rather than slightly negative because of floating-point arithmetic.\u003c\/p\u003e\n\n    \u003ch3\u003eReading the charts and schedule\u003c\/h3\u003e\n    \u003cp\u003eThe repayment donut divides total cash paid into original principal, interest, financed fees, and upfront fees. A larger interest segment indicates that rate or term is driving cost; a larger fee segment indicates that charges are materially increasing APR. The timeline plots remaining balance against cumulative interest. Slow early balance reduction is typical for long amortizing loans because a larger share of early payments goes to interest.\u003c\/p\u003e\n    \u003cp\u003eThe annual table aggregates every payment into calendar-like loan years. Starting balance plus interest minus principal reduction reconciles to the ending balance. The final row should end at zero. The Excel export includes the current inputs, results, breakdown, complete payment-level schedule, and methodology notes, making it easier to compare scenarios outside the page.\u003c\/p\u003e\n\n    \u003ch3\u003eComparison tips and common mistakes\u003c\/h3\u003e\n    \u003cp\u003eCompare loans using the same amount, term, and expected holding period. A lower rate with a large upfront fee may be more expensive if the loan is repaid early, while a higher-rate loan with minimal fees may cost more over a long term. Confirm which charges a lender includes in its official disclosure: legal rules vary by product and jurisdiction. U.S. closed-end credit disclosure is governed by \u003ca href=\"https:\/\/www.consumerfinance.gov\/rules-policy\/regulations\/1026\/22\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRegulation Z §1026.22\u003c\/a\u003e and related \u003ca href=\"https:\/\/www.consumerfinance.gov\/rules-policy\/regulations\/1026\/J\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eAppendix J\u003c\/a\u003e. European consumer-credit calculations are addressed in \u003ca href=\"https:\/\/eur-lex.europa.eu\/eli\/dir\/2023\/2225\/oj\/eng\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eDirective (EU) 2023\/2225\u003c\/a\u003e.\u003c\/p\u003e\n    \u003cp\u003eCommon errors include entering the interest rate as a decimal, counting the same fee as both rolled and separate, comparing APRs from loans with different terms without reviewing total cost, and assuming every lender uses identical timing conventions. Treat this estimate as a transparent comparison model and reconcile it with the lender’s official disclosure before making a decision.\u003c\/p\u003e\n  \u003c\/section\u003e\n\u003c\/div\u003e","brand":"FinancialModelsLab","offers":[{"title":"Default Title","offer_id":49909487337715,"sku":"apr","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/apr.webp?v=1783935520","url":"https:\/\/financialmodelslab.com\/products\/apr","provider":"Financial Models Lab","version":"1.0","type":"link"}