{"product_id":"apr-calculator","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  color: var(--ink);\n  background: var(--surface);\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  box-shadow: 0 1px 2px rgba(15,23,42,.06);\n  container-type: inline-size;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Arial, sans-serif;\n  font-size: 15px;\n  line-height: 1.55;\n  margin: 0 auto;\n  max-width: 1200px;\n  padding: 24px;\n  width: 100%;\n}\n.apr-calculator, .apr-calculator *, .apr-calculator *::before, .apr-calculator *::after { box-sizing: border-box; }\n.apr-calculator * { min-width: 0; }\n.apr-calculator h2, .apr-calculator h3, .apr-calculator p { margin-top: 0; }\n.apr-calculator h2 { font-size: 24px; font-weight: 700; line-height: 1.25; margin-bottom: 8px; }\n.apr-calculator h3 { font-size: 18px; font-weight: 650; line-height: 1.35; margin-bottom: 12px; }\n.apr-calculator a { color: var(--primary); text-decoration-thickness: 1px; text-underline-offset: 2px; }\n.apr-calculator a:hover { text-decoration-thickness: 2px; }\n.apr-calculator button, .apr-calculator input, .apr-calculator select { font: inherit; }\n.apr-calculator button { cursor: pointer; }\n.apr-calculator button:focus-visible, .apr-calculator input:focus-visible, .apr-calculator select:focus-visible, .apr-calculator a:focus-visible { outline: 3px solid rgba(29,78,216,.35); outline-offset: 2px; }\n.apr-header { border-bottom: 1px solid var(--border); padding-bottom: 16px; }\n.apr-subtitle { color: var(--muted); margin-bottom: 12px; max-width: 780px; }\n.apr-pills { display: flex; flex-wrap: wrap; gap: 8px; }\n.apr-pill { align-items: center; background: var(--tint); border: 1px solid var(--border); border-radius: 999px; color: var(--muted); display: inline-flex; font-size: 13px; font-weight: 600; gap: 6px; padding: 4px 10px; }\n.apr-pill strong { color: var(--ink); font-variant-numeric: tabular-nums; }\n.apr-toolbar { align-items: center; display: flex; flex-wrap: wrap; gap: 12px; padding: 16px 0; }\n.apr-btn { align-items: center; border-radius: 6px; display: inline-flex; font-size: 15px; font-weight: 650; gap: 10px; justify-content: center; min-height: 44px; padding: 11px 18px; text-decoration: none; }\n.apr-download { background: var(--accent); border: 1px solid var(--accent); color: #ffffff; white-space: nowrap; }\n.apr-download:hover, .apr-download:active { background: var(--accent-hover); border-color: var(--accent-hover); box-shadow: 0 2px 6px rgba(15,23,42,.14); }\n.apr-download:disabled { cursor: not-allowed; opacity: .65; }\n.apr-reset { background: var(--surface); border: 1px solid #94a3b8; color: var(--ink); }\n.apr-reset:hover { background: var(--tint); box-shadow: 0 1px 3px rgba(15,23,42,.12); }\n.apr-icon { display: inline-block; flex: 0 0 auto; font-size: 18px; line-height: 1; }\n.apr-mode-switch { background: var(--tint); border: 1px solid var(--border); border-radius: 6px; display: inline-flex; gap: 4px; margin-left: auto; padding: 4px; }\n.apr-mode-btn { background: transparent; border: 0; border-radius: 4px; color: var(--muted); font-size: 14px; font-weight: 650; min-height: 36px; padding: 7px 12px; }\n.apr-mode-btn[aria-pressed=\"true\"] { background: var(--surface); box-shadow: 0 1px 2px rgba(15,23,42,.10); color: var(--ink); }\n.apr-workspace { display: grid; gap: 24px; grid-template-columns: minmax(0, 1fr); }\n.apr-panel { background: var(--surface); border: 1px solid var(--border); border-radius: 8px; box-shadow: 0 1px 2px rgba(15,23,42,.04); padding: 20px; }\n.apr-panel-title { align-items: baseline; display: flex; flex-wrap: wrap; gap: 8px 12px; justify-content: space-between; }\n.apr-panel-title p { color: var(--muted); font-size: 13px; font-weight: 500; margin-bottom: 12px; }\n.apr-form-grid { display: grid; gap: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); }\n.apr-field { display: flex; flex-direction: column; gap: 6px; }\n.apr-field-full { grid-column: 1 \/ -1; }\n.apr-label, .apr-legend-label { color: var(--ink); font-size: 14px; font-weight: 600; }\n.apr-control, .apr-select { background: var(--surface); border: 1px solid #94a3b8; border-radius: 6px; color: var(--ink); height: 44px; padding: 9px 12px; width: 100%; }\n.apr-control:hover, .apr-select:hover { border-color: #64748b; }\n.apr-helper { color: var(--muted); font-size: 13px; font-weight: 500; line-height: 1.35; min-height: 36px; }\n.apr-error { color: #b91c1c; font-size: 13px; font-weight: 600; line-height: 1.3; min-height: 17px; }\n.apr-inline-grid { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }\n.apr-segment-field { border: 0; margin: 0; padding: 0; }\n.apr-segment-field .apr-legend-label { display: block; margin-bottom: 6px; }\n.apr-segments { background: var(--tint); border: 1px solid var(--border); border-radius: 6px; display: inline-flex; gap: 4px; padding: 4px; width: 100%; }\n.apr-segment-option { flex: 1 1 0; position: relative; }\n.apr-segment-option input { height: 1px; opacity: 0; position: absolute; width: 1px; }\n.apr-segment-option label { align-items: center; border-radius: 4px; color: var(--muted); display: flex; font-size: 13px; font-weight: 650; justify-content: center; min-height: 34px; padding: 6px 10px; }\n.apr-segment-option input:checked + label { background: var(--surface); box-shadow: 0 1px 2px rgba(15,23,42,.10); color: var(--ink); }\n.apr-segment-option input:focus-visible + label { outline: 3px solid rgba(29,78,216,.35); outline-offset: 1px; }\n.apr-results { display: flex; flex-direction: column; gap: 16px; }\n.apr-primary-card { background: var(--tint); border: 1px solid var(--border); border-radius: 8px; padding: 20px; }\n.apr-primary-label { color: var(--muted); font-size: 13px; font-weight: 650; margin-bottom: 4px; text-transform: uppercase; letter-spacing: .03em; }\n.apr-primary-value { color: var(--primary); font-size: 30px; font-weight: 700; line-height: 1.15; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }\n.apr-primary-note { color: var(--muted); font-size: 13px; font-weight: 500; margin: 8px 0 0; }\n.apr-result-grid { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }\n.apr-result-card { border: 1px solid var(--border); border-radius: 8px; padding: 14px; }\n.apr-result-label { color: var(--muted); font-size: 13px; font-weight: 600; margin-bottom: 4px; }\n.apr-result-value { color: var(--ink); font-size: 20px; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.25; overflow-wrap: anywhere; }\n.apr-live { height: 1px; overflow: hidden; position: absolute; width: 1px; clip: rect(1px,1px,1px,1px); white-space: nowrap; }\n.apr-section { margin-top: 24px; }\n.apr-section-head { margin-bottom: 12px; }\n.apr-section-head p { color: var(--muted); font-size: 13px; font-weight: 500; margin-bottom: 0; }\n.apr-chart-grid { align-items: start; display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); }\n.apr-chart-card { border: 1px solid var(--border); border-radius: 8px; display: flex; flex-direction: column; gap: 16px; padding: 18px; }\n.apr-chart-card h3 { margin-bottom: 0; }\n.apr-chart-intro { color: var(--muted); font-size: 13px; font-weight: 500; margin-bottom: 0; }\n.apr-chart-cluster { align-items: center; display: grid; gap: 24px; grid-template-columns: minmax(220px, 320px) minmax(0, max-content); justify-content: center; }\n.apr-line-cluster { display: grid; gap: 18px; grid-template-columns: minmax(0, 1fr); }\n.apr-plot { align-items: center; display: flex; justify-content: center; min-height: 0; width: 100%; }\n.apr-donut { display: block; height: auto; max-width: 320px; width: 100%; }\n.apr-line-svg { display: block; height: auto; max-height: 360px; width: 100%; }\n.apr-empty { background: var(--tint); border: 1px dashed #94a3b8; border-radius: 6px; color: var(--muted); font-size: 13px; font-weight: 600; padding: 16px; text-align: center; width: 100%; }\n.apr-legend { display: grid; gap: 8px; justify-content: start; }\n.apr-legend-row { align-items: center; display: grid; gap: 8px 12px; grid-template-columns: 12px max-content max-content max-content; justify-content: start; }\n.apr-swatch { border-radius: 2px; height: 12px; width: 12px; }\n.apr-legend-name { color: var(--ink); font-size: 13px; font-weight: 600; }\n.apr-legend-value, .apr-legend-percent { color: var(--muted); font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }\n.apr-chart-caption, .apr-table-note { background: var(--tint); border: 1px solid var(--border); border-radius: 6px; color: var(--muted); font-size: 13px; font-weight: 500; line-height: 1.45; margin-top: 16px; padding: 10px 12px; }\n.apr-safe-stack .apr-chart-cluster { gap: 16px; grid-template-columns: minmax(0, 1fr); }\n.apr-safe-stack .apr-legend { justify-content: center; }\n.apr-safe-stack .apr-chart-caption { margin-top: 20px; }\n.apr-mini-table-wrap, .apr-table-wrap { max-width: 100%; overflow-x: auto; }\n.apr-mini-table-wrap { margin-top: 4px; }\n.apr-table { border-collapse: collapse; min-width: 720px; width: 100%; }\n.apr-mini-table { min-width: 480px; }\n.apr-table th, .apr-table td { border-bottom: 1px solid var(--border); padding: 10px 12px; text-align: right; vertical-align: middle; }\n.apr-table th { background: var(--tint); color: var(--ink); font-size: 13px; font-weight: 700; white-space: nowrap; }\n.apr-table td { color: var(--ink); font-size: 13px; font-weight: 500; font-variant-numeric: tabular-nums; white-space: nowrap; }\n.apr-table th:first-child, .apr-table td:first-child { text-align: left; }\n.apr-safe-table-stack .apr-table-note { margin-top: 20px; }\n.apr-table-tools { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }\n.apr-table-toggle { background: var(--surface); border: 1px solid #94a3b8; border-radius: 6px; color: var(--muted); font-size: 13px; font-weight: 650; min-height: 38px; padding: 7px 12px; }\n.apr-table-toggle[aria-pressed=\"true\"] { background: var(--primary); border-color: var(--primary); color: #ffffff; }\n.apr-education { border-top: 1px solid var(--border); margin-top: 32px; padding-top: 24px; }\n.apr-education-grid { display: grid; gap: 24px; grid-template-columns: minmax(0, 1fr); }\n.apr-education p, .apr-education li { color: #334155; }\n.apr-education ul { margin: 0 0 16px; padding-left: 22px; }\n.apr-education li + li { margin-top: 8px; }\n.apr-callout { background: var(--tint); border: 1px solid var(--border); border-left: 4px solid var(--primary); border-radius: 6px; margin: 16px 0; padding: 12px 14px; }\n.apr-sr-only { clip: rect(0,0,0,0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }\n.apr-hidden[hidden] { display: none !important; }\n@container (min-width: 900px) {\n  .apr-workspace { grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); }\n  .apr-chart-grid { grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); }\n}\n@container (max-width: 639px) {\n  .apr-calculator { padding: 16px; }\n  .apr-toolbar { align-items: stretch; }\n  .apr-btn { flex: 1 1 auto; }\n  .apr-mode-switch { margin-left: 0; width: 100%; }\n  .apr-mode-btn { flex: 1 1 0; }\n  .apr-form-grid, .apr-inline-grid { grid-template-columns: minmax(0, 1fr); }\n  .apr-result-grid { grid-template-columns: minmax(0, 1fr); }\n  .apr-chart-cluster { gap: 16px; grid-template-columns: minmax(0, 1fr); }\n  .apr-legend { justify-content: center; }\n  .apr-legend-row { grid-template-columns: 12px minmax(0, max-content) max-content max-content; }\n  .apr-chart-caption, .apr-table-note { margin-top: 12px; }\n  .apr-panel, .apr-chart-card { padding: 16px; }\n}\n@container (max-width: 380px) {\n  .apr-calculator { padding: 12px; }\n  .apr-toolbar { gap: 8px; }\n  .apr-download { flex-basis: 100%; }\n  .apr-legend-row { gap: 6px 8px; grid-template-columns: 12px minmax(0, 1fr); }\n  .apr-legend-value, .apr-legend-percent { grid-column: 2; }\n  .apr-helper { min-height: 0; }\n}\n\u003c\/style\u003e\n\u003cdiv class=\"apr-calculator\" data-calculator-root\u003e\n  \u003cheader class=\"apr-header\"\u003e\n    \u003ch2\u003eAPR Calculator\u003c\/h2\u003e\n    \u003cp class=\"apr-subtitle\"\u003eEstimate the true annual cost of a general loan or U.S. mortgage after interest, financed charges, upfront fees, points, and recurring mortgage insurance.\u003c\/p\u003e\n    \u003cdiv class=\"apr-pills\" aria-label=\"Live loan summary\"\u003e\n      \u003cspan class=\"apr-pill\"\u003eMode \u003cstrong class=\"apr-pill-mode\"\u003eGeneral loan\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"apr-pill\"\u003eReal APR \u003cstrong class=\"apr-pill-apr\"\u003e6.563%\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"apr-pill\"\u003ePayment \u003cstrong class=\"apr-pill-payment\"\u003e$1,110.21\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"apr-pill\"\u003ePeriods \u003cstrong class=\"apr-pill-periods\"\u003e120\u003c\/strong\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/header\u003e\n\n  \u003cdiv class=\"apr-toolbar\" aria-label=\"Calculator actions\"\u003e\n    \u003cbutton class=\"apr-btn apr-download\" type=\"button\"\u003e\u003cspan class=\"apr-icon\" aria-hidden=\"true\"\u003e⇩\u003c\/span\u003e\u003cspan\u003eDownload Excel\u003c\/span\u003e\u003c\/button\u003e\n    \u003cbutton class=\"apr-btn apr-reset\" type=\"button\"\u003eReset\u003c\/button\u003e\n    \u003cdiv class=\"apr-mode-switch\" role=\"group\" aria-label=\"Calculator mode\"\u003e\n      \u003cbutton class=\"apr-mode-btn\" type=\"button\" data-apr-mode=\"general\" aria-pressed=\"true\"\u003eGeneral loan\u003c\/button\u003e\n      \u003cbutton class=\"apr-mode-btn\" type=\"button\" data-apr-mode=\"mortgage\" aria-pressed=\"false\"\u003eMortgage\u003c\/button\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"apr-workspace\"\u003e\n    \u003csection class=\"apr-panel apr-input-panel\" aria-labelledby=\"apr-inputs-title\"\u003e\n      \u003cdiv class=\"apr-panel-title\"\u003e\n        \u003ch3 id=\"apr-inputs-title\"\u003eLoan assumptions\u003c\/h3\u003e\n        \u003cp\u003eResults update as values change.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"apr-general-fields\"\u003e\n        \u003cdiv class=\"apr-form-grid\"\u003e\n          \u003cdiv class=\"apr-field apr-field-full\"\u003e\n            \u003clabel class=\"apr-label\" for=\"apr-loan-amount\"\u003eLoan amount\u003c\/label\u003e\n            \u003cinput class=\"apr-control apr-money-input\" id=\"apr-loan-amount\" inputmode=\"decimal\" type=\"text\" value=\"100000\" aria-describedby=\"apr-loan-amount-help apr-loan-amount-error\"\u003e\n            \u003cdiv class=\"apr-helper\" id=\"apr-loan-amount-help\"\u003eCash principal made available before fees.\u003c\/div\u003e\n            \u003cdiv class=\"apr-error\" id=\"apr-loan-amount-error\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"apr-field\"\u003e\n            \u003clabel class=\"apr-label\" for=\"apr-term-years\"\u003eLoan term, years\u003c\/label\u003e\n            \u003cinput class=\"apr-control apr-number-input\" id=\"apr-term-years\" inputmode=\"decimal\" type=\"text\" value=\"10\" aria-describedby=\"apr-term-years-help apr-term-years-error\"\u003e\n            \u003cdiv class=\"apr-helper\" id=\"apr-term-years-help\"\u003eWhole or partial years.\u003c\/div\u003e\n            \u003cdiv class=\"apr-error\" id=\"apr-term-years-error\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"apr-field\"\u003e\n            \u003clabel class=\"apr-label\" for=\"apr-term-months\"\u003eAdditional months\u003c\/label\u003e\n            \u003cinput class=\"apr-control apr-number-input\" id=\"apr-term-months\" inputmode=\"numeric\" type=\"text\" value=\"0\" aria-describedby=\"apr-term-months-help apr-term-months-error\"\u003e\n            \u003cdiv class=\"apr-helper\" id=\"apr-term-months-help\"\u003eUse 0–11 months in addition to years.\u003c\/div\u003e\n            \u003cdiv class=\"apr-error\" id=\"apr-term-months-error\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"apr-field\"\u003e\n            \u003clabel class=\"apr-label\" for=\"apr-interest-rate\"\u003eInterest rate\u003c\/label\u003e\n            \u003cinput class=\"apr-control apr-percent-input\" id=\"apr-interest-rate\" inputmode=\"decimal\" type=\"text\" value=\"6\" aria-describedby=\"apr-interest-rate-help apr-interest-rate-error\"\u003e\n            \u003cdiv class=\"apr-helper\" id=\"apr-interest-rate-help\"\u003eNominal annual rate before fees.\u003c\/div\u003e\n            \u003cdiv class=\"apr-error\" id=\"apr-interest-rate-error\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"apr-field\"\u003e\n            \u003clabel class=\"apr-label\" for=\"apr-compound\"\u003eInterest compounds\u003c\/label\u003e\n            \u003cselect class=\"apr-select\" id=\"apr-compound\" aria-describedby=\"apr-compound-help\"\u003e\n              \u003coption value=\"annual\"\u003eAnnually\u003c\/option\u003e\n              \u003coption value=\"semiannual\"\u003eSemi-annually\u003c\/option\u003e\n              \u003coption value=\"quarterly\"\u003eQuarterly\u003c\/option\u003e\n              \u003coption value=\"monthly\" selected\u003eMonthly\u003c\/option\u003e\n              \u003coption value=\"semimonthly\"\u003eSemi-monthly\u003c\/option\u003e\n              \u003coption value=\"biweekly\"\u003eBiweekly\u003c\/option\u003e\n              \u003coption value=\"weekly\"\u003eWeekly\u003c\/option\u003e\n              \u003coption value=\"daily\"\u003eDaily\u003c\/option\u003e\n              \u003coption value=\"continuous\"\u003eContinuously\u003c\/option\u003e\n            \u003c\/select\u003e\n            \u003cdiv class=\"apr-helper\" id=\"apr-compound-help\"\u003eDetermines the equivalent rate per payment period.\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"apr-field apr-field-full\"\u003e\n            \u003clabel class=\"apr-label\" for=\"apr-payback\"\u003ePay back every\u003c\/label\u003e\n            \u003cselect class=\"apr-select\" id=\"apr-payback\" aria-describedby=\"apr-payback-help\"\u003e\n              \u003coption value=\"day\"\u003eDay\u003c\/option\u003e\n              \u003coption value=\"week\"\u003eWeek\u003c\/option\u003e\n              \u003coption value=\"biweek\"\u003e2 weeks\u003c\/option\u003e\n              \u003coption value=\"halfmonth\"\u003eHalf month\u003c\/option\u003e\n              \u003coption value=\"month\" selected\u003eMonth\u003c\/option\u003e\n              \u003coption value=\"quarter\"\u003eQuarter\u003c\/option\u003e\n              \u003coption value=\"halfyear\"\u003e6 months\u003c\/option\u003e\n              \u003coption value=\"year\"\u003eYear\u003c\/option\u003e\n            \u003c\/select\u003e\n            \u003cdiv class=\"apr-helper\" id=\"apr-payback-help\"\u003ePayment frequency used for the installment schedule and APR annualization.\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"apr-field\"\u003e\n            \u003clabel class=\"apr-label\" for=\"apr-loaned-fees\"\u003eLoaned fees\u003c\/label\u003e\n            \u003cinput class=\"apr-control apr-money-input\" id=\"apr-loaned-fees\" inputmode=\"decimal\" type=\"text\" value=\"0\" aria-describedby=\"apr-loaned-fees-help apr-loaned-fees-error\"\u003e\n            \u003cdiv class=\"apr-helper\" id=\"apr-loaned-fees-help\"\u003eCharges added to the financed balance.\u003c\/div\u003e\n            \u003cdiv class=\"apr-error\" id=\"apr-loaned-fees-error\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"apr-field\"\u003e\n            \u003clabel class=\"apr-label\" for=\"apr-upfront-fees\"\u003eUpfront fees\u003c\/label\u003e\n            \u003cinput class=\"apr-control apr-money-input\" id=\"apr-upfront-fees\" inputmode=\"decimal\" type=\"text\" value=\"2500\" aria-describedby=\"apr-upfront-fees-help apr-upfront-fees-error\"\u003e\n            \u003cdiv class=\"apr-helper\" id=\"apr-upfront-fees-help\"\u003eCash charges paid separately at origination.\u003c\/div\u003e\n            \u003cdiv class=\"apr-error\" id=\"apr-upfront-fees-error\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"apr-mortgage-fields apr-hidden\" hidden\u003e\n        \u003cdiv class=\"apr-form-grid\"\u003e\n          \u003cdiv class=\"apr-field apr-field-full\"\u003e\n            \u003clabel class=\"apr-label\" for=\"apr-house-value\"\u003eHouse value\u003c\/label\u003e\n            \u003cinput class=\"apr-control apr-money-input\" id=\"apr-house-value\" inputmode=\"decimal\" type=\"text\" value=\"350000\" aria-describedby=\"apr-house-value-help apr-house-value-error\"\u003e\n            \u003cdiv class=\"apr-helper\" id=\"apr-house-value-help\"\u003ePurchase price used to derive the mortgage balance.\u003c\/div\u003e\n            \u003cdiv class=\"apr-error\" id=\"apr-house-value-error\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"apr-field apr-field-full\"\u003e\n            \u003cfieldset class=\"apr-segment-field\"\u003e\n              \u003clegend class=\"apr-legend-label\"\u003eDown payment unit\u003c\/legend\u003e\n              \u003cdiv class=\"apr-segments\"\u003e\n                \u003cspan class=\"apr-segment-option\"\u003e\u003cinput id=\"apr-down-unit-dollar\" name=\"apr-down-unit\" type=\"radio\" value=\"dollar\" checked\u003e\u003clabel for=\"apr-down-unit-dollar\"\u003eDollar amount\u003c\/label\u003e\u003c\/span\u003e\n                \u003cspan class=\"apr-segment-option\"\u003e\u003cinput id=\"apr-down-unit-percent\" name=\"apr-down-unit\" type=\"radio\" value=\"percent\"\u003e\u003clabel for=\"apr-down-unit-percent\"\u003ePercent\u003c\/label\u003e\u003c\/span\u003e\n              \u003c\/div\u003e\n            \u003c\/fieldset\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"apr-field apr-field-full\"\u003e\n            \u003clabel class=\"apr-label\" for=\"apr-down-payment\"\u003eDown payment\u003c\/label\u003e\n            \u003cinput class=\"apr-control apr-money-input\" id=\"apr-down-payment\" inputmode=\"decimal\" type=\"text\" value=\"70000\" aria-describedby=\"apr-down-payment-help apr-down-payment-error\"\u003e\n            \u003cdiv class=\"apr-helper\" id=\"apr-down-payment-help\"\u003eCash paid toward the purchase price.\u003c\/div\u003e\n            \u003cdiv class=\"apr-error\" id=\"apr-down-payment-error\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"apr-field\"\u003e\n            \u003clabel class=\"apr-label\" for=\"apr-mortgage-years\"\u003eLoan term, years\u003c\/label\u003e\n            \u003cinput class=\"apr-control apr-number-input\" id=\"apr-mortgage-years\" inputmode=\"decimal\" type=\"text\" value=\"30\" aria-describedby=\"apr-mortgage-years-help apr-mortgage-years-error\"\u003e\n            \u003cdiv class=\"apr-helper\" id=\"apr-mortgage-years-help\"\u003eTypical fixed terms are 15, 20, or 30 years.\u003c\/div\u003e\n            \u003cdiv class=\"apr-error\" id=\"apr-mortgage-years-error\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"apr-field\"\u003e\n            \u003clabel class=\"apr-label\" for=\"apr-mortgage-rate\"\u003eInterest rate\u003c\/label\u003e\n            \u003cinput class=\"apr-control apr-percent-input\" id=\"apr-mortgage-rate\" inputmode=\"decimal\" type=\"text\" value=\"6.2\" aria-describedby=\"apr-mortgage-rate-help apr-mortgage-rate-error\"\u003e\n            \u003cdiv class=\"apr-helper\" id=\"apr-mortgage-rate-help\"\u003eNominal annual mortgage rate.\u003c\/div\u003e\n            \u003cdiv class=\"apr-error\" id=\"apr-mortgage-rate-error\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"apr-field\"\u003e\n            \u003clabel class=\"apr-label\" for=\"apr-loan-fees\"\u003eLoan fees\u003c\/label\u003e\n            \u003cinput class=\"apr-control apr-money-input\" id=\"apr-loan-fees\" inputmode=\"decimal\" type=\"text\" value=\"3500\" aria-describedby=\"apr-loan-fees-help apr-loan-fees-error\"\u003e\n            \u003cdiv class=\"apr-helper\" id=\"apr-loan-fees-help\"\u003eAPR-eligible lender and closing charges paid upfront.\u003c\/div\u003e\n            \u003cdiv class=\"apr-error\" id=\"apr-loan-fees-error\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"apr-field\"\u003e\n            \u003clabel class=\"apr-label\" for=\"apr-points\"\u003ePoints\u003c\/label\u003e\n            \u003cinput class=\"apr-control apr-percent-input\" id=\"apr-points\" inputmode=\"decimal\" type=\"text\" value=\"0.5\" aria-describedby=\"apr-points-help apr-points-error\"\u003e\n            \u003cdiv class=\"apr-helper\" id=\"apr-points-help\"\u003eOne point equals 1% of the mortgage principal.\u003c\/div\u003e\n            \u003cdiv class=\"apr-error\" id=\"apr-points-error\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"apr-field apr-field-full\"\u003e\n            \u003clabel class=\"apr-label\" for=\"apr-pmi\"\u003ePMI insurance per year\u003c\/label\u003e\n            \u003cinput class=\"apr-control apr-money-input\" id=\"apr-pmi\" inputmode=\"decimal\" type=\"text\" value=\"0\" aria-describedby=\"apr-pmi-help apr-pmi-error\"\u003e\n            \u003cdiv class=\"apr-helper\" id=\"apr-pmi-help\"\u003eAnnual recurring mortgage insurance included in the cash-flow APR estimate.\u003c\/div\u003e\n            \u003cdiv class=\"apr-error\" id=\"apr-pmi-error\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/section\u003e\n\n    \u003csection class=\"apr-panel apr-results\" aria-labelledby=\"apr-results-title\"\u003e\n      \u003cdiv class=\"apr-panel-title\"\u003e\n        \u003ch3 id=\"apr-results-title\"\u003eLive results\u003c\/h3\u003e\n        \u003cp class=\"apr-result-context\"\u003eGeneral loan cost\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"apr-primary-card\"\u003e\n        \u003cdiv class=\"apr-primary-label\"\u003eReal APR\u003c\/div\u003e\n        \u003cdiv class=\"apr-primary-value\"\u003e6.563%\u003c\/div\u003e\n        \u003cp class=\"apr-primary-note\"\u003eAnnualized periodic rate that equates net proceeds with scheduled payments.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"apr-result-grid\"\u003e\n        \u003cdiv class=\"apr-result-card\"\u003e\n\u003cdiv class=\"apr-result-label apr-result-label-a\"\u003eAmount financed\u003c\/div\u003e\n\u003cdiv class=\"apr-result-value apr-result-a\"\u003e$100,000.00\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"apr-result-card\"\u003e\n\u003cdiv class=\"apr-result-label apr-result-label-b\"\u003eUpfront out-of-pocket fees\u003c\/div\u003e\n\u003cdiv class=\"apr-result-value apr-result-b\"\u003e$2,500.00\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"apr-result-card\"\u003e\n\u003cdiv class=\"apr-result-label apr-result-label-c\"\u003ePayment every month\u003c\/div\u003e\n\u003cdiv class=\"apr-result-value apr-result-c\"\u003e$1,110.21\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"apr-result-card\"\u003e\n\u003cdiv class=\"apr-result-label apr-result-label-d\"\u003eTotal of 120 payments\u003c\/div\u003e\n\u003cdiv class=\"apr-result-value apr-result-d\"\u003e$133,224.60\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"apr-result-card\"\u003e\n\u003cdiv class=\"apr-result-label apr-result-label-e\"\u003eTotal interest\u003c\/div\u003e\n\u003cdiv class=\"apr-result-value apr-result-e\"\u003e$33,224.60\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"apr-result-card\"\u003e\n\u003cdiv class=\"apr-result-label apr-result-label-f\"\u003eAll payments and fees\u003c\/div\u003e\n\u003cdiv class=\"apr-result-value apr-result-f\"\u003e$135,724.60\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"apr-result-card apr-extra-result\"\u003e\n\u003cdiv class=\"apr-result-label apr-result-label-g\"\u003eAPR premium over rate\u003c\/div\u003e\n\u003cdiv class=\"apr-result-value apr-result-g\"\u003e0.563 pp\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"apr-result-card apr-extra-result\"\u003e\n\u003cdiv class=\"apr-result-label apr-result-label-h\"\u003eNet proceeds\u003c\/div\u003e\n\u003cdiv class=\"apr-result-value apr-result-h\"\u003e$97,500.00\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"apr-live\" aria-live=\"polite\"\u003eReal APR 6.563 percent; payment $1,110.21; 120 payments.\u003c\/div\u003e\n    \u003c\/section\u003e\n  \u003c\/div\u003e\n\n  \u003csection class=\"apr-section apr-breakdown\" aria-labelledby=\"apr-breakdown-title\"\u003e\n    \u003cdiv class=\"apr-section-head\"\u003e\n      \u003ch2 id=\"apr-breakdown-title\"\u003eCost breakdown and payoff path\u003c\/h2\u003e\n      \u003cp\u003eBoth visuals are generated from the same live amortization model used by the results and workbook.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"apr-chart-grid\"\u003e\n      \u003carticle class=\"apr-chart-card apr-donut-card\"\u003e\n        \u003ch3\u003eLifetime cost composition\u003c\/h3\u003e\n        \u003cp class=\"apr-chart-intro apr-donut-intro\"\u003ePrincipal, interest, and fees as shares of all-in cost.\u003c\/p\u003e\n        \u003cdiv class=\"apr-chart-cluster\"\u003e\n          \u003cdiv class=\"apr-plot apr-donut-plot\"\u003e\u003c\/div\u003e\n          \u003cdiv class=\"apr-legend apr-donut-legend\" aria-label=\"Cost breakdown legend\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"apr-mini-table-wrap\"\u003e\n          \u003ctable class=\"apr-table apr-mini-table\"\u003e\n            \u003cthead\u003e\u003ctr\u003e\n\u003cth\u003eCategory\u003c\/th\u003e\n\u003cth\u003eAmount\u003c\/th\u003e\n\u003cth\u003eShare\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n            \u003ctbody class=\"apr-breakdown-body\"\u003e\u003c\/tbody\u003e\n          \u003c\/table\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"apr-chart-caption apr-donut-caption\"\u003eFees are small relative to principal, but they can materially raise APR because they reduce the value received at origination.\u003c\/div\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"apr-chart-card apr-line-card\"\u003e\n        \u003ch3\u003eBalance and cumulative interest\u003c\/h3\u003e\n        \u003cp class=\"apr-chart-intro apr-line-intro\"\u003eYear-end loan balance compared with interest accumulated to date.\u003c\/p\u003e\n        \u003cdiv class=\"apr-line-cluster\"\u003e\n          \u003cdiv class=\"apr-plot apr-line-plot\"\u003e\u003c\/div\u003e\n          \u003cdiv class=\"apr-legend apr-line-legend\" aria-label=\"Payoff chart legend\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"apr-chart-caption apr-line-caption\"\u003eThe balance generally falls slowly at first because a larger share of early payments goes to interest.\u003c\/div\u003e\n        \u003cdiv class=\"apr-sr-only apr-line-accessible\"\u003e\u003c\/div\u003e\n      \u003c\/article\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"apr-section apr-table-section\" aria-labelledby=\"apr-schedule-title\"\u003e\n    \u003cdiv class=\"apr-section-head\"\u003e\n      \u003ch2 id=\"apr-schedule-title\"\u003eAmortization schedule\u003c\/h2\u003e\n      \u003cp\u003eSwitch between annual summaries and every scheduled installment.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"apr-panel apr-table-card\"\u003e\n      \u003cdiv class=\"apr-table-tools\" role=\"group\" aria-label=\"Schedule detail\"\u003e\n        \u003cbutton class=\"apr-table-toggle\" type=\"button\" data-apr-table-view=\"annual\" aria-pressed=\"true\"\u003eAnnual summary\u003c\/button\u003e\n        \u003cbutton class=\"apr-table-toggle\" type=\"button\" data-apr-table-view=\"detail\" aria-pressed=\"false\"\u003ePayment detail\u003c\/button\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"apr-table-wrap\"\u003e\n        \u003ctable class=\"apr-table apr-schedule-table\"\u003e\n          \u003cthead class=\"apr-schedule-head\"\u003e\u003c\/thead\u003e\n          \u003ctbody class=\"apr-schedule-body\"\u003e\u003c\/tbody\u003e\n        \u003c\/table\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"apr-table-note\"\u003eAmounts are calculated with full precision and rounded only for display. The final installment is adjusted by fractions of a cent when necessary so the ending balance does not become negative.\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\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    \u003cdiv class=\"apr-education-grid\"\u003e\n      \u003cdiv\u003e\n        \u003ch3\u003eWhat this calculator estimates\u003c\/h3\u003e\n        \u003cp\u003eAnnual percentage rate is designed to express borrowing cost as one yearly rate. Unlike the stated interest rate, a real APR estimate also considers qualifying finance charges and the timing of the cash flows. The calculator first builds the contractual payment from the financed balance, stated rate, compounding convention, payment frequency, and term. It then solves for the periodic rate that makes the present value of all scheduled payments equal to the amount of value actually received by the borrower. That periodic rate is annualized to produce the displayed APR.\u003c\/p\u003e\n        \u003cp\u003eThe general-loan mode is appropriate for fixed-payment personal, auto, equipment, or business loans where fees may either be added to the balance or paid upfront. Mortgage mode uses monthly payments and adds house value, down payment, points, lender fees, and annual private mortgage insurance. The estimate is a planning tool rather than a lender disclosure. Formal U.S. disclosures can depend on fee classifications and regulatory conventions described in \u003ca href=\"https:\/\/www.consumerfinance.gov\/rules-policy\/regulations\/1026\/22\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRegulation Z guidance from the CFPB\u003c\/a\u003e.\u003c\/p\u003e\n\n        \u003ch3\u003eGeneral-loan inputs\u003c\/h3\u003e\n        \u003cul\u003e\n          \u003cli\u003e\n\u003cstrong\u003eLoan amount\u003c\/strong\u003e is the cash principal requested. Enter the amount before financed or prepaid charges. A larger amount raises the payment and total interest in dollars, although APR may remain similar when fees scale proportionally.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eLoan term\u003c\/strong\u003e combines years and additional months. A longer term usually lowers each payment but increases lifetime interest. Additional months should be between 0 and 11; use a decimal year only when the contract itself is stated that way.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eInterest rate\u003c\/strong\u003e is the nominal annual rate before fees. A higher rate raises the periodic payment, total interest, and normally the real APR. Do not enter the lender’s disclosed APR in this field unless there are no extra finance charges and you are testing a no-fee case.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eInterest compounds\u003c\/strong\u003e controls how the annual rate is converted to the payment period. More frequent compounding can increase the effective periodic cost. \u003cstrong\u003ePay back every\u003c\/strong\u003e controls installment frequency and the number of periods. The two frequencies can differ, so the model converts the compounding rate into an equivalent rate for each payment interval.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eLoaned fees\u003c\/strong\u003e are charges rolled into the balance. They increase the financed amount and therefore accrue interest. \u003cstrong\u003eUpfront fees\u003c\/strong\u003e are paid separately and reduce net proceeds without increasing the contractual balance. Either type generally pushes APR above the stated rate, with upfront fees having a particularly visible effect on short terms.\u003c\/li\u003e\n        \u003c\/ul\u003e\n\n        \u003ch3\u003eMortgage inputs\u003c\/h3\u003e\n        \u003cul\u003e\n          \u003cli\u003e\n\u003cstrong\u003eHouse value\u003c\/strong\u003e is the purchase price. \u003cstrong\u003eDown payment\u003c\/strong\u003e can be entered as dollars or a percentage; changing the unit converts the current value rather than only changing its label. A larger down payment reduces the mortgage principal, monthly payment, and interest in dollars.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eLoan term\u003c\/strong\u003e and \u003cstrong\u003einterest rate\u003c\/strong\u003e drive the principal-and-interest payment. Shorter terms normally create higher monthly payments but less total interest. Mortgage calculations use monthly installments and monthly rate conversion.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eLoan fees\u003c\/strong\u003e represent qualifying upfront charges. \u003cstrong\u003ePoints\u003c\/strong\u003e are entered as a percent of the mortgage principal, with one point equal to 1%. Point\ns reduce the value received for APR purposes and are shown separately in the results because they are prepaid interest or financing cost.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003ePMI insurance per year\u003c\/strong\u003e is divided into monthly installments and included in the cash-flow APR estimate for the full modeled term. In practice, PMI may terminate before maturity, so use a separate scenario with a shorter expected PMI duration when comparing lender disclosures.\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv\u003e\n        \u003ch3\u003eUnderstanding every result\u003c\/h3\u003e\n        \u003cp\u003e\u003cstrong\u003eReal APR\u003c\/strong\u003e is the primary comparison rate. When it equals the stated rate, fees are zero and the payment\/compounding conventions are aligned. A higher APR indicates that charges or timing increase the effective borrowing cost. The \u003cstrong\u003eAPR premium over rate\u003c\/strong\u003e shows the difference in percentage points, which is useful when comparing two offers with similar note rates.\u003c\/p\u003e\n        \u003cp\u003e\u003cstrong\u003eAmount financed\u003c\/strong\u003e is the balance used to calculate payments. In general-loan mode it includes loaned fees; in mortgage mode it is the house value minus the down payment. \u003cstrong\u003eNet proceeds\u003c\/strong\u003e is the economic value received after upfront APR charges. A low net-proceeds figure relative to the balance is a warning that fees are substantial.\u003c\/p\u003e\n        \u003cp\u003e\u003cstrong\u003ePeriodic payment\u003c\/strong\u003e is the scheduled installment. Mortgage mode includes monthly PMI when entered. \u003cstrong\u003eTotal of payments\u003c\/strong\u003e is the sum of installments over the full term. \u003cstrong\u003eTotal interest\u003c\/strong\u003e is interest generated by the amortizing principal; recurring insurance and upfront fees are kept in separate categories. \u003cstrong\u003eAll-in cost\u003c\/strong\u003e combines principal, interest, financed fees, upfront charges, points, and recurring insurance as applicable.\u003c\/p\u003e\n        \u003cp\u003eThe donut uses those same categories, so its segments cross-foot to the all-in total. A zero-value category is omitted rather than drawn as a fake slice. The line chart plots year-end balance and cumulative interest. The annual and payment-detail tables expose the exact schedule behind the chart: opening balance, payment, principal reduction, interest, recurring fee, and ending balance. A zero ending balance confirms the schedule fully amortizes.\u003c\/p\u003e\n\n        \u003ch3\u003ePractical comparison method\u003c\/h3\u003e\n        \u003cp\u003eUse identical loan amounts and terms when comparing offers, then enter each lender’s rate and APR-eligible fees. Compare the real APR, payment, and all-in cost together. APR is best for standardizing cost, while payment shows near-term affordability and total interest shows long-run dollars. The CFPB explains the distinction between rate and APR for \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\"\u003egeneral loans\u003c\/a\u003e and \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\"\u003emortgages\u003c\/a\u003e.\u003c\/p\u003e\n        \u003cdiv class=\"apr-callout\"\u003eA lower note rate is not automatically the cheaper offer. A loan with discount points or large origination charges may have a lower payment but a higher cost if it is refinanced or paid off early.\u003c\/div\u003e\n        \u003cp\u003eFor mortgages, compare Loan Estimates for the same loan type, term, and lock period. The CFPB’s \u003ca href=\"https:\/\/www.consumerfinance.gov\/owning-a-home\/loan-estimate\/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eLoan Estimate explainer\u003c\/a\u003e shows where APR and other comparison measures appear. For market context, the Federal Reserve’s \u003ca href=\"https:\/\/www.federalreserve.gov\/releases\/g19\/current\/default.htm\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eG.19 consumer credit release\u003c\/a\u003e publishes selected APR statistics for common credit products.\u003c\/p\u003e\n\n        \u003ch3\u003eCommon mistakes and model limits\u003c\/h3\u003e\n        \u003cul\u003e\n          \u003cli\u003eDo not include optional products, late fees, or penalties unless they are required finance charges for the specific credit offer.\u003c\/li\u003e\n          \u003cli\u003eDo not double-count a fee as both loaned and upfront. A financed fee increases the balance; a prepaid fee reduces net proceeds.\u003c\/li\u003e\n          \u003cli\u003eDo not compare APRs across different terms without also reviewing total interest and expected holding period. Upfront costs are spread over the modeled term, so an early payoff can make the realized cost higher.\u003c\/li\u003e\n          \u003cli\u003eFixed-rate assumptions do not represent adjustable-rate resets, balloons, irregular first periods, skipped payments, taxes, escrow, or changing PMI. Use lender disclosures for regulated decisions and professional advice for complex transactions.\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\u003c\/div\u003e","brand":"FinancialModelsLab","offers":[{"title":"Default Title","offer_id":49909479702771,"sku":"apr-calculator","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/apr-calculator.webp?v=1783935354","url":"https:\/\/financialmodelslab.com\/products\/apr-calculator","provider":"Financial Models Lab","version":"1.0","type":"link"}