{"product_id":"real-rate-of-return","title":"Real Rate of Return Calculator","description":"\u003cstyle\u003e\n.rrr-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  container-type: inline-size;\n  width: 100%;\n  color: var(--ink);\n  background: var(--tint);\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  padding: 24px;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  font-size: 15px;\n  line-height: 1.55;\n}\n.rrr-calculator,\n.rrr-calculator *,\n.rrr-calculator *::before,\n.rrr-calculator *::after {\n  box-sizing: border-box;\n}\n.rrr-calculator * {\n  min-width: 0;\n}\n.rrr-calculator h2,\n.rrr-calculator h3,\n.rrr-calculator p {\n  margin-top: 0;\n}\n.rrr-header {\n  display: grid;\n  gap: 12px;\n  margin-bottom: 16px;\n}\n.rrr-header h2 {\n  margin-bottom: 0;\n  font-size: 24px;\n  line-height: 1.25;\n  font-weight: 700;\n  letter-spacing: -0.02em;\n}\n.rrr-subtitle {\n  margin-bottom: 0;\n  color: var(--muted);\n  max-width: 780px;\n}\n.rrr-pills {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n}\n.rrr-pill {\n  display: inline-flex;\n  align-items: center;\n  gap: 6px;\n  padding: 5px 9px;\n  border: 1px solid var(--border);\n  border-radius: 999px;\n  background: var(--surface);\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n  font-variant-numeric: tabular-nums;\n}\n.rrr-pill strong {\n  color: var(--ink);\n  font-weight: 700;\n}\n.rrr-toolbar {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: 8px;\n  margin-bottom: 16px;\n}\n.rrr-button {\n  min-height: 44px;\n  border: 1px solid var(--border);\n  border-radius: 6px;\n  padding: 10px 16px;\n  background: var(--surface);\n  color: var(--ink);\n  font: inherit;\n  font-size: 14px;\n  font-weight: 650;\n  line-height: 1;\n  cursor: pointer;\n  box-shadow: 0 1px 2px rgba(15, 23, 42, .06);\n}\n.rrr-button:hover {\n  box-shadow: 0 2px 5px rgba(15, 23, 42, .12);\n}\n.rrr-button:focus-visible,\n.rrr-input:focus-visible,\n.rrr-select:focus-visible,\n.rrr-details summary:focus-visible {\n  outline: 3px solid rgba(29, 78, 216, .35);\n  outline-offset: 2px;\n}\n.rrr-download {\n  display: inline-flex;\n  align-items: center;\n  gap: 10px;\n  padding: 12px 18px;\n  border-color: var(--accent);\n  background: var(--accent);\n  color: #ffffff;\n  white-space: nowrap;\n}\n.rrr-download:hover,\n.rrr-download:active {\n  border-color: var(--accent-hover);\n  background: var(--accent-hover);\n}\n.rrr-download svg {\n  width: 18px;\n  height: 18px;\n  flex: 0 0 auto;\n}\n.rrr-workspace {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr);\n  gap: 16px;\n  align-items: start;\n}\n.rrr-panel,\n.rrr-chart-card,\n.rrr-table-card,\n.rrr-education {\n  background: var(--surface);\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  box-shadow: 0 1px 2px rgba(15, 23, 42, .06);\n}\n.rrr-panel {\n  padding: 20px;\n}\n.rrr-section-title {\n  margin-bottom: 16px;\n  font-size: 18px;\n  line-height: 1.35;\n  font-weight: 650;\n}\n.rrr-fields {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n  gap: 16px;\n}\n.rrr-field {\n  display: grid;\n  align-content: start;\n  gap: 7px;\n}\n.rrr-label,\n.rrr-fieldset legend {\n  color: var(--ink);\n  font-size: 14px;\n  font-weight: 600;\n}\n.rrr-input,\n.rrr-select {\n  width: 100%;\n  min-height: 44px;\n  border: 1px solid #cbd5e1;\n  border-radius: 6px;\n  padding: 9px 11px;\n  background: var(--surface);\n  color: var(--ink);\n  font: inherit;\n  font-size: 15px;\n  font-variant-numeric: tabular-nums;\n}\n.rrr-input[readonly] {\n  background: #eff6ff;\n  border-color: #93c5fd;\n  color: #1e3a8a;\n  font-weight: 700;\n}\n.rrr-helper,\n.rrr-error {\n  min-height: 40px;\n  margin-bottom: 0;\n  font-size: 13px;\n  line-height: 1.45;\n  font-weight: 500;\n}\n.rrr-helper {\n  color: var(--muted);\n}\n.rrr-error {\n  display: none;\n  color: #b91c1c;\n}\n.rrr-field.rrr-invalid .rrr-error {\n  display: block;\n}\n.rrr-field.rrr-invalid .rrr-helper {\n  display: none;\n}\n.rrr-field.rrr-invalid .rrr-input,\n.rrr-field.rrr-invalid .rrr-select {\n  border-color: #dc2626;\n}\n.rrr-details {\n  margin-top: 16px;\n  border-top: 1px solid var(--border);\n  padding-top: 12px;\n}\n.rrr-details summary {\n  display: inline-flex;\n  align-items: center;\n  min-height: 40px;\n  color: var(--primary);\n  font-size: 14px;\n  font-weight: 650;\n  cursor: pointer;\n}\n.rrr-details .rrr-fields {\n  margin-top: 12px;\n}\n.rrr-results {\n  display: grid;\n  gap: 12px;\n}\n.rrr-primary-result {\n  padding: 20px;\n  border: 1px solid #bfdbfe;\n  border-radius: 8px;\n  background: #eff6ff;\n}\n.rrr-kicker {\n  margin-bottom: 6px;\n  color: #1e3a8a;\n  font-size: 13px;\n  font-weight: 650;\n  text-transform: uppercase;\n  letter-spacing: .04em;\n}\n.rrr-primary-value {\n  margin-bottom: 6px;\n  color: #172554;\n  font-size: 30px;\n  line-height: 1.15;\n  font-weight: 700;\n  font-variant-numeric: tabular-nums;\n  overflow-wrap: anywhere;\n}\n.rrr-primary-copy {\n  margin-bottom: 0;\n  color: #1e3a8a;\n  font-size: 14px;\n}\n.rrr-result-grid {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr);\n  gap: 12px;\n}\n.rrr-result-card {\n  padding: 14px;\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  background: var(--surface);\n}\n.rrr-result-label {\n  margin-bottom: 4px;\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.rrr-result-value {\n  margin-bottom: 0;\n  font-size: 20px;\n  line-height: 1.25;\n  font-weight: 700;\n  font-variant-numeric: tabular-nums;\n  overflow-wrap: anywhere;\n}\n.rrr-status {\n  padding: 12px;\n  border: 1px solid var(--border);\n  border-radius: 6px;\n  background: var(--tint);\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.rrr-status.rrr-positive {\n  border-color: #a7f3d0;\n  background: #ecfdf5;\n  color: #065f46;\n}\n.rrr-status.rrr-negative {\n  border-color: #fecaca;\n  background: #fef2f2;\n  color: #991b1b;\n}\n.rrr-chart-card,\n.rrr-table-card {\n  margin-top: 16px;\n  padding: 20px;\n}\n.rrr-chart-intro,\n.rrr-table-intro {\n  margin-bottom: 16px;\n  color: var(--muted);\n}\n.rrr-chart-cluster {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr);\n  gap: 20px;\n  align-items: start;\n  max-width: 920px;\n  margin: 0 auto;\n}\n.rrr-plot-wrap {\n  width: 100%;\n  min-height: 0;\n}\n.rrr-chart-svg {\n  display: block;\n  width: 100%;\n  height: auto;\n  aspect-ratio: 19 \/ 9;\n  max-height: 410px;\n  overflow: visible;\n}\n.rrr-chart-empty {\n  display: none;\n  padding: 14px;\n  border: 1px dashed #cbd5e1;\n  border-radius: 6px;\n  background: var(--tint);\n  color: var(--muted);\n  text-align: center;\n  font-size: 13px;\n  font-weight: 500;\n}\n.rrr-legend {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(210px, max-content));\n  justify-content: center;\n  gap: 10px 18px;\n  margin-top: 16px;\n}\n.rrr-legend-row {\n  display: grid;\n  grid-template-columns: 14px auto max-content;\n  align-items: center;\n  gap: 8px 12px;\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.rrr-legend-swatch {\n  width: 12px;\n  height: 12px;\n  border-radius: 3px;\n}\n.rrr-legend-value {\n  color: var(--ink);\n  font-weight: 700;\n  font-variant-numeric: tabular-nums;\n}\n.rrr-chart-callout,\n.rrr-table-note {\n  margin-top: 16px;\n  padding: 10px 12px;\n  border: 1px solid var(--border);\n  border-radius: 6px;\n  background: var(--tint);\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.rrr-chart-summary {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap;\n  border: 0;\n}\n.rrr-safe-stack .rrr-chart-cluster {\n  grid-template-columns: minmax(0, 1fr);\n  gap: 24px;\n}\n.rrr-safe-stack .rrr-legend {\n  margin-top: 20px;\n}\n.rrr-safe-stack .rrr-chart-callout {\n  margin-top: 20px;\n}\n.rrr-table-overflow {\n  width: 100%;\n  overflow-x: auto;\n  overscroll-behavior-inline: contain;\n}\n.rrr-table {\n  width: 100%;\n  min-width: 680px;\n  border-collapse: collapse;\n  font-size: 14px;\n  font-variant-numeric: tabular-nums;\n}\n.rrr-table th,\n.rrr-table td {\n  padding: 10px 12px;\n  border-bottom: 1px solid var(--border);\n  text-align: right;\n  white-space: nowrap;\n}\n.rrr-table th:first-child,\n.rrr-table td:first-child {\n  text-align: left;\n}\n.rrr-table thead th {\n  background: #172554;\n  color: #ffffff;\n  font-size: 13px;\n  font-weight: 700;\n}\n.rrr-table tbody tr:hover {\n  background: var(--tint);\n}\n.rrr-safe-table-stack .rrr-table-overflow {\n  height: auto;\n  max-height: none;\n}\n.rrr-safe-table-stack .rrr-table-note {\n  margin-top: 20px;\n}\n.rrr-education {\n  margin-top: 16px;\n  padding: 24px;\n}\n.rrr-education h2 {\n  margin-bottom: 12px;\n  font-size: 18px;\n  line-height: 1.35;\n  font-weight: 650;\n}\n.rrr-education h3 {\n  margin-top: 24px;\n  margin-bottom: 8px;\n  font-size: 16px;\n  line-height: 1.4;\n  font-weight: 650;\n}\n.rrr-education p,\n.rrr-education ul {\n  color: #334155;\n}\n.rrr-education ul {\n  padding-left: 20px;\n}\n.rrr-education li + li {\n  margin-top: 8px;\n}\n.rrr-education a {\n  color: var(--primary);\n  text-decoration: underline;\n  text-underline-offset: 2px;\n}\n.rrr-education a:hover {\n  color: #1e40af;\n}\n@container (min-width: 460px) {\n  .rrr-result-grid {\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n  }\n}\n@container (min-width: 900px) {\n  .rrr-workspace {\n    grid-template-columns: minmax(0, 1.08fr) minmax(340px, .92fr);\n  }\n}\n@container (max-width: 639px) {\n  .rrr-calculator {\n    padding: 16px;\n  }\n  .rrr-panel,\n  .rrr-chart-card,\n  .rrr-table-card,\n  .rrr-education {\n    padding: 16px;\n  }\n  .rrr-fields {\n    grid-template-columns: minmax(0, 1fr);\n  }\n  .rrr-toolbar {\n    align-items: stretch;\n  }\n  .rrr-button {\n    justify-content: center;\n  }\n  .rrr-download {\n    flex: 1 1 100%;\n  }\n  .rrr-legend {\n    grid-template-columns: minmax(0, max-content);\n    justify-content: center;\n    gap: 10px;\n  }\n  .rrr-chart-svg {\n    aspect-ratio: 4 \/ 3;\n  }\n  .rrr-chart-callout,\n  .rrr-table-note {\n    margin-top: 16px;\n  }\n}\n@media (max-width: 380px) {\n  .rrr-calculator {\n    padding: 12px;\n  }\n  .rrr-panel,\n  .rrr-chart-card,\n  .rrr-table-card,\n  .rrr-education {\n    padding: 14px;\n  }\n}\n\u003c\/style\u003e\n\u003cdiv class=\"rrr-calculator\" data-calculator-root\u003e\n  \u003csection class=\"rrr-header\"\u003e\n    \u003ch2\u003eReal Rate of Return Calculator\u003c\/h2\u003e\n    \u003cp class=\"rrr-subtitle\"\u003eConvert between nominal return, inflation, and inflation-adjusted return, then see how purchasing power changes over time.\u003c\/p\u003e\n    \u003cdiv class=\"rrr-pills\" aria-label=\"Live summary\"\u003e\n      \u003cspan class=\"rrr-pill\"\u003eNominal \u003cstrong data-pill-nominal\u003e6.50%\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"rrr-pill\"\u003eInflation \u003cstrong data-pill-inflation\u003e2.40%\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"rrr-pill\"\u003eReal \u003cstrong data-pill-real\u003e4.00%\u003c\/strong\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003cdiv class=\"rrr-toolbar\"\u003e\n    \u003cbutton class=\"rrr-button rrr-download\" type=\"button\" data-download\u003e\n      \u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"\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=\"rrr-button\" type=\"button\" data-reset\u003eReset\u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rrr-workspace\"\u003e\n    \u003csection class=\"rrr-panel\" aria-labelledby=\"rrr-inputs-title\"\u003e\n      \u003ch3 class=\"rrr-section-title\" id=\"rrr-inputs-title\"\u003eInputs\u003c\/h3\u003e\n      \u003cdiv class=\"rrr-fields\"\u003e\n        \u003cdiv class=\"rrr-field\" data-field=\"target\"\u003e\n          \u003clabel class=\"rrr-label\" for=\"rrr-target\"\u003eSolve for\u003c\/label\u003e\n          \u003cselect class=\"rrr-select\" id=\"rrr-target\" data-target\u003e\n            \u003coption value=\"\"\u003eChoose a rate\u003c\/option\u003e\n            \u003coption value=\"real\" selected\u003eReal rate of return\u003c\/option\u003e\n            \u003coption value=\"nominal\"\u003eNominal rate of return\u003c\/option\u003e\n            \u003coption value=\"inflation\"\u003eInflation rate\u003c\/option\u003e\n          \u003c\/select\u003e\n          \u003cp class=\"rrr-helper\"\u003eChoose the field the calculator should derive from the other two.\u003c\/p\u003e\n          \u003cp class=\"rrr-error\" data-error-target\u003ePlease choose a rate to solve.\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"rrr-field\" data-field=\"nominal\"\u003e\n          \u003clabel class=\"rrr-label\" for=\"rrr-nominal\"\u003eNominal rate of return\u003c\/label\u003e\n          \u003cinput class=\"rrr-input\" id=\"rrr-nominal\" data-rate=\"nominal\" type=\"text\" inputmode=\"decimal\" value=\"6.50%\" autocomplete=\"off\"\u003e\n          \u003cp class=\"rrr-helper\"\u003eThe stated annual return before adjusting for inflation.\u003c\/p\u003e\n          \u003cp class=\"rrr-error\" data-error-nominal\u003eEnter a valid rate greater than -100%.\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"rrr-field\" data-field=\"inflation\"\u003e\n          \u003clabel class=\"rrr-label\" for=\"rrr-inflation\"\u003eInflation rate\u003c\/label\u003e\n          \u003cinput class=\"rrr-input\" id=\"rrr-inflation\" data-rate=\"inflation\" type=\"text\" inputmode=\"decimal\" value=\"2.40%\" autocomplete=\"off\"\u003e\n          \u003cp class=\"rrr-helper\"\u003eThe annual change in the general price level; use a negative number for deflation.\u003c\/p\u003e\n          \u003cp class=\"rrr-error\" data-error-inflation\u003eEnter a valid rate greater than -100%.\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"rrr-field\" data-field=\"real\"\u003e\n          \u003clabel class=\"rrr-label\" for=\"rrr-real\"\u003eReal rate of return\u003c\/label\u003e\n          \u003cinput class=\"rrr-input\" id=\"rrr-real\" data-rate=\"real\" type=\"text\" inputmode=\"decimal\" value=\"4.00%\" autocomplete=\"off\" readonly aria-readonly=\"true\"\u003e\n          \u003cp class=\"rrr-helper\"\u003eThe annual change in purchasing power after inflation.\u003c\/p\u003e\n          \u003cp class=\"rrr-error\" data-error-real\u003eEnter a valid rate greater than -100%.\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdetails class=\"rrr-details\"\u003e\n        \u003csummary\u003eProjection settings\u003c\/summary\u003e\n        \u003cdiv class=\"rrr-fields\"\u003e\n          \u003cdiv class=\"rrr-field\" data-field=\"amount\"\u003e\n            \u003clabel class=\"rrr-label\" for=\"rrr-amount\"\u003eIllustration amount\u003c\/label\u003e\n            \u003cinput class=\"rrr-input\" id=\"rrr-amount\" data-amount type=\"text\" inputmode=\"decimal\" value=\"$10,000.00\" autocomplete=\"off\"\u003e\n            \u003cp class=\"rrr-helper\"\u003eA hypothetical starting amount used only for the chart and table.\u003c\/p\u003e\n            \u003cp class=\"rrr-error\" data-error-amount\u003eEnter an amount greater than zero.\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"rrr-field\" data-field=\"years\"\u003e\n            \u003clabel class=\"rrr-label\" for=\"rrr-years\"\u003eProjection years\u003c\/label\u003e\n            \u003cinput class=\"rrr-input\" id=\"rrr-years\" data-years type=\"number\" inputmode=\"numeric\" min=\"1\" max=\"50\" step=\"1\" value=\"10\"\u003e\n            \u003cp class=\"rrr-helper\"\u003eChoose a whole-number horizon from 1 to 50 years.\u003c\/p\u003e\n            \u003cp class=\"rrr-error\" data-error-years\u003eEnter a whole number from 1 to 50.\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/section\u003e\n\n    \u003csection class=\"rrr-panel\" aria-labelledby=\"rrr-results-title\"\u003e\n      \u003ch3 class=\"rrr-section-title\" id=\"rrr-results-title\"\u003eLive results\u003c\/h3\u003e\n      \u003cdiv class=\"rrr-results\"\u003e\n        \u003cdiv class=\"rrr-primary-result\"\u003e\n          \u003cp class=\"rrr-kicker\" data-primary-label\u003eReal rate of return\u003c\/p\u003e\n          \u003cp class=\"rrr-primary-value\" data-primary-value\u003e4.00%\u003c\/p\u003e\n          \u003cp class=\"rrr-primary-copy\" data-primary-copy\u003eAfter inflation, purchasing power grows by about 4.00% per year.\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"rrr-result-grid\"\u003e\n          \u003cdiv class=\"rrr-result-card\"\u003e\n            \u003cp class=\"rrr-result-label\"\u003eOne-year nominal value\u003c\/p\u003e\n            \u003cp class=\"rrr-result-value\" data-one-year-nominal\u003e$10,650.00\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"rrr-result-card\"\u003e\n            \u003cp class=\"rrr-result-label\"\u003eOne-year real value\u003c\/p\u003e\n            \u003cp class=\"rrr-result-value\" data-one-year-real\u003e$10,400.39\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"rrr-result-card\"\u003e\n            \u003cp class=\"rrr-result-label\"\u003eInflation adjustment\u003c\/p\u003e\n            \u003cp class=\"rrr-result-value\" data-inflation-adjustment\u003e-$249.61\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"rrr-result-card\"\u003e\n            \u003cp class=\"rrr-result-label\"\u003eReal value at horizon\u003c\/p\u003e\n            \u003cp class=\"rrr-result-value\" data-horizon-real\u003e$14,808.00\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"rrr-status rrr-positive\" data-status\u003eThe modeled return is above inflation, so purchasing power increases.\u003c\/div\u003e\n        \u003cdiv class=\"rrr-chart-summary\" aria-live=\"polite\" data-live-summary\u003eReal rate of return is 4.00 percent.\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/section\u003e\n  \u003c\/div\u003e\n\n  \u003csection class=\"rrr-chart-card\" data-chart-card aria-labelledby=\"rrr-chart-title\"\u003e\n    \u003ch3 class=\"rrr-section-title\" id=\"rrr-chart-title\"\u003eNominal value and purchasing power\u003c\/h3\u003e\n    \u003cp class=\"rrr-chart-intro\" data-chart-intro\u003eThe projection compares the account balance, its inflation-adjusted value, and the rising cost of the original basket of goods.\u003c\/p\u003e\n    \u003cdiv class=\"rrr-chart-cluster\"\u003e\n      \u003cdiv class=\"rrr-plot-wrap\" data-plot-wrap\u003e\n        \u003csvg class=\"rrr-chart-svg\" data-chart-svg role=\"img\" aria-labelledby=\"rrr-chart-title rrr-chart-description\" viewbox=\"0 0 760 360\" preserveaspectratio=\"xMidYMid meet\"\u003e\u003c\/svg\u003e\n        \u003cp class=\"rrr-chart-empty\" data-chart-empty\u003eEnter valid values above to see the projection.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"rrr-legend\" data-legend aria-label=\"Chart legend\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cp class=\"rrr-chart-summary\" id=\"rrr-chart-description\" data-chart-summary\u003e\u003c\/p\u003e\n    \u003cdiv class=\"rrr-chart-callout\" data-chart-callout\u003eAt year 10, the nominal balance is $18,771.37, while its inflation-adjusted purchasing power is $14,808.00.\u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"rrr-table-card\" data-table-card aria-labelledby=\"rrr-table-title\"\u003e\n    \u003ch3 class=\"rrr-section-title\" id=\"rrr-table-title\"\u003eProjection table\u003c\/h3\u003e\n    \u003cp class=\"rrr-table-intro\"\u003eAll rows use the same rates and amounts as the live results and chart.\u003c\/p\u003e\n    \u003cdiv class=\"rrr-table-overflow\" data-table-overflow\u003e\n      \u003ctable class=\"rrr-table\"\u003e\n        \u003cthead\u003e\n          \u003ctr\u003e\n            \u003cth scope=\"col\"\u003eYear\u003c\/th\u003e\n            \u003cth scope=\"col\"\u003eNominal balance\u003c\/th\u003e\n            \u003cth scope=\"col\"\u003ePrice index\u003c\/th\u003e\n            \u003cth scope=\"col\"\u003eCost of original basket\u003c\/th\u003e\n            \u003cth scope=\"col\"\u003eReal purchasing power\u003c\/th\u003e\n          \u003c\/tr\u003e\n        \u003c\/thead\u003e\n        \u003ctbody data-table-body\u003e\u003c\/tbody\u003e\n      \u003c\/table\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rrr-table-note\" data-table-note\u003ePrice index starts at 100.00. Real purchasing power divides the nominal balance by the cumulative inflation factor.\u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"rrr-education\"\u003e\n    \u003ch2\u003eWhat does this calculator estimate?\u003c\/h2\u003e\n    \u003cp\u003eThis calculator estimates the annual return that remains after inflation changes the value of money. A nominal return describes how many more dollars an investment has earned. A real return describes how much more those dollars can buy. The distinction matters because a positive account return can still produce a loss of purchasing power when inflation is higher.\u003c\/p\u003e\n    \u003cp\u003eThe tool works in three directions. Choose the rate you want to solve, then enter the other two rates. The calculator derives the missing value using the exact multiplicative relationship between nominal growth and inflation rather than simply subtracting one percentage from the other.\u003c\/p\u003e\n\n    \u003ch3\u003eHow should each input be used?\u003c\/h3\u003e\n    \u003cul\u003e\n      \u003cli\u003e\n\u003cstrong\u003eSolve for\u003c\/strong\u003e identifies the unknown variable. Select real return when you know the stated return and inflation. Select nominal return when you have a target real return and an inflation assumption. Select inflation when you know both nominal and real performance. The selected output field becomes read-only so the two editable fields remain unambiguous.\u003c\/li\u003e\n      \u003cli\u003e\n\u003cstrong\u003eNominal rate of return\u003c\/strong\u003e is the stated annual percentage change before inflation. It may represent an investment return, savings rate, wage growth rate, or another nominal change. Higher nominal return increases both the nominal ending balance and the real return, all else equal.\u003c\/li\u003e\n      \u003cli\u003e\n\u003cstrong\u003eInflation rate\u003c\/strong\u003e is the annual percentage change in prices. Positive inflation reduces purchasing power, while a negative value represents deflation and can increase purchasing power. The rate must be greater than -100% because a price level cannot fall below zero in this model.\u003c\/li\u003e\n      \u003cli\u003e\n\u003cstrong\u003eReal rate of return\u003c\/strong\u003e is the annual percentage change in purchasing power. A positive value means the modeled value grows faster than prices. Zero means purchasing power is preserved. A negative value means the balance may rise in dollars while losing economic value.\u003c\/li\u003e\n      \u003cli\u003e\n\u003cstrong\u003eIllustration amount\u003c\/strong\u003e is an optional hypothetical starting balance for the chart, table, and dollar results. It does not change the percentage return. Use an amount that makes the dollar impact easy to understand; it is not a recommendation or forecast.\u003c\/li\u003e\n      \u003cli\u003e\n\u003cstrong\u003eProjection years\u003c\/strong\u003e controls the horizon shown in the chart and table. A longer horizon magnifies compounding, so even a small annual difference between nominal and real return can create a large long-term gap. The accepted range is 1 to 50 whole years.\u003c\/li\u003e\n    \u003c\/ul\u003e\n\n    \u003ch3\u003eHow is the real rate calculated?\u003c\/h3\u003e\n    \u003cp\u003eThe real-return relationship is \u003cstrong\u003e(1 + nominal rate) ÷ (1 + inflation rate) − 1\u003c\/strong\u003e. For example, a 6.5% nominal return with 2.4% inflation produces a real return of about 4.00%, not 4.10%. Simple subtraction is only an approximation because the exact formula accounts for the fact that both percentages apply to changing bases.\u003c\/p\u003e\n    \u003cp\u003eThe same equation can be rearranged to find the other variables. Nominal return equals \u003cstrong\u003e(1 + real rate) × (1 + inflation rate) − 1\u003c\/strong\u003e. Inflation equals \u003cstrong\u003e(1 + nominal rate) ÷ (1 + real rate) − 1\u003c\/strong\u003e. Rates are converted from percentages to decimals during calculation and converted back for display.\u003c\/p\u003e\n\n    \u003ch3\u003eHow should the results be interpreted?\u003c\/h3\u003e\n    \u003cp\u003eThe primary result is the rate selected in the “Solve for” control. The one-year nominal value applies the nominal rate to the illustration amount. The one-year real value removes one year of inflation from that nominal ending balance. Inflation adjustment is the difference between those two values; a negative figure shows how much of the nominal balance is offset by inflation, while a positive figure can appear during deflation.\u003c\/p\u003e\n    \u003cp\u003eReal value at horizon compounds the real rate for the selected number of years. It is expressed in today’s purchasing-power terms under the assumption that the entered annual rates remain constant. Real-world returns and inflation vary, so the projection is best used for scenario analysis rather than prediction.\u003c\/p\u003e\n\n    \u003ch3\u003eWhat do the chart and table show?\u003c\/h3\u003e\n    \u003cp\u003eThe nominal-balance line shows the account value in future dollars. The cost-of-basket line shows how much the original basket of goods would cost if prices changed at the entered inflation rate. The real-purchasing-power line converts the account balance back into today’s money. When the nominal line rises faster than the basket-cost line, real purchasing power increases.\u003c\/p\u003e\n    \u003cp\u003eThe table exposes the exact annual values behind the chart. The price index begins at 100.00 and compounds with inflation. A value of 126 means the modeled price level is 26% higher than at the start. During deflation, the index may fall below 100. The table and downloaded workbook update from the same current-state model as the on-screen result.\u003c\/p\u003e\n\n    \u003ch3\u003eCommon mistakes and practical limits\u003c\/h3\u003e\n    \u003cp\u003eA frequent mistake is treating nominal return minus inflation as exact. The approximation is often close at low rates but becomes less accurate when rates are large. Another mistake is mixing periods, such as comparing a monthly return with annual inflation. Convert both rates to the same annual basis before entering them.\u003c\/p\u003e\n    \u003cp\u003eTaxes, fees, cash flows, volatility, and changes in inflation are outside this simplified model. For background on price measurement, see the \u003ca href=\"https:\/\/www.bls.gov\/cpi\/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eU.S. Bureau of Labor Statistics Consumer Price Index\u003c\/a\u003e. For plain-language inflation material, review the \u003ca href=\"https:\/\/www.federalreserveeducation.org\/about-the-fed\/structure-and-functions\/monetary-policy\/inflation\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eFederal Reserve Education inflation overview\u003c\/a\u003e. The \u003ca href=\"https:\/\/www.investor.gov\/introduction-investing\/investing-basics\/glossary\/compound-interest\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eSEC Investor.gov explanation of compound interest\u003c\/a\u003e provides useful context for long-horizon growth, and the \u003ca href=\"https:\/\/www.treasurydirect.gov\/marketable-securities\/tips\/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eU.S. Treasury’s TIPS information\u003c\/a\u003e describes securities whose principal is linked to inflation.\u003c\/p\u003e\n  \u003c\/section\u003e\n\u003c\/div\u003e","brand":"FinancialModelsLab","offers":[{"title":"Default Title","offer_id":49909489959155,"sku":"real-rate-of-return","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/real-rate-of-return.webp?v=1783935591","url":"https:\/\/financialmodelslab.com\/products\/real-rate-of-return","provider":"Financial Models Lab","version":"1.0","type":"link"}