{"product_id":"compound-growth","title":"Compound Growth Calculator","description":"\u003cstyle\u003e\n.cgr-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: cgr \/ inline-size;\n  font-family: Arial, Helvetica, sans-serif;\n  font-size: 15px;\n  line-height: 1.55;\n  margin: 0 auto;\n  max-width: 1200px;\n  overflow-wrap: anywhere;\n  padding: 24px;\n  width: 100%;\n}\n.cgr-calculator, .cgr-calculator *, .cgr-calculator *::before, .cgr-calculator *::after { box-sizing: border-box; }\n.cgr-calculator * { min-width: 0; }\n.cgr-calculator h2, .cgr-calculator h3, .cgr-calculator p { margin-top: 0; }\n.cgr-calculator h2 { font-size: 24px; font-weight: 700; line-height: 1.25; margin-bottom: 8px; }\n.cgr-calculator h3 { font-size: 18px; font-weight: 650; line-height: 1.35; margin-bottom: 12px; }\n.cgr-header { border-bottom: 1px solid var(--border); padding-bottom: 16px; }\n.cgr-header-copy { color: var(--muted); margin-bottom: 16px; max-width: 820px; }\n.cgr-pills { display: flex; flex-wrap: wrap; gap: 8px; }\n.cgr-pill { align-items: baseline; background: var(--tint); border: 1px solid var(--border); border-radius: 999px; color: var(--muted); display: inline-flex; font-size: 13px; font-weight: 500; gap: 6px; padding: 6px 10px; }\n.cgr-pill strong { color: var(--ink); font-variant-numeric: tabular-nums; font-weight: 700; }\n.cgr-toolbar { display: flex; flex-wrap: wrap; gap: 12px; padding: 16px 0 24px; }\n.cgr-button { align-items: center; border: 1px solid var(--border); border-radius: 6px; cursor: pointer; display: inline-flex; font: inherit; font-size: 15px; font-weight: 650; gap: 10px; justify-content: center; min-height: 44px; padding: 12px 18px; text-decoration: none; white-space: nowrap; }\n.cgr-button:focus-visible, .cgr-control:focus-visible, .cgr-segment-input:focus-visible + .cgr-segment-label, .cgr-calculator a:focus-visible, .cgr-calculator summary:focus-visible { outline: 3px solid rgba(29,78,216,.35); outline-offset: 2px; }\n.cgr-button-primary { background: var(--accent); border-color: var(--accent); color: #ffffff; }\n.cgr-button-primary:hover, .cgr-button-primary:active { background: var(--accent-hover); border-color: var(--accent-hover); }\n.cgr-button-secondary { background: var(--surface); color: var(--ink); }\n.cgr-button-secondary:hover { border-color: #94a3b8; box-shadow: 0 2px 5px rgba(15,23,42,.10); }\n.cgr-button-icon { display: inline-block; font-size: 18px; line-height: 1; }\n.cgr-workspace { display: grid; gap: 24px; grid-template-columns: 1fr; }\n.cgr-panel { background: var(--surface); border: 1px solid var(--border); border-radius: 8px; box-shadow: 0 1px 2px rgba(15,23,42,.06); padding: 20px; }\n.cgr-panel-title { align-items: center; display: flex; flex-wrap: wrap; gap: 8px 12px; justify-content: flex-start; margin-bottom: 16px; }\n.cgr-panel-title h3 { margin-bottom: 0; }\n.cgr-input-section + .cgr-input-section { border-top: 1px solid var(--border); margin-top: 24px; padding-top: 24px; }\n.cgr-input-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }\n.cgr-field { display: flex; flex-direction: column; gap: 6px; }\n.cgr-field-label, .cgr-fieldset legend { color: var(--ink); font-size: 14px; font-weight: 600; line-height: 1.35; }\n.cgr-control { appearance: none; background: var(--surface); border: 1px solid #cbd5e1; border-radius: 6px; color: var(--ink); font: inherit; font-size: 15px; min-height: 44px; padding: 10px 12px; width: 100%; }\n.cgr-control:hover { border-color: #94a3b8; }\n.cgr-control[aria-invalid=\"true\"] { border-color: #b91c1c; }\n.cgr-select-wrap { position: relative; }\n.cgr-select-wrap::after { color: var(--muted); content: \"▾\"; pointer-events: none; position: absolute; right: 12px; top: 50%; transform: translateY(-50%); }\n.cgr-select-wrap .cgr-control { padding-right: 34px; }\n.cgr-helper { color: var(--muted); font-size: 13px; font-weight: 500; line-height: 1.45; min-height: 19px; }\n.cgr-error { color: #991b1b; font-size: 13px; font-weight: 600; line-height: 1.4; min-height: 18px; }\n.cgr-fieldset { border: 0; margin: 0; padding: 0; }\n.cgr-segments { background: var(--tint); border: 1px solid var(--border); border-radius: 6px; display: inline-grid; gap: 4px; grid-auto-columns: 1fr; grid-auto-flow: column; padding: 4px; width: 100%; }\n.cgr-segment-input { height: 1px; opacity: 0; position: absolute; width: 1px; }\n.cgr-segment-label { align-items: center; border-radius: 4px; cursor: pointer; display: flex; font-size: 13px; font-weight: 650; justify-content: center; min-height: 34px; padding: 6px 10px; text-align: center; }\n.cgr-segment-input:checked + .cgr-segment-label { background: var(--surface); box-shadow: 0 1px 2px rgba(15,23,42,.12); color: var(--primary); }\n.cgr-results { display: grid; gap: 16px; }\n.cgr-primary-result { background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 8px; padding: 20px; }\n.cgr-primary-label { color: #1e3a8a; font-size: 13px; font-weight: 650; margin-bottom: 4px; }\n.cgr-primary-value { color: #172554; font-size: 30px; font-variant-numeric: tabular-nums; font-weight: 700; line-height: 1.2; }\n.cgr-primary-sub { color: #1e3a8a; font-size: 13px; font-weight: 500; margin-top: 6px; }\n.cgr-result-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); }\n.cgr-result-card { background: var(--tint); border: 1px solid var(--border); border-radius: 8px; padding: 14px; }\n.cgr-result-label { color: var(--muted); font-size: 13px; font-weight: 600; margin-bottom: 4px; }\n.cgr-result-value { color: var(--ink); font-size: 20px; font-variant-numeric: tabular-nums; font-weight: 700; line-height: 1.25; }\n.cgr-result-note { color: var(--muted); font-size: 13px; font-weight: 500; margin-top: 4px; }\n.cgr-live { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }\n.cgr-section { border-top: 1px solid var(--border); margin-top: 32px; padding-top: 32px; }\n.cgr-section-intro { color: var(--muted); margin-bottom: 16px; max-width: 860px; }\n.cgr-breakdown-cluster { align-items: center; display: grid; gap: 24px; justify-content: center; grid-template-columns: 1fr; }\n.cgr-donut-wrap { margin: 0 auto; max-width: 320px; position: relative; width: 100%; }\n.cgr-donut-svg { display: block; height: auto; max-width: 320px; overflow: visible; width: 100%; }\n.cgr-donut-center { align-items: center; display: flex; flex-direction: column; inset: 25%; justify-content: center; pointer-events: none; position: absolute; text-align: center; }\n.cgr-donut-center-value { font-size: 24px; font-variant-numeric: tabular-nums; font-weight: 700; line-height: 1.15; max-width: 100%; }\n.cgr-donut-center-label { color: var(--muted); font-size: 13px; font-weight: 600; line-height: 1.3; margin-top: 4px; }\n.cgr-legend { display: grid; gap: 10px; justify-content: center; }\n.cgr-legend-row { align-items: center; display: grid; gap: 8px 12px; grid-template-columns: 12px minmax(112px, auto) auto auto; justify-content: start; }\n.cgr-legend-swatch { border-radius: 3px; height: 12px; width: 12px; }\n.cgr-legend-name { color: var(--ink); font-size: 13px; font-weight: 600; }\n.cgr-legend-value, .cgr-legend-percent { color: var(--muted); font-size: 13px; font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }\n.cgr-chart-card { background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: 20px; }\n.cgr-chart-heading { margin-bottom: 16px; }\n.cgr-chart-heading h3 { margin-bottom: 6px; }\n.cgr-chart-subtitle { color: var(--muted); font-size: 13px; font-weight: 500; }\n.cgr-chart-plot { margin: 0 auto; max-width: 760px; width: 100%; }\n.cgr-line-svg { display: block; height: auto; overflow: visible; width: 100%; }\n.cgr-line-legend { display: flex; flex-wrap: wrap; gap: 10px 20px; justify-content: center; margin-top: 20px; }\n.cgr-line-legend-item { align-items: center; display: inline-grid; gap: 8px; grid-template-columns: 18px auto auto; }\n.cgr-line-key { border-radius: 99px; height: 4px; width: 18px; }\n.cgr-chart-caption, .cgr-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.55; margin-top: 16px; padding: 10px 12px; }\n.cgr-chart-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; }\n.cgr-safe-stack .cgr-breakdown-cluster { grid-template-columns: 1fr !important; row-gap: 20px; }\n.cgr-safe-stack .cgr-line-legend { margin-top: 24px; }\n.cgr-safe-stack .cgr-chart-caption { margin-top: 20px; }\n.cgr-breakdown-table { border-collapse: collapse; margin-top: 20px; min-width: 620px; width: 100%; }\n.cgr-table-wrap { border: 1px solid var(--border); border-radius: 6px; overflow-x: auto; width: 100%; }\n.cgr-table { border-collapse: collapse; min-width: 760px; width: 100%; }\n.cgr-table th, .cgr-table td, .cgr-breakdown-table th, .cgr-breakdown-table td { border-bottom: 1px solid var(--border); padding: 10px 12px; text-align: right; vertical-align: middle; }\n.cgr-table th, .cgr-breakdown-table th { background: #f1f5f9; color: var(--ink); font-size: 13px; font-weight: 700; white-space: nowrap; }\n.cgr-table td, .cgr-breakdown-table td { color: var(--ink); font-size: 13px; font-variant-numeric: tabular-nums; font-weight: 500; }\n.cgr-table th:first-child, .cgr-table td:first-child, .cgr-breakdown-table th:first-child, .cgr-breakdown-table td:first-child { text-align: left; }\n.cgr-table tbody tr:last-child td, .cgr-breakdown-table tbody tr:last-child td { border-bottom: 0; font-weight: 700; }\n.cgr-safe-table-stack .cgr-table-note { margin-top: 20px; }\n.cgr-education { max-width: 960px; }\n.cgr-education h3 { margin-top: 24px; }\n.cgr-education p { color: #334155; margin-bottom: 14px; }\n.cgr-education ul { color: #334155; margin: 0 0 16px; padding-left: 22px; }\n.cgr-education li + li { margin-top: 8px; }\n.cgr-education a { color: #1d4ed8; text-decoration: underline; text-underline-offset: 2px; }\n.cgr-education a:hover { color: #1e3a8a; }\n@container cgr (min-width: 640px) {\n  .cgr-breakdown-cluster { grid-template-columns: minmax(240px, 320px) minmax(280px, auto); }\n}\n@container cgr (min-width: 900px) {\n  .cgr-workspace { grid-template-columns: minmax(0, 1.08fr) minmax(340px, .92fr); }\n}\n@container cgr (max-width: 639px) {\n  .cgr-calculator { padding: 16px; }\n  .cgr-panel, .cgr-chart-card { padding: 16px; }\n  .cgr-toolbar .cgr-button { flex: 1 1 100%; }\n  .cgr-legend-row { grid-template-columns: 12px minmax(110px, auto) auto; }\n  .cgr-legend-percent { grid-column: 2 \/ 4; padding-left: 0; }\n  .cgr-chart-caption, .cgr-table-note { margin-top: 16px; }\n}\n@media (max-width: 639px) {\n  .cgr-calculator { padding: 16px; }\n}\n\u003c\/style\u003e\n\u003cdiv class=\"cgr-calculator\" data-calculator-root\u003e\n  \u003csection class=\"cgr-header\"\u003e\n    \u003ch2\u003eCompound Growth Calculator\u003c\/h2\u003e\n    \u003cp class=\"cgr-header-copy\"\u003eProject how an initial deposit and recurring contributions may grow under different rates, compounding schedules, contribution frequencies, and contribution growth assumptions.\u003c\/p\u003e\n    \u003cdiv class=\"cgr-pills\" aria-label=\"Live calculation summary\"\u003e\n      \u003cspan class=\"cgr-pill\"\u003eFinal balance \u003cstrong data-cgr-pill=\"balance\"\u003e$0.00\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"cgr-pill\"\u003eTotal growth \u003cstrong data-cgr-pill=\"growth\"\u003e$0.00\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"cgr-pill\"\u003eTotal contributed \u003cstrong data-cgr-pill=\"principal\"\u003e$0.00\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"cgr-pill\"\u003eEffective annual yield \u003cstrong data-cgr-pill=\"apy\"\u003e0.00%\u003c\/strong\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003cdiv class=\"cgr-toolbar\" aria-label=\"Calculator actions\"\u003e\n    \u003cbutton class=\"cgr-button cgr-button-primary\" type=\"button\" data-cgr-action=\"download\"\u003e\u003cspan class=\"cgr-button-icon\" aria-hidden=\"true\"\u003e⇩\u003c\/span\u003e\u003cspan\u003eDownload Excel\u003c\/span\u003e\u003c\/button\u003e\n    \u003cbutton class=\"cgr-button cgr-button-secondary\" type=\"button\" data-cgr-action=\"reset\"\u003eReset\u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003csection class=\"cgr-workspace\"\u003e\n    \u003cdiv class=\"cgr-panel\"\u003e\n      \u003cdiv class=\"cgr-panel-title\"\u003e\u003ch3\u003eGrowth assumptions\u003c\/h3\u003e\u003c\/div\u003e\n      \u003cdiv class=\"cgr-input-section\"\u003e\n        \u003cdiv class=\"cgr-input-grid\"\u003e\n          \u003cdiv class=\"cgr-field\"\u003e\n            \u003clabel class=\"cgr-field-label\" for=\"cgr-initial\"\u003eInitial deposit\u003c\/label\u003e\n            \u003cinput class=\"cgr-control\" id=\"cgr-initial\" data-cgr-input=\"initial\" inputmode=\"decimal\" type=\"text\" value=\"$1,000.00\" aria-describedby=\"cgr-initial-help cgr-initial-error\"\u003e\n            \u003cdiv class=\"cgr-helper\" id=\"cgr-initial-help\"\u003eAmount invested at the start.\u003c\/div\u003e\n            \u003cdiv class=\"cgr-error\" id=\"cgr-initial-error\" data-cgr-error=\"initial\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"cgr-field\"\u003e\n            \u003clabel class=\"cgr-field-label\" for=\"cgr-rate\"\u003eAnnual interest rate\u003c\/label\u003e\n            \u003cinput class=\"cgr-control\" id=\"cgr-rate\" data-cgr-input=\"rate\" inputmode=\"decimal\" type=\"text\" value=\"8.00%\" aria-describedby=\"cgr-rate-help cgr-rate-error\"\u003e\n            \u003cdiv class=\"cgr-helper\" id=\"cgr-rate-help\"\u003eNominal annual rate before compounding.\u003c\/div\u003e\n            \u003cdiv class=\"cgr-error\" id=\"cgr-rate-error\" data-cgr-error=\"rate\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"cgr-field\"\u003e\n            \u003clabel class=\"cgr-field-label\" for=\"cgr-term\"\u003eTerm\u003c\/label\u003e\n            \u003cinput class=\"cgr-control\" id=\"cgr-term\" data-cgr-input=\"term\" inputmode=\"decimal\" type=\"text\" value=\"20\" aria-describedby=\"cgr-term-help cgr-term-error\"\u003e\n            \u003cdiv class=\"cgr-helper\" id=\"cgr-term-help\"\u003eProjection horizon in the selected unit.\u003c\/div\u003e\n            \u003cdiv class=\"cgr-error\" id=\"cgr-term-error\" data-cgr-error=\"term\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cfieldset class=\"cgr-fieldset cgr-field\"\u003e\n            \u003clegend\u003eTerm unit\u003c\/legend\u003e\n            \u003cdiv class=\"cgr-segments\" role=\"radiogroup\" aria-label=\"Term unit\"\u003e\n              \u003cinput class=\"cgr-segment-input\" id=\"cgr-term-years\" name=\"cgr-term-unit\" type=\"radio\" value=\"years\" checked\u003e\n              \u003clabel class=\"cgr-segment-label\" for=\"cgr-term-years\"\u003eYears\u003c\/label\u003e\n              \u003cinput class=\"cgr-segment-input\" id=\"cgr-term-months\" name=\"cgr-term-unit\" type=\"radio\" value=\"months\"\u003e\n              \u003clabel class=\"cgr-segment-label\" for=\"cgr-term-months\"\u003eMonths\u003c\/label\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"cgr-helper\"\u003eSwitching units converts the current term.\u003c\/div\u003e\n          \u003c\/fieldset\u003e\n          \u003cdiv class=\"cgr-field\"\u003e\n            \u003clabel class=\"cgr-field-label\" for=\"cgr-comp-frequency\"\u003eCompounding frequency\u003c\/label\u003e\n            \u003cdiv class=\"cgr-select-wrap\"\u003e\n              \u003cselect class=\"cgr-control\" id=\"cgr-comp-frequency\" data-cgr-input=\"compFrequency\" aria-describedby=\"cgr-comp-frequency-help cgr-comp-frequency-error\"\u003e\n                \u003coption value=\"\"\u003eChoose frequency\u003c\/option\u003e\n                \u003coption value=\"1\"\u003eYearly (1\/yr)\u003c\/option\u003e\n                \u003coption value=\"2\"\u003eSemi-annually (2\/yr)\u003c\/option\u003e\n                \u003coption value=\"4\"\u003eQuarterly (4\/yr)\u003c\/option\u003e\n                \u003coption value=\"6\"\u003eBi-monthly (6\/yr)\u003c\/option\u003e\n                \u003coption value=\"12\" selected\u003eMonthly (12\/yr)\u003c\/option\u003e\n                \u003coption value=\"26.08875\"\u003eBi-weekly (average)\u003c\/option\u003e\n                \u003coption value=\"26\"\u003eBi-weekly (26\/yr)\u003c\/option\u003e\n                \u003coption value=\"52.1775\"\u003eWeekly (average)\u003c\/option\u003e\n                \u003coption value=\"52\"\u003eWeekly (52\/yr)\u003c\/option\u003e\n                \u003coption value=\"365.2425\"\u003eDaily (average)\u003c\/option\u003e\n                \u003coption value=\"360\"\u003eDaily (360\/yr)\u003c\/option\u003e\n                \u003coption value=\"365\"\u003eDaily (365\/yr)\u003c\/option\u003e\n                \u003coption value=\"continuous\"\u003eContinuous\u003c\/option\u003e\n              \u003c\/select\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"cgr-helper\" id=\"cgr-comp-frequency-help\"\u003eHow often earned growth is added to the balance.\u003c\/div\u003e\n            \u003cdiv class=\"cgr-error\" id=\"cgr-comp-frequency-error\" data-cgr-error=\"compFrequency\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"cgr-input-section\"\u003e\n        \u003cdiv class=\"cgr-panel-title\"\u003e\u003ch3\u003eAdditional contributions\u003c\/h3\u003e\u003c\/div\u003e\n        \u003cdiv class=\"cgr-input-grid\"\u003e\n          \u003cdiv class=\"cgr-field\"\u003e\n            \u003clabel class=\"cgr-field-label\" for=\"cgr-contribution-frequency\"\u003eHow often?\u003c\/label\u003e\n            \u003cdiv class=\"cgr-select-wrap\"\u003e\n              \u003cselect class=\"cgr-control\" id=\"cgr-contribution-frequency\" data-cgr-input=\"contributionFrequency\" aria-describedby=\"cgr-contribution-frequency-help\"\u003e\n                \u003coption value=\"0\"\u003eNever\u003c\/option\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 (26\/yr)\u003c\/option\u003e\n                \u003coption value=\"52\"\u003eWeekly (52\/yr)\u003c\/option\u003e\n                \u003coption value=\"365\"\u003eDaily (365\/yr)\u003c\/option\u003e\n              \u003c\/select\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"cgr-helper\" id=\"cgr-contribution-frequency-help\"\u003eFrequency of recurring deposits.\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"cgr-field\"\u003e\n            \u003clabel class=\"cgr-field-label\" for=\"cgr-contribution\"\u003eHow much?\u003c\/label\u003e\n            \u003cinput class=\"cgr-control\" id=\"cgr-contribution\" data-cgr-input=\"contribution\" inputmode=\"decimal\" type=\"text\" value=\"$50.00\" aria-describedby=\"cgr-contribution-help cgr-contribution-error\"\u003e\n            \u003cdiv class=\"cgr-helper\" id=\"cgr-contribution-help\"\u003eDeposit made each contribution period.\u003c\/div\u003e\n            \u003cdiv class=\"cgr-error\" id=\"cgr-contribution-error\" data-cgr-error=\"contribution\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"cgr-field\"\u003e\n            \u003clabel class=\"cgr-field-label\" for=\"cgr-timing\"\u003eWhen?\u003c\/label\u003e\n            \u003cdiv class=\"cgr-select-wrap\"\u003e\n              \u003cselect class=\"cgr-control\" id=\"cgr-timing\" data-cgr-input=\"timing\" aria-describedby=\"cgr-timing-help\"\u003e\n                \u003coption value=\"end\"\u003eEnd of period\u003c\/option\u003e\n                \u003coption value=\"beginning\" selected\u003eBeginning of period\u003c\/option\u003e\n              \u003c\/select\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"cgr-helper\" id=\"cgr-timing-help\"\u003eBeginning deposits earn one extra period of growth.\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"cgr-field\"\u003e\n            \u003clabel class=\"cgr-field-label\" for=\"cgr-contribution-growth\"\u003eAnnual contribution growth rate\u003c\/label\u003e\n            \u003cinput class=\"cgr-control\" id=\"cgr-contribution-growth\" data-cgr-input=\"contributionGrowth\" inputmode=\"decimal\" type=\"text\" value=\"0.00%\" aria-describedby=\"cgr-contribution-growth-help cgr-contribution-growth-error\"\u003e\n            \u003cdiv class=\"cgr-helper\" id=\"cgr-contribution-growth-help\"\u003eAnnual increase or decrease in each recurring deposit.\u003c\/div\u003e\n            \u003cdiv class=\"cgr-error\" id=\"cgr-contribution-growth-error\" data-cgr-error=\"contributionGrowth\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003caside class=\"cgr-panel cgr-results\" aria-label=\"Live results\"\u003e\n      \u003cdiv class=\"cgr-primary-result\"\u003e\n        \u003cdiv class=\"cgr-primary-label\"\u003eFinal balance\u003c\/div\u003e\n        \u003cdiv class=\"cgr-primary-value\" data-cgr-output=\"finalBalance\"\u003e$0.00\u003c\/div\u003e\n        \u003cdiv class=\"cgr-primary-sub\" data-cgr-output=\"finalSummary\"\u003eEnter assumptions to calculate growth.\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"cgr-result-grid\"\u003e\n        \u003cdiv class=\"cgr-result-card\"\u003e\n          \u003cdiv class=\"cgr-result-label\"\u003eTotal compound growth\u003c\/div\u003e\n          \u003cdiv class=\"cgr-result-value\" data-cgr-output=\"totalGrowth\"\u003e$0.00\u003c\/div\u003e\n          \u003cdiv class=\"cgr-result-note\"\u003eFinal balance less all deposits.\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"cgr-result-card\"\u003e\n          \u003cdiv class=\"cgr-result-label\"\u003eTotal contributed\u003c\/div\u003e\n          \u003cdiv class=\"cgr-result-value\" data-cgr-output=\"totalPrincipal\"\u003e$0.00\u003c\/div\u003e\n          \u003cdiv class=\"cgr-result-note\"\u003eInitial plus recurring deposits.\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"cgr-result-card\"\u003e\n          \u003cdiv class=\"cgr-result-label\"\u003eEffective annual yield\u003c\/div\u003e\n          \u003cdiv class=\"cgr-result-value\" data-cgr-output=\"apy\"\u003e0.00%\u003c\/div\u003e\n          \u003cdiv class=\"cgr-result-note\"\u003eAnnualized effect of compounding.\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"cgr-result-card\"\u003e\n          \u003cdiv class=\"cgr-result-label\"\u003ePeriodic contribution growth\u003c\/div\u003e\n          \u003cdiv class=\"cgr-result-value\" data-cgr-output=\"periodicGrowth\"\u003e0.00%\u003c\/div\u003e\n          \u003cdiv class=\"cgr-result-note\" data-cgr-output=\"periodicGrowthNote\"\u003ePer contribution period.\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"cgr-live\" aria-live=\"polite\" data-cgr-live\u003e\u003c\/div\u003e\n    \u003c\/aside\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"cgr-section cgr-breakdown\" data-cgr-chart-card=\"breakdown\"\u003e\n    \u003ch3\u003eFinal balance breakdown\u003c\/h3\u003e\n    \u003cp class=\"cgr-section-intro\" data-cgr-breakdown-intro\u003eThe final value is separated into deposited principal and compound growth.\u003c\/p\u003e\n    \u003cdiv data-cgr-breakdown-content\u003e\u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"cgr-section cgr-chart\"\u003e\n    \u003cdiv class=\"cgr-chart-card\" data-cgr-chart-card=\"projection\"\u003e\n      \u003cdiv class=\"cgr-chart-heading\"\u003e\n        \u003ch3\u003eBalance projection\u003c\/h3\u003e\n        \u003cdiv class=\"cgr-chart-subtitle\" data-cgr-chart-subtitle\u003eYear-by-year balance, deposits, and compound growth.\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv data-cgr-chart-content\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"cgr-section cgr-table-section\" data-cgr-table-card\u003e\n    \u003ch3\u003eYearly projection table\u003c\/h3\u003e\n    \u003cp class=\"cgr-section-intro\"\u003eEach row uses the same full-precision model as the headline results and charts.\u003c\/p\u003e\n    \u003cdiv class=\"cgr-table-wrap\" data-cgr-table-wrap\u003e\n      \u003ctable class=\"cgr-table\"\u003e\n        \u003cthead\u003e\n          \u003ctr\u003e\n            \u003cth scope=\"col\"\u003eYear\u003c\/th\u003e\n            \u003cth scope=\"col\"\u003eInitial balance\u003c\/th\u003e\n            \u003cth scope=\"col\"\u003eContribution balance\u003c\/th\u003e\n            \u003cth scope=\"col\"\u003eTotal principal\u003c\/th\u003e\n            \u003cth scope=\"col\"\u003eCompound growth\u003c\/th\u003e\n            \u003cth scope=\"col\"\u003eTotal balance\u003c\/th\u003e\n          \u003c\/tr\u003e\n        \u003c\/thead\u003e\n        \u003ctbody data-cgr-table-body\u003e\u003c\/tbody\u003e\n      \u003c\/table\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"cgr-table-note\" data-cgr-table-note\u003eRecurring deposits are modeled at the selected timing. A beginning-of-period deposit receives one additional contribution period of growth compared with an end-of-period deposit.\u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"cgr-section cgr-education\"\u003e\n    \u003ch2\u003eHow to use the compound growth calculator\u003c\/h2\u003e\n    \u003cp\u003eThis calculator estimates how a starting balance and a stream of recurring deposits may change over time when growth is compounded. It is a planning model, not a prediction of market returns. Actual outcomes can differ because rates may vary, fees and taxes may apply, deposits may be missed, and investments can lose value.\u003c\/p\u003e\n\n    \u003ch3\u003eWhat each input means\u003c\/h3\u003e\n    \u003cp\u003e\u003cstrong\u003eInitial deposit\u003c\/strong\u003e is the amount available at the beginning of the projection. Enter zero when you are starting with recurring contributions only. A larger initial deposit generally has an outsized effect over long horizons because it receives the full term of compounding. Avoid entering a future contribution total here; doing so would overstate how long that money earns growth.\u003c\/p\u003e\n    \u003cp\u003e\u003cstrong\u003eAnnual interest rate\u003c\/strong\u003e is the nominal yearly growth rate. It can represent an assumed savings yield, investment return, or another repeatable growth rate. The calculator accepts a negative rate for decline scenarios, but rates are constrained so the compounding base remains meaningful. Higher rates increase both the final balance and the share attributable to growth. For practical background on compounding, see the educational material from \u003ca href=\"https:\/\/www.investor.gov\/financial-tools-calculators\/calculators\/compound-interest-calculator\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eInvestor.gov\u003c\/a\u003e.\u003c\/p\u003e\n    \u003cp\u003e\u003cstrong\u003eTerm\u003c\/strong\u003e is the projection horizon. Choose years or months with the segmented unit control. Switching the unit converts the current value rather than merely relabeling it. Longer terms usually magnify the effect of both compounding and recurring contributions. A zero term produces a starting-state result with no elapsed growth.\u003c\/p\u003e\n    \u003cp\u003e\u003cstrong\u003eCompounding frequency\u003c\/strong\u003e determines how often earned growth is credited. With a nominal annual rate, more frequent compounding raises the effective annual yield slightly because credited growth begins earning growth sooner. Continuous compounding uses the mathematical limit of infinitely frequent crediting. Do not confuse compounding frequency with contribution frequency: one controls how returns accumulate, while the other controls how often you add money.\u003c\/p\u003e\n    \u003cp\u003e\u003cstrong\u003eContribution frequency\u003c\/strong\u003e sets the number of recurring deposits per year. Choose Never to exclude recurring deposits entirely. \u003cstrong\u003eHow much?\u003c\/strong\u003e is the amount deposited each contribution period, not the annual total. For example, a monthly contribution of $50 means $600 in the first full year before any contribution-growth adjustment.\u003c\/p\u003e\n    \u003cp\u003e\u003cstrong\u003eContribution timing\u003c\/strong\u003e specifies whether each deposit is made at the beginning or end of its period. Beginning-of-period contributions earn one extra period of growth and therefore produce a slightly higher final balance when the rate is positive. End-of-period timing is often a better match for deposits made after a pay period has been completed.\u003c\/p\u003e\n    \u003cp\u003e\u003cstrong\u003eAnnual contribution growth rate\u003c\/strong\u003e changes the recurring deposit amount over time. A positive value can model planned annual increases as income grows; a negative value can model a gradual reduction. The calculator converts the annual change into a mathematically equivalent rate per contribution period. A common mistake is entering the expected investment return here; this field changes deposits, not the rate earned by the balance.\u003c\/p\u003e\n\n    \u003ch3\u003eHow the results are calculated\u003c\/h3\u003e\n    \u003cp\u003eThe initial balance follows the standard future-value relationship. For periodic compounding, the starting amount is multiplied by one plus the periodic rate, raised to the number of compounding periods. Continuous compounding uses the exponential form. Each recurring deposit is then treated as its own cash flow, adjusted for contribution growth and accumulated from its deposit date to the end of the term. The calculator keeps full precision internally and rounds only for display and export.\u003c\/p\u003e\n    \u003cp\u003e\u003cstrong\u003eFinal balance\u003c\/strong\u003e is the combined future value of the initial deposit and every recurring contribution. \u003cstrong\u003eTotal compound growth\u003c\/strong\u003e is the final balance minus all deposited principal. A positive figure means modeled growth added value; zero means the balance equals deposits; a negative figure means the assumed rate reduced value. \u003cstrong\u003eTotal contributed\u003c\/strong\u003e includes the initial deposit and every modeled recurring deposit, including contribution increases or decreases.\u003c\/p\u003e\n    \u003cp\u003e\u003cstrong\u003eEffective annual yield\u003c\/strong\u003e converts the selected nominal rate and compounding frequency into a one-year effective rate. This is useful when comparing accounts that quote the same nominal rate but compound at different frequencies. The \u003ca href=\"https:\/\/www.investopedia.com\/terms\/c\/compoundinterest.asp\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ecompound interest overview from Investopedia\u003c\/a\u003e explains the distinction between simple and compound growth in more detail.\u003c\/p\u003e\n    \u003cp\u003e\u003cstrong\u003ePeriodic contribution growth\u003c\/strong\u003e is the annual contribution-growth assumption converted to the selected contribution interval. It is zero when contributions are disabled. The final balance breakdown separates the starting principal, added principal, growth on the starting amount, and growth on recurring deposits. The donut segments, legend, accessible summary, table, and Excel workbook all use the same calculated values.\u003c\/p\u003e\n\n    \u003ch3\u003eReading the chart and table\u003c\/h3\u003e\n    \u003cp\u003eThe projection chart compares total balance, cumulative principal, and total compound growth. When the balance line moves farther above the principal line, compounding is contributing a larger share of the total. The yearly table provides exact values for the balance attributable to the initial deposit, the balance attributable to contributions, total deposited principal, compound growth, and total balance. The final row reconciles to the headline result.\u003c\/p\u003e\n    \u003cp\u003eChanging the term often has the strongest nonlinear effect because growth compounds over more periods. Raising the rate steepens the balance curve, while increasing contribution amount or frequency raises principal first and growth second. Contribution timing usually has a smaller but consistent effect. For broader saving guidance and emergency-fund planning, the \u003ca href=\"https:\/\/www.consumerfinance.gov\/consumer-tools\/savings\/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eConsumer Financial Protection Bureau savings resources\u003c\/a\u003e provide practical context.\u003c\/p\u003e\n\n    \u003ch3\u003eCommon planning mistakes\u003c\/h3\u003e\n    \u003cul\u003e\n      \u003cli\u003eUsing an unusually high return without testing a conservative scenario.\u003c\/li\u003e\n      \u003cli\u003eIgnoring fees, taxes, inflation, or periods of negative performance.\u003c\/li\u003e\n      \u003cli\u003eEntering an annual contribution in a monthly contribution field.\u003c\/li\u003e\n      \u003cli\u003eAssuming that more frequent compounding can offset a materially lower underlying rate.\u003c\/li\u003e\n      \u003cli\u003eTreating a smooth projection as a guarantee rather than a sensitivity model.\u003c\/li\u003e\n    \u003c\/ul\u003e\n    \u003cp\u003eUse several scenarios rather than relying on one estimate. A lower-rate case can provide a downside planning range, while a higher contribution case shows how much of the outcome is under your direct control. The downloadable workbook records the current assumptions and projection so the scenario can be reviewed or compared offline.\u003c\/p\u003e\n  \u003c\/section\u003e\n\u003c\/div\u003e","brand":"FinancialModelsLab","offers":[{"title":"Default Title","offer_id":49909483143411,"sku":"compound-growth","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/compound-growth.webp?v=1783935419","url":"https:\/\/financialmodelslab.com\/products\/compound-growth","provider":"Financial Models Lab","version":"1.0","type":"link"}