{"product_id":"year-over-year-growth","title":"Year Over Year Growth Calculator","description":"\u003cstyle\u003e\n.yoyg-calculator {\n  --ink: #0f172a;\n  --muted: #475569;\n  --border: #e2e8f0;\n  --surface: #ffffff;\n  --tint: #f8fafc;\n  --primary: #1d4ed8;\n  --accent: #c2410c;\n  --accent-hover: #9a3412;\n  --chart-1: #1e40af;\n  --chart-2: #0d9488;\n  --chart-3: #7c3aed;\n  --chart-4: #be185d;\n  --chart-5: #334155;\n  width: 100%;\n  max-width: 1200px;\n  margin: 0 auto;\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  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  font-size: 15px;\n  line-height: 1.55;\n  container-type: inline-size;\n  container-name: yoyg;\n}\n.yoyg-calculator,\n.yoyg-calculator *,\n.yoyg-calculator *::before,\n.yoyg-calculator *::after {\n  box-sizing: border-box;\n}\n.yoyg-calculator h2,\n.yoyg-calculator h3,\n.yoyg-calculator p,\n.yoyg-calculator ul,\n.yoyg-calculator ol,\n.yoyg-calculator table,\n.yoyg-calculator fieldset {\n  margin-top: 0;\n}\n.yoyg-calculator a {\n  color: var(--primary);\n  text-decoration-thickness: 1px;\n  text-underline-offset: 2px;\n}\n.yoyg-calculator a:hover {\n  text-decoration-thickness: 2px;\n}\n.yoyg-calculator button,\n.yoyg-calculator input,\n.yoyg-calculator select {\n  font: inherit;\n}\n.yoyg-header,\n.yoyg-toolbar,\n.yoyg-workspace,\n.yoyg-chart-section,\n.yoyg-table-section,\n.yoyg-education {\n  min-width: 0;\n}\n.yoyg-header {\n  padding: 24px 24px 16px;\n  border-bottom: 1px solid var(--border);\n  background: linear-gradient(180deg, var(--surface), var(--tint));\n}\n.yoyg-title {\n  margin-bottom: 4px;\n  font-size: 24px;\n  line-height: 1.25;\n  font-weight: 700;\n  letter-spacing: -.015em;\n}\n.yoyg-subtitle {\n  margin-bottom: 16px;\n  color: var(--muted);\n  max-width: 760px;\n}\n.yoyg-pills {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n  min-width: 0;\n}\n.yoyg-pill {\n  display: inline-flex;\n  align-items: center;\n  gap: 8px;\n  min-width: 0;\n  padding: 6px 10px;\n  border: 1px solid var(--border);\n  border-radius: 999px;\n  background: var(--surface);\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.yoyg-pill strong {\n  color: var(--ink);\n  font-variant-numeric: tabular-nums;\n}\n.yoyg-toolbar {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n  padding: 16px 24px;\n  border-bottom: 1px solid var(--border);\n  background: var(--surface);\n}\n.yoyg-button {\n  min-height: 44px;\n  border-radius: 6px;\n  padding: 11px 16px;\n  border: 1px solid var(--border);\n  background: var(--surface);\n  color: var(--ink);\n  font-weight: 650;\n  cursor: pointer;\n  transition: box-shadow .15s ease, border-color .15s ease, background .15s ease;\n}\n.yoyg-button:hover {\n  border-color: #94a3b8;\n  box-shadow: 0 2px 5px rgba(15, 23, 42, .1);\n}\n.yoyg-button:focus-visible,\n.yoyg-calculator input:focus-visible,\n.yoyg-calculator select:focus-visible,\n.yoyg-calculator summary:focus-visible {\n  outline: 3px solid rgba(29, 78, 216, .35);\n  outline-offset: 2px;\n}\n.yoyg-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.yoyg-download:hover,\n.yoyg-download:active {\n  border-color: var(--accent-hover);\n  background: var(--accent-hover);\n}\n.yoyg-button-icon {\n  width: 18px;\n  height: 18px;\n  flex: 0 0 auto;\n}\n.yoyg-workspace {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr);\n  gap: 24px;\n  padding: 24px;\n  background: var(--tint);\n  border-bottom: 1px solid var(--border);\n}\n.yoyg-panel {\n  min-width: 0;\n  background: var(--surface);\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  padding: 20px;\n  box-shadow: 0 1px 2px rgba(15, 23, 42, .04);\n}\n.yoyg-section-title {\n  margin-bottom: 16px;\n  font-size: 18px;\n  line-height: 1.35;\n  font-weight: 650;\n}\n.yoyg-field-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));\n  gap: 16px;\n  min-width: 0;\n}\n.yoyg-field {\n  display: flex;\n  flex-direction: column;\n  gap: 6px;\n  min-width: 0;\n}\n.yoyg-field label,\n.yoyg-field-label {\n  color: var(--ink);\n  font-size: 14px;\n  font-weight: 600;\n}\n.yoyg-control {\n  width: 100%;\n  min-width: 0;\n  min-height: 44px;\n  padding: 10px 12px;\n  border: 1px solid #cbd5e1;\n  border-radius: 6px;\n  background: var(--surface);\n  color: var(--ink);\n  font-size: 15px;\n  font-variant-numeric: tabular-nums;\n}\n.yoyg-control:hover {\n  border-color: #94a3b8;\n}\n.yoyg-helper,\n.yoyg-error {\n  min-height: 20px;\n  font-size: 13px;\n  font-weight: 500;\n}\n.yoyg-helper {\n  color: var(--muted);\n}\n.yoyg-error {\n  color: #b91c1c;\n}\n.yoyg-input-wrap {\n  position: relative;\n  min-width: 0;\n}\n.yoyg-input-wrap .yoyg-control {\n  padding-right: 48px;\n}\n.yoyg-unit {\n  position: absolute;\n  right: 12px;\n  top: 50%;\n  transform: translateY(-50%);\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 600;\n  pointer-events: none;\n}\n.yoyg-toggle-row {\n  display: flex;\n  align-items: flex-start;\n  gap: 10px;\n  margin-top: 16px;\n  padding: 12px;\n  border: 1px solid var(--border);\n  border-radius: 6px;\n  background: var(--tint);\n}\n.yoyg-toggle-row input {\n  width: 18px;\n  height: 18px;\n  margin: 2px 0 0;\n  flex: 0 0 auto;\n  accent-color: var(--primary);\n}\n.yoyg-toggle-copy {\n  min-width: 0;\n}\n.yoyg-toggle-copy label {\n  display: block;\n  font-size: 14px;\n  font-weight: 600;\n}\n.yoyg-toggle-copy span {\n  display: block;\n  margin-top: 2px;\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.yoyg-cagr-fields {\n  margin-top: 16px;\n}\n.yoyg-cagr-fields[hidden] {\n  display: none;\n}\n.yoyg-results {\n  display: flex;\n  flex-direction: column;\n  gap: 16px;\n}\n.yoyg-primary-result {\n  padding: 18px;\n  border: 1px solid #bfdbfe;\n  border-radius: 8px;\n  background: #eff6ff;\n}\n.yoyg-primary-label {\n  margin-bottom: 4px;\n  color: #1e3a8a;\n  font-size: 13px;\n  font-weight: 650;\n}\n.yoyg-primary-value {\n  margin-bottom: 4px;\n  font-size: 30px;\n  line-height: 1.15;\n  font-weight: 700;\n  letter-spacing: -.02em;\n  font-variant-numeric: tabular-nums;\n  overflow-wrap: anywhere;\n}\n.yoyg-primary-copy {\n  margin-bottom: 0;\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.yoyg-result-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));\n  gap: 12px;\n  min-width: 0;\n}\n.yoyg-result-card {\n  min-width: 0;\n  padding: 14px;\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  background: var(--surface);\n}\n.yoyg-result-card span {\n  display: block;\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.yoyg-result-card strong {\n  display: block;\n  margin-top: 4px;\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.yoyg-result-note {\n  margin: 0;\n  padding: 10px 12px;\n  border-left: 3px solid var(--primary);\n  border-radius: 0 6px 6px 0;\n  background: var(--tint);\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.yoyg-chart-section,\n.yoyg-table-section,\n.yoyg-education {\n  padding: 24px;\n  border-bottom: 1px solid var(--border);\n}\n.yoyg-chart-card,\n.yoyg-table-card {\n  min-width: 0;\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  padding: 20px;\n  background: var(--surface);\n}\n.yoyg-chart-intro {\n  margin-bottom: 16px;\n  color: var(--muted);\n}\n.yoyg-chart-cluster {\n  display: grid;\n  grid-template-columns: minmax(0, 620px) max-content;\n  justify-content: center;\n  align-items: center;\n  gap: 24px;\n  min-width: 0;\n}\n.yoyg-plot-wrap,\n.yoyg-legend,\n.yoyg-chart-caption,\n.yoyg-chart-data,\n.yoyg-empty-state {\n  min-width: 0;\n}\n.yoyg-plot-wrap {\n  width: 100%;\n  max-width: 620px;\n}\n.yoyg-plot-wrap svg {\n  display: block;\n  width: 100%;\n  height: auto;\n  min-height: 280px;\n  max-height: 360px;\n}\n.yoyg-legend {\n  display: grid;\n  gap: 10px;\n  align-content: center;\n}\n.yoyg-legend-row {\n  display: grid;\n  grid-template-columns: 12px minmax(90px, max-content) max-content;\n  align-items: center;\n  gap: 10px;\n  min-width: 0;\n  font-size: 13px;\n  font-weight: 500;\n}\n.yoyg-legend-swatch {\n  width: 12px;\n  height: 12px;\n  border-radius: 2px;\n}\n.yoyg-legend-value {\n  font-weight: 700;\n  font-variant-numeric: tabular-nums;\n  white-space: nowrap;\n}\n.yoyg-chart-data {\n  margin-top: 16px;\n}\n.yoyg-chart-caption,\n.yoyg-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.yoyg-empty-state {\n  padding: 16px;\n  border: 1px dashed #94a3b8;\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.yoyg-safe-stack .yoyg-chart-cluster {\n  grid-template-columns: minmax(0, 620px);\n  align-items: start;\n  gap: 16px;\n}\n.yoyg-safe-stack .yoyg-legend {\n  margin-top: 0;\n  justify-self: center;\n}\n.yoyg-safe-stack .yoyg-chart-caption {\n  margin-top: 20px;\n}\n.yoyg-table-overflow {\n  max-width: 100%;\n  overflow-x: auto;\n  border: 1px solid var(--border);\n  border-radius: 6px;\n}\n.yoyg-table {\n  width: 100%;\n  min-width: 620px;\n  border-collapse: collapse;\n  font-size: 14px;\n  font-variant-numeric: tabular-nums;\n}\n.yoyg-table th,\n.yoyg-table td {\n  padding: 11px 12px;\n  border-bottom: 1px solid var(--border);\n  text-align: left;\n  vertical-align: top;\n}\n.yoyg-table th {\n  background: #0f2747;\n  color: #ffffff;\n  font-size: 13px;\n  font-weight: 650;\n}\n.yoyg-table td.yoyg-numeric,\n.yoyg-table th.yoyg-numeric {\n  text-align: right;\n}\n.yoyg-table tbody tr:last-child td {\n  border-bottom: 0;\n}\n.yoyg-table tbody tr:hover td {\n  background: var(--tint);\n}\n.yoyg-safe-table-stack .yoyg-table-note {\n  margin-top: 20px;\n}\n.yoyg-education {\n  border-bottom: 0;\n  background: var(--surface);\n}\n.yoyg-education-inner {\n  max-width: 900px;\n}\n.yoyg-education h2 {\n  margin-bottom: 10px;\n  font-size: 18px;\n  line-height: 1.35;\n  font-weight: 650;\n}\n.yoyg-education h3 {\n  margin-bottom: 8px;\n  font-size: 16px;\n  line-height: 1.4;\n  font-weight: 650;\n}\n.yoyg-education p,\n.yoyg-education li {\n  color: #334155;\n}\n.yoyg-education p {\n  margin-bottom: 16px;\n}\n.yoyg-education ul,\n.yoyg-education ol {\n  margin-bottom: 20px;\n  padding-left: 22px;\n}\n.yoyg-education li + li {\n  margin-top: 6px;\n}\n.yoyg-formula {\n  padding: 14px;\n  border: 1px solid #bfdbfe;\n  border-radius: 6px;\n  background: #eff6ff;\n  color: #172554;\n  font-weight: 650;\n  font-variant-numeric: tabular-nums;\n  overflow-wrap: anywhere;\n}\n.yoyg-visually-hidden {\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@container yoyg (min-width: 900px) {\n  .yoyg-workspace {\n    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n  }\n}\n@container yoyg (max-width: 639px) {\n  .yoyg-header,\n  .yoyg-toolbar,\n  .yoyg-workspace,\n  .yoyg-chart-section,\n  .yoyg-table-section,\n  .yoyg-education {\n    padding-left: 16px;\n    padding-right: 16px;\n  }\n  .yoyg-chart-card,\n  .yoyg-table-card,\n  .yoyg-panel {\n    padding: 16px;\n  }\n  .yoyg-chart-cluster {\n    grid-template-columns: minmax(0, 1fr);\n    align-items: start;\n    gap: 12px;\n  }\n  .yoyg-legend {\n    justify-self: center;\n  }\n  .yoyg-chart-caption,\n  .yoyg-table-note {\n    margin-top: 12px;\n  }\n  .yoyg-plot-wrap svg {\n    min-height: 240px;\n  }\n}\n@container yoyg (max-width: 380px) {\n  .yoyg-title {\n    font-size: 22px;\n  }\n  .yoyg-primary-value {\n    font-size: 27px;\n  }\n  .yoyg-toolbar .yoyg-button {\n    width: 100%;\n    justify-content: center;\n  }\n}\n@media (prefers-reduced-motion: reduce) {\n  .yoyg-calculator .yoyg-button {\n    transition: none;\n  }\n}\n\u003c\/style\u003e\n\u003cdiv class=\"yoyg-calculator\" data-calculator-root\u003e\n  \u003cheader class=\"yoyg-header\"\u003e\n    \u003ch2 class=\"yoyg-title\"\u003eYear-Over-Year Growth Calculator\u003c\/h2\u003e\n    \u003cp class=\"yoyg-subtitle\"\u003eCompare the same metric across two annual periods, quantify the absolute change, and optionally annualize a multi-year change with CAGR.\u003c\/p\u003e\n    \u003cdiv class=\"yoyg-pills\" aria-label=\"Live calculator summary\"\u003e\n      \u003cspan class=\"yoyg-pill\"\u003eInitial \u003cstrong data-yoyg-pill-initial\u003e100\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"yoyg-pill\"\u003eFinal \u003cstrong data-yoyg-pill-final\u003e150\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"yoyg-pill\"\u003eChange \u003cstrong data-yoyg-pill-change\u003e50.00%\u003c\/strong\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/header\u003e\n  \u003cdiv class=\"yoyg-toolbar\"\u003e\n    \u003cbutton class=\"yoyg-button yoyg-download\" type=\"button\" data-yoyg-download\u003e\n      \u003csvg class=\"yoyg-button-icon\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpath fill=\"currentColor\" d=\"M5 2h9l5 5v15H5V2zm8 2H7v16h10V8h-4V4zm1 1.4V7h1.6L14 5.4zM8 11h8v2H8v-2zm0 4h8v2H8v-2z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cspan\u003eDownload Excel\u003c\/span\u003e\n    \u003c\/button\u003e\n    \u003cbutton class=\"yoyg-button\" type=\"button\" data-yoyg-reset\u003eReset\u003c\/button\u003e\n  \u003c\/div\u003e\n  \u003csection class=\"yoyg-workspace\" aria-label=\"Year-over-year calculator workspace\"\u003e\n    \u003cdiv class=\"yoyg-panel\"\u003e\n      \u003ch3 class=\"yoyg-section-title\"\u003eInputs\u003c\/h3\u003e\n      \u003cdiv class=\"yoyg-field-grid\"\u003e\n        \u003cdiv class=\"yoyg-field\"\u003e\n          \u003clabel for=\"yoyg-metric\"\u003eMetric name\u003c\/label\u003e\n          \u003cinput class=\"yoyg-control\" id=\"yoyg-metric\" data-yoyg-input=\"metric\" type=\"text\" value=\"Revenue\" autocomplete=\"off\"\u003e\n          \u003cspan class=\"yoyg-helper\"\u003eOptional label used in the chart and workbook.\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"yoyg-field\"\u003e\n          \u003clabel for=\"yoyg-initial-label\"\u003eInitial period label\u003c\/label\u003e\n          \u003cinput class=\"yoyg-control\" id=\"yoyg-initial-label\" data-yoyg-input=\"initialLabel\" type=\"text\" value=\"Prior year\" autocomplete=\"off\"\u003e\n          \u003cspan class=\"yoyg-helper\"\u003eUse the earlier comparable period.\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"yoyg-field\"\u003e\n          \u003clabel for=\"yoyg-final-label\"\u003eFinal period label\u003c\/label\u003e\n          \u003cinput class=\"yoyg-control\" id=\"yoyg-final-label\" data-yoyg-input=\"finalLabel\" type=\"text\" value=\"Current year\" autocomplete=\"off\"\u003e\n          \u003cspan class=\"yoyg-helper\"\u003eUse the later comparable period.\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"yoyg-field\"\u003e\n          \u003clabel for=\"yoyg-initial\"\u003eValue in initial year\u003c\/label\u003e\n          \u003cinput class=\"yoyg-control\" id=\"yoyg-initial\" data-yoyg-input=\"initial\" type=\"text\" inputmode=\"decimal\" value=\"100\" autocomplete=\"off\" aria-describedby=\"yoyg-initial-help yoyg-initial-error\"\u003e\n          \u003cspan class=\"yoyg-helper\" id=\"yoyg-initial-help\"\u003eThe baseline denominator. It cannot be zero for a percentage change.\u003c\/span\u003e\n          \u003cspan class=\"yoyg-error\" id=\"yoyg-initial-error\" data-yoyg-error=\"initial\"\u003e\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"yoyg-field\"\u003e\n          \u003clabel for=\"yoyg-final\"\u003eValue in final year\u003c\/label\u003e\n          \u003cinput class=\"yoyg-control\" id=\"yoyg-final\" data-yoyg-input=\"final\" type=\"text\" inputmode=\"decimal\" value=\"150\" autocomplete=\"off\" aria-describedby=\"yoyg-final-help yoyg-final-error\"\u003e\n          \u003cspan class=\"yoyg-helper\" id=\"yoyg-final-help\"\u003eThe value for the matching period one year later.\u003c\/span\u003e\n          \u003cspan class=\"yoyg-error\" id=\"yoyg-final-error\" data-yoyg-error=\"final\"\u003e\u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"yoyg-toggle-row\"\u003e\n        \u003cinput id=\"yoyg-cagr-toggle\" data-yoyg-input=\"cagrEnabled\" type=\"checkbox\"\u003e\n        \u003cdiv class=\"yoyg-toggle-copy\"\u003e\n          \u003clabel for=\"yoyg-cagr-toggle\"\u003eCalculate CAGR\u003c\/label\u003e\n          \u003cspan\u003eAnnualize the total change when the values are separated by more than one year.\u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"yoyg-cagr-fields\" data-yoyg-cagr-fields hidden\u003e\n        \u003cdiv class=\"yoyg-field\"\u003e\n          \u003clabel for=\"yoyg-years\"\u003eYears between values\u003c\/label\u003e\n          \u003cdiv class=\"yoyg-input-wrap\"\u003e\n            \u003cinput class=\"yoyg-control\" id=\"yoyg-years\" data-yoyg-input=\"years\" type=\"text\" inputmode=\"decimal\" value=\"3\" autocomplete=\"off\" aria-describedby=\"yoyg-years-help yoyg-years-error\"\u003e\n            \u003cspan class=\"yoyg-unit\"\u003eyears\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003cspan class=\"yoyg-helper\" id=\"yoyg-years-help\"\u003eEnter a positive number, including decimals for partial years.\u003c\/span\u003e\n          \u003cspan class=\"yoyg-error\" id=\"yoyg-years-error\" data-yoyg-error=\"years\"\u003e\u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"yoyg-panel yoyg-results\"\u003e\n      \u003ch3 class=\"yoyg-section-title\"\u003eLive results\u003c\/h3\u003e\n      \u003cdiv class=\"yoyg-primary-result\" aria-live=\"polite\" aria-atomic=\"true\"\u003e\n        \u003cdiv class=\"yoyg-primary-label\"\u003eYear-over-year percentage change\u003c\/div\u003e\n        \u003cdiv class=\"yoyg-primary-value\" data-yoyg-primary\u003e50.00%\u003c\/div\u003e\n        \u003cp class=\"yoyg-primary-copy\" data-yoyg-primary-copy\u003eThe metric increased by 50.00% compared with the initial year.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"yoyg-result-grid\"\u003e\n        \u003cdiv class=\"yoyg-result-card\"\u003e\n\u003cspan\u003eAbsolute change\u003c\/span\u003e\u003cstrong data-yoyg-absolute\u003e50.00\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"yoyg-result-card\"\u003e\n\u003cspan\u003eGrowth multiple\u003c\/span\u003e\u003cstrong data-yoyg-multiple\u003e1.50×\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"yoyg-result-card\"\u003e\n\u003cspan\u003eCAGR\u003c\/span\u003e\u003cstrong data-yoyg-cagr\u003eNot enabled\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"yoyg-result-card\"\u003e\n\u003cspan\u003eDirection\u003c\/span\u003e\u003cstrong data-yoyg-direction\u003eIncrease\u003c\/strong\u003e\n\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cp class=\"yoyg-result-note\" data-yoyg-result-note\u003eCompare equivalent periods and keep the metric definition consistent to avoid a misleading result.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n  \u003csection class=\"yoyg-chart-section\"\u003e\n    \u003cdiv class=\"yoyg-chart-card\" data-yoyg-chart-card\u003e\n      \u003ch3 class=\"yoyg-section-title\"\u003ePeriod comparison\u003c\/h3\u003e\n      \u003cp class=\"yoyg-chart-intro\" data-yoyg-chart-intro\u003eRevenue rose from 100.00 to 150.00.\u003c\/p\u003e\n      \u003cdiv data-yoyg-chart-host\u003e\u003c\/div\u003e\n      \u003cdiv class=\"yoyg-chart-caption\" data-yoyg-chart-caption\u003eThe bars show the two entered values on a shared scale. The exact figures also appear in the data summary below.\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n  \u003csection class=\"yoyg-table-section\"\u003e\n    \u003cdiv class=\"yoyg-table-card\" data-yoyg-table-card\u003e\n      \u003ch3 class=\"yoyg-section-title\"\u003eCalculation detail\u003c\/h3\u003e\n      \u003cdiv class=\"yoyg-table-overflow\" data-yoyg-table-wrap\u003e\n        \u003ctable class=\"yoyg-table\"\u003e\n          \u003cthead\u003e\u003ctr\u003e\n\u003cth\u003eMeasure\u003c\/th\u003e\n\u003cth class=\"yoyg-numeric\"\u003eValue\u003c\/th\u003e\n\u003cth\u003eInterpretation\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n          \u003ctbody data-yoyg-detail-body\u003e\u003c\/tbody\u003e\n        \u003c\/table\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"yoyg-table-note\" data-yoyg-table-note\u003eThe percentage change uses the initial-year value as the denominator. A zero baseline makes the percentage undefined even when the absolute change is known.\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n  \u003csection class=\"yoyg-education\"\u003e\n    \u003cdiv class=\"yoyg-education-inner\"\u003e\n      \u003ch2\u003eWhat does year-over-year growth measure?\u003c\/h2\u003e\n      \u003cp\u003eYear-over-year, or YoY, growth compares a metric for one period with the same period one year earlier. It is commonly used for revenue, profit, expenses, units sold, subscribers, website sessions, headcount, and other performance indicators. Comparing matching periods helps reduce the distortion caused by normal seasonality. For example, a retailer should usually compare December with the previous December rather than with November, because holiday demand can make adjacent-month comparisons misleading.\u003c\/p\u003e\n      \u003cp\u003eThe calculator reports both the percentage change and the absolute change. Percentage change makes differently sized businesses or metrics easier to compare, while absolute change preserves the real scale of the movement. A 50% increase from 2 to 3 is mathematically large but operationally small; a 5% increase on a very large base may be far more important in dollars, units, or customers.\u003c\/p\u003e\n      \u003ch2\u003eHow should each input be used?\u003c\/h2\u003e\n      \u003ch3\u003eMetric name and period labels\u003c\/h3\u003e\n      \u003cp\u003eThe metric name is optional and does not change the mathematics. It gives the chart and Excel workbook a useful context, such as “Revenue,” “Active customers,” or “Support tickets.” The initial and final period labels should identify two truly comparable periods. Good examples are “FY 2025” and “FY 2026,” or “Q2 2025” and “Q2 2026.” Avoid comparing a full year with a partial year, gross revenue with net revenue, or a metric whose accounting definition changed between periods.\u003c\/p\u003e\n      \u003ch3\u003eValue in initial year\u003c\/h3\u003e\n      \u003cp\u003eThe initial value is the baseline and denominator in the standard formula. It is required for a valid YoY percentage and cannot be zero. Higher or lower initial values change the percentage because the same absolute movement represents a different share of the baseline. Negative baselines are accepted because some metrics, such as profit, can be negative, but the resulting percentage can be counterintuitive. In those cases, emphasize the absolute change and the sign transition rather than relying on the percentage alone.\u003c\/p\u003e\n      \u003ch3\u003eValue in final year\u003c\/h3\u003e\n      \u003cp\u003eThe final value is the later observation. It may be positive, zero, or negative. A final value above the initial value normally produces a positive percentage when the baseline is positive; a lower value produces a negative percentage. Enter numbers in the same units as the initial value. The parser accepts commas, spaces, currency symbols, and percent signs, so entries such as “$80,000” or “5.25%” can still be read as numbers.\u003c\/p\u003e\n      \u003ch3\u003eCalculate CAGR and years between values\u003c\/h3\u003e\n      \u003cp\u003eEnable CAGR only when the initial and final values are separated by more than one annual period. CAGR is the constant annual rate that would compound the initial value into the final value over the chosen horizon. It requires positive initial and final values and a positive number of years. CAGR does not reveal volatility inside the period; a business may have uneven annual results even when its start-to-finish CAGR looks smooth.\u003c\/p\u003e\n      \u003ch2\u003eHow are the results calculated?\u003c\/h2\u003e\n      \u003cp class=\"yoyg-formula\"\u003eYoY growth (%) = ((Final value − Initial value) ÷ Initial value) × 100\u003c\/p\u003e\n      \u003cp\u003eThe absolute change is simply final value minus initial value. The growth multiple is final value divided by initial value, so 1.50× means the final value is one and a half times the baseline. When CAGR is enabled, the formula is (Final ÷ Initial)\u003csup\u003e1 ÷ years\u003c\/sup\u003e − 1. The calculator keeps full precision internally and rounds only the displayed and exported values.\u003c\/p\u003e\n      \u003ch2\u003eHow should the chart and table be interpreted?\u003c\/h2\u003e\n      \u003cp\u003eThe chart places the two values on one scale so the size and direction of the movement are visible at a glance. Bars above the zero line represent positive values and bars below it represent negative values. The legend and compact data table use the same calculated model as the chart, which keeps the visual and exact numbers synchronized. If both values are zero or blank, the chart is replaced by a compact empty state rather than an artificial graphic.\u003c\/p\u003e\n      \u003cp\u003eThe calculation-detail table explains each output. “Direction” classifies the movement as an increase, decrease, or no change. “Growth multiple” is useful when changes are very large, while the percentage is usually easier to communicate for ordinary comparisons. CAGR appears only when enabled and mathematically valid. The downloaded workbook captures the current inputs and results at the moment you click Download Excel.\u003c\/p\u003e\n      \u003ch2\u003eWhat are the main analytical pitfalls?\u003c\/h2\u003e\n      \u003cul\u003e\n        \u003cli\u003e\n\u003cstrong\u003eBase effects:\u003c\/strong\u003e a very small prior-year value can produce an enormous percentage that overstates practical progress.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eSeasonal mismatch:\u003c\/strong\u003e compare the same month, quarter, or fiscal period. The U.S. Bureau of Labor Statistics explains why many official series use \u003ca href=\"https:\/\/www.bls.gov\/cpi\/seasonal-adjustment\/questions-and-answers.htm\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eseasonal adjustment\u003c\/a\u003e when short-term patterns matter.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eDefinition changes:\u003c\/strong\u003e acquisitions, accounting-policy changes, pricing changes, or revised data collection can break comparability.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eInflation:\u003c\/strong\u003e nominal revenue growth may not represent real purchasing-power growth. The \u003ca href=\"https:\/\/fred.stlouisfed.org\/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eFederal Reserve Economic Data platform\u003c\/a\u003e provides economic series that can help place a result in context.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eOne-period overconfidence:\u003c\/strong\u003e a single YoY observation is not a trend. Review several comparable periods and the underlying operational drivers.\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003ch2\u003eWhen is YoY growth most useful?\u003c\/h2\u003e\n      \u003cp\u003eYoY growth is especially helpful for seasonal businesses, recurring reporting, budget reviews, and KPI dashboards. Public-company analysts often compare current filings with prior-year periods; the \u003ca href=\"https:\/\/www.sec.gov\/edgar\/search\/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eSEC EDGAR database\u003c\/a\u003e provides company filings for that work. For broader economic and industry comparisons, the \u003ca href=\"https:\/\/www.census.gov\/data.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eU.S. Census Bureau data portal\u003c\/a\u003e offers many business and demographic series.\u003c\/p\u003e\n      \u003cp\u003eUse the result as a diagnostic, not as a standalone decision rule. A high growth rate may reflect healthy demand, a temporary rebound, price increases, an acquisition, or an unusually weak prior year. A decline may be planned if a company exited low-margin work or improved customer quality. The most useful interpretation combines the percentage, absolute change, business context, and a consistent series of comparable periods.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\u003c\/div\u003e","brand":"FinancialModelsLab","offers":[{"title":"Default Title","offer_id":49909485535475,"sku":"year-over-year-growth","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/year-over-year-growth.webp?v=1783935476","url":"https:\/\/financialmodelslab.com\/products\/year-over-year-growth","provider":"Financial Models Lab","version":"1.0","type":"link"}