{"product_id":"ffo","title":"FFO Calculator","description":"\u003cstyle\u003e\n.ffo-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  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n  font-size: 15px;\n  line-height: 1.55;\n  container-type: inline-size;\n}\n.ffo-calculator,\n.ffo-calculator *,\n.ffo-calculator *::before,\n.ffo-calculator *::after {\n  box-sizing: border-box;\n}\n.ffo-calculator button,\n.ffo-calculator input,\n.ffo-calculator select,\n.ffo-calculator textarea {\n  font: inherit;\n}\n.ffo-calculator button,\n.ffo-calculator input,\n.ffo-calculator a {\n  -webkit-tap-highlight-color: transparent;\n}\n.ffo-calculator .ffo-shell {\n  display: grid;\n  gap: 24px;\n  min-width: 0;\n}\n.ffo-calculator .ffo-header {\n  display: grid;\n  gap: 12px;\n  min-width: 0;\n  padding: 24px;\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);\n  box-shadow: 0 1px 2px rgba(15, 23, 42, .06);\n}\n.ffo-calculator .ffo-title-row {\n  display: flex;\n  align-items: flex-start;\n  justify-content: space-between;\n  gap: 16px;\n  min-width: 0;\n}\n.ffo-calculator .ffo-title-copy,\n.ffo-calculator .ffo-summary-pills,\n.ffo-calculator .ffo-workspace \u003e *,\n.ffo-calculator .ffo-field,\n.ffo-calculator .ffo-result-card,\n.ffo-calculator .ffo-chart-cluster \u003e *,\n.ffo-calculator .ffo-education,\n.ffo-calculator .ffo-education \u003e * {\n  min-width: 0;\n}\n.ffo-calculator .ffo-title {\n  margin: 0;\n  color: var(--ink);\n  font-size: 24px;\n  font-weight: 700;\n  line-height: 1.25;\n  letter-spacing: -.02em;\n}\n.ffo-calculator .ffo-subtitle {\n  max-width: 760px;\n  margin: 8px 0 0;\n  color: var(--muted);\n  font-size: 15px;\n}\n.ffo-calculator .ffo-summary-pills {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n}\n.ffo-calculator .ffo-pill {\n  display: inline-flex;\n  align-items: center;\n  gap: 8px;\n  min-height: 32px;\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  white-space: nowrap;\n}\n.ffo-calculator .ffo-pill strong {\n  color: var(--ink);\n  font-variant-numeric: tabular-nums;\n}\n.ffo-calculator .ffo-toolbar {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: 12px;\n  min-width: 0;\n}\n.ffo-calculator .ffo-button {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: 10px;\n  min-height: 46px;\n  padding: 12px 18px;\n  border: 1px solid transparent;\n  border-radius: 6px;\n  font-size: 15px;\n  font-weight: 650;\n  line-height: 1;\n  text-decoration: none;\n  white-space: nowrap;\n  cursor: pointer;\n  transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease;\n}\n.ffo-calculator .ffo-button:hover {\n  box-shadow: 0 2px 5px rgba(15, 23, 42, .12);\n  transform: translateY(-1px);\n}\n.ffo-calculator .ffo-button:active {\n  transform: translateY(0);\n}\n.ffo-calculator .ffo-button:focus-visible,\n.ffo-calculator input:focus-visible,\n.ffo-calculator a:focus-visible {\n  outline: 3px solid rgba(29, 78, 216, .32);\n  outline-offset: 2px;\n}\n.ffo-calculator .ffo-download {\n  border-color: var(--accent);\n  background: var(--accent);\n  color: #ffffff;\n}\n.ffo-calculator .ffo-download:hover,\n.ffo-calculator .ffo-download:active {\n  border-color: var(--accent-hover);\n  background: var(--accent-hover);\n}\n.ffo-calculator .ffo-reset {\n  border-color: #cbd5e1;\n  background: var(--surface);\n  color: var(--ink);\n}\n.ffo-calculator .ffo-reset:hover {\n  border-color: #94a3b8;\n  background: var(--tint);\n}\n.ffo-calculator .ffo-button-icon {\n  width: 18px;\n  height: 18px;\n  flex: 0 0 18px;\n}\n.ffo-calculator .ffo-workspace {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr);\n  gap: 24px;\n  align-items: start;\n  min-width: 0;\n}\n.ffo-calculator .ffo-panel {\n  min-width: 0;\n  padding: 24px;\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  background: var(--surface);\n  box-shadow: 0 1px 2px rgba(15, 23, 42, .06);\n}\n.ffo-calculator .ffo-panel-heading {\n  margin: 0 0 4px;\n  color: var(--ink);\n  font-size: 18px;\n  font-weight: 650;\n  line-height: 1.35;\n}\n.ffo-calculator .ffo-panel-intro {\n  margin: 0 0 20px;\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.ffo-calculator .ffo-form-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr));\n  gap: 16px;\n  min-width: 0;\n}\n.ffo-calculator .ffo-field {\n  display: flex;\n  flex-direction: column;\n  min-width: 0;\n}\n.ffo-calculator .ffo-label {\n  display: block;\n  margin: 0 0 6px;\n  color: var(--ink);\n  font-size: 14px;\n  font-weight: 600;\n  line-height: 1.35;\n}\n.ffo-calculator .ffo-control-wrap {\n  position: relative;\n  min-width: 0;\n}\n.ffo-calculator .ffo-control-wrap::before {\n  position: absolute;\n  z-index: 1;\n  top: 50%;\n  left: 12px;\n  color: var(--muted);\n  content: \"$\";\n  font-size: 15px;\n  font-weight: 600;\n  transform: translateY(-50%);\n  pointer-events: none;\n}\n.ffo-calculator .ffo-input {\n  width: 100%;\n  min-width: 0;\n  min-height: 46px;\n  padding: 10px 12px 10px 28px;\n  border: 1px solid #cbd5e1;\n  border-radius: 6px;\n  background: #ffffff;\n  color: var(--ink);\n  font-size: 15px;\n  font-weight: 400;\n  font-variant-numeric: tabular-nums;\n  line-height: 1.35;\n  transition: border-color .16s ease, box-shadow .16s ease;\n}\n.ffo-calculator .ffo-input:hover {\n  border-color: #94a3b8;\n}\n.ffo-calculator .ffo-input[aria-invalid=\"true\"] {\n  border-color: #b91c1c;\n  box-shadow: 0 0 0 1px #b91c1c;\n}\n.ffo-calculator .ffo-helper {\n  min-height: 40px;\n  margin: 6px 0 0;\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n  line-height: 1.45;\n}\n.ffo-calculator .ffo-error {\n  min-height: 19px;\n  margin: 2px 0 0;\n  color: #991b1b;\n  font-size: 13px;\n  font-weight: 600;\n  line-height: 1.45;\n}\n.ffo-calculator .ffo-formula-strip {\n  display: grid;\n  gap: 4px;\n  margin-top: 20px;\n  padding: 12px 14px;\n  border: 1px solid #bfdbfe;\n  border-radius: 6px;\n  background: #eff6ff;\n}\n.ffo-calculator .ffo-formula-label {\n  color: #1e3a8a;\n  font-size: 13px;\n  font-weight: 650;\n}\n.ffo-calculator .ffo-formula {\n  overflow-wrap: anywhere;\n  color: var(--ink);\n  font-size: 14px;\n  font-weight: 600;\n  font-variant-numeric: tabular-nums;\n}\n.ffo-calculator .ffo-results {\n  display: grid;\n  gap: 16px;\n  min-width: 0;\n}\n.ffo-calculator .ffo-primary-result {\n  display: grid;\n  gap: 6px;\n  padding: 20px;\n  border: 1px solid #bfdbfe;\n  border-radius: 8px;\n  background: #eff6ff;\n}\n.ffo-calculator .ffo-primary-label {\n  color: #1e3a8a;\n  font-size: 13px;\n  font-weight: 650;\n}\n.ffo-calculator .ffo-primary-value {\n  color: #172554;\n  font-size: 30px;\n  font-weight: 700;\n  line-height: 1.15;\n  letter-spacing: -.02em;\n  overflow-wrap: anywhere;\n  font-variant-numeric: tabular-nums;\n}\n.ffo-calculator .ffo-primary-detail {\n  color: #334155;\n  font-size: 13px;\n  font-weight: 500;\n}\n.ffo-calculator .ffo-result-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(min(100%, 155px), 1fr));\n  gap: 12px;\n  min-width: 0;\n}\n.ffo-calculator .ffo-result-card {\n  display: grid;\n  align-content: start;\n  gap: 4px;\n  min-height: 112px;\n  padding: 14px;\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  background: var(--tint);\n}\n.ffo-calculator .ffo-card-label {\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 600;\n  line-height: 1.35;\n}\n.ffo-calculator .ffo-card-value {\n  color: var(--ink);\n  font-size: 20px;\n  font-weight: 700;\n  line-height: 1.25;\n  overflow-wrap: anywhere;\n  font-variant-numeric: tabular-nums;\n}\n.ffo-calculator .ffo-card-note {\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n  line-height: 1.35;\n}\n.ffo-calculator .ffo-interpretation {\n  padding: 12px 14px;\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.ffo-calculator .ffo-interpretation strong {\n  color: var(--ink);\n}\n.ffo-calculator .ffo-chart-panel {\n  display: grid;\n  gap: 16px;\n  min-width: 0;\n}\n.ffo-calculator .ffo-chart-heading-row {\n  display: grid;\n  gap: 4px;\n  min-width: 0;\n}\n.ffo-calculator .ffo-chart-title {\n  margin: 0;\n  color: var(--ink);\n  font-size: 18px;\n  font-weight: 650;\n  line-height: 1.35;\n}\n.ffo-calculator .ffo-chart-intro {\n  margin: 0;\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.ffo-calculator .ffo-chart-empty {\n  display: none;\n  padding: 14px;\n  border: 1px dashed #94a3b8;\n  border-radius: 6px;\n  background: var(--tint);\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 600;\n  text-align: center;\n}\n.ffo-calculator .ffo-chart-cluster {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr);\n  gap: 20px;\n  align-items: center;\n  justify-content: center;\n  width: 100%;\n  max-width: 980px;\n  margin: 0 auto;\n  min-width: 0;\n}\n.ffo-calculator .ffo-plot-wrap {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: 100%;\n  min-width: 0;\n}\n.ffo-calculator .ffo-chart-svg {\n  display: block;\n  width: 100%;\n  max-width: 760px;\n  height: auto;\n  overflow: visible;\n}\n.ffo-calculator .ffo-grid-line {\n  stroke: #cbd5e1;\n  stroke-width: 1;\n}\n.ffo-calculator .ffo-zero-line {\n  stroke: #64748b;\n  stroke-width: 1.5;\n}\n.ffo-calculator .ffo-axis-label,\n.ffo-calculator .ffo-x-label,\n.ffo-calculator .ffo-bar-value {\n  fill: #334155;\n  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n  font-size: 13px;\n  font-weight: 600;\n  font-variant-numeric: tabular-nums;\n}\n.ffo-calculator .ffo-bar-value {\n  fill: #0f172a;\n}\n.ffo-calculator .ffo-connector {\n  stroke: #64748b;\n  stroke-width: 1.5;\n  stroke-dasharray: 4 3;\n}\n.ffo-calculator .ffo-legend {\n  display: grid;\n  gap: 10px;\n  align-content: center;\n  min-width: 0;\n}\n.ffo-calculator .ffo-legend-row {\n  display: grid;\n  grid-template-columns: 12px minmax(0, auto) auto;\n  align-items: center;\n  justify-content: start;\n  column-gap: 10px;\n  min-width: 0;\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.ffo-calculator .ffo-legend-swatch {\n  width: 12px;\n  height: 12px;\n  border-radius: 3px;\n}\n.ffo-calculator .ffo-legend-label {\n  overflow-wrap: anywhere;\n  color: var(--muted);\n}\n.ffo-calculator .ffo-legend-value {\n  color: var(--ink);\n  font-weight: 650;\n  font-variant-numeric: tabular-nums;\n  white-space: nowrap;\n}\n.ffo-calculator .ffo-table-wrap {\n  width: 100%;\n  min-width: 0;\n  overflow-x: auto;\n  overscroll-behavior-x: contain;\n  border: 1px solid var(--border);\n  border-radius: 6px;\n  background: var(--surface);\n}\n.ffo-calculator .ffo-table {\n  width: 100%;\n  min-width: 680px;\n  border-collapse: collapse;\n  color: var(--ink);\n  font-size: 13px;\n  font-variant-numeric: tabular-nums;\n}\n.ffo-calculator .ffo-table th,\n.ffo-calculator .ffo-table td {\n  padding: 10px 12px;\n  border-bottom: 1px solid var(--border);\n  text-align: left;\n  vertical-align: middle;\n}\n.ffo-calculator .ffo-table th {\n  background: #0f2747;\n  color: #ffffff;\n  font-weight: 650;\n  white-space: nowrap;\n}\n.ffo-calculator .ffo-table td.ffo-numeric,\n.ffo-calculator .ffo-table th.ffo-numeric {\n  text-align: right;\n}\n.ffo-calculator .ffo-table tbody tr:last-child td {\n  border-bottom: 0;\n}\n.ffo-calculator .ffo-table tbody tr:hover td {\n  background: var(--tint);\n}\n.ffo-calculator .ffo-table-note,\n.ffo-calculator .ffo-chart-caption {\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  line-height: 1.5;\n}\n.ffo-calculator .ffo-chart-safe-stack .ffo-chart-cluster {\n  grid-template-columns: minmax(0, 1fr);\n  gap: 24px;\n}\n.ffo-calculator .ffo-chart-safe-stack .ffo-legend {\n  margin-top: 4px;\n}\n.ffo-calculator .ffo-chart-safe-stack .ffo-chart-caption {\n  margin-top: 20px;\n}\n.ffo-calculator .ffo-safe-table-stack .ffo-table-wrap {\n  height: auto;\n  max-height: none;\n}\n.ffo-calculator .ffo-safe-table-stack .ffo-table-note {\n  margin-top: 20px;\n}\n.ffo-calculator .ffo-education {\n  display: grid;\n  gap: 24px;\n  min-width: 0;\n  padding: 28px;\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  background: var(--surface);\n  box-shadow: 0 1px 2px rgba(15, 23, 42, .06);\n}\n.ffo-calculator .ffo-education-section {\n  display: grid;\n  gap: 10px;\n  min-width: 0;\n}\n.ffo-calculator .ffo-education h2 {\n  margin: 0;\n  color: var(--ink);\n  font-size: 20px;\n  font-weight: 700;\n  line-height: 1.35;\n}\n.ffo-calculator .ffo-education h3 {\n  margin: 6px 0 0;\n  color: var(--ink);\n  font-size: 17px;\n  font-weight: 650;\n  line-height: 1.4;\n}\n.ffo-calculator .ffo-education p,\n.ffo-calculator .ffo-education ul {\n  margin: 0;\n  color: #334155;\n  font-size: 15px;\n}\n.ffo-calculator .ffo-education ul {\n  display: grid;\n  gap: 8px;\n  padding-left: 22px;\n}\n.ffo-calculator .ffo-education a {\n  color: var(--primary);\n  font-weight: 600;\n  text-decoration-thickness: 1px;\n  text-underline-offset: 2px;\n}\n.ffo-calculator .ffo-education a:hover {\n  color: #1e40af;\n}\n.ffo-calculator .ffo-equation {\n  padding: 12px 14px;\n  border-left: 4px solid var(--primary);\n  border-radius: 0 6px 6px 0;\n  background: #eff6ff;\n  color: #172554;\n  font-weight: 650;\n  overflow-wrap: anywhere;\n  font-variant-numeric: tabular-nums;\n}\n.ffo-calculator .ffo-sr-only {\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 (min-width: 640px) {\n  .ffo-calculator .ffo-chart-cluster {\n    grid-template-columns: minmax(340px, 1fr) minmax(190px, auto);\n    gap: 24px;\n  }\n}\n@container (min-width: 900px) {\n  .ffo-calculator .ffo-workspace {\n    grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr);\n  }\n}\n@container (max-width: 639px) {\n  .ffo-calculator .ffo-header,\n  .ffo-calculator .ffo-panel,\n  .ffo-calculator .ffo-education {\n    padding: 20px;\n  }\n  .ffo-calculator .ffo-title-row {\n    display: grid;\n  }\n  .ffo-calculator .ffo-toolbar {\n    display: grid;\n    grid-template-columns: minmax(0, 1fr);\n  }\n  .ffo-calculator .ffo-button {\n    width: 100%;\n  }\n  .ffo-calculator .ffo-chart-cluster {\n    gap: 20px;\n  }\n  .ffo-calculator .ffo-chart-caption,\n  .ffo-calculator .ffo-table-note {\n    margin-top: 12px;\n  }\n}\n@media (max-width: 639px) {\n  .ffo-calculator .ffo-header,\n  .ffo-calculator .ffo-panel,\n  .ffo-calculator .ffo-education {\n    padding: 20px;\n  }\n}\n\u003c\/style\u003e\n\u003cdiv class=\"ffo-calculator\" data-calculator-root\u003e\n  \u003cdiv class=\"ffo-shell\"\u003e\n    \u003csection class=\"ffo-header\" aria-labelledby=\"ffo-title\"\u003e\n      \u003cdiv class=\"ffo-title-row\"\u003e\n        \u003cdiv class=\"ffo-title-copy\"\u003e\n          \u003ch2 class=\"ffo-title\" id=\"ffo-title\"\u003eFunds From Operations (FFO) Calculator\u003c\/h2\u003e\n          \u003cp class=\"ffo-subtitle\"\u003eConvert reported net income into a REIT-focused operating measure by adding back real-estate depreciation and removing selected property-sale and interest effects.\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"ffo-summary-pills\" aria-label=\"Live calculation summary\"\u003e\n        \u003cspan class=\"ffo-pill\"\u003eFFO \u003cstrong data-ffo-pill=\"ffo\"\u003e$530,000.00\u003c\/strong\u003e\u003c\/span\u003e\n        \u003cspan class=\"ffo-pill\"\u003eNet adjustment \u003cstrong data-ffo-pill=\"adjustment\"\u003e$30,000.00\u003c\/strong\u003e\u003c\/span\u003e\n        \u003cspan class=\"ffo-pill\"\u003eExcluded inflows \u003cstrong data-ffo-pill=\"excluded\"\u003e$200,000.00\u003c\/strong\u003e\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/section\u003e\n\n    \u003cdiv class=\"ffo-toolbar\" aria-label=\"Calculator actions\"\u003e\n      \u003cbutton class=\"ffo-button ffo-download\" type=\"button\" data-ffo-action=\"download\"\u003e\n        \u003csvg class=\"ffo-button-icon\" viewbox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"\u003e\n          \u003cpath d=\"M12 3v11m0 0 4-4m-4 4-4-4M5 17v3h14v-3\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003c\/path\u003e\n        \u003c\/svg\u003e\n        \u003cspan\u003eDownload Excel\u003c\/span\u003e\n      \u003c\/button\u003e\n      \u003cbutton class=\"ffo-button ffo-reset\" type=\"button\" data-ffo-action=\"reset\"\u003e\n        \u003csvg class=\"ffo-button-icon\" viewbox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"\u003e\n          \u003cpath d=\"M4 4v6h6M20 20v-6h-6M5.5 15a7 7 0 0 0 11.9 2M18.5 9A7 7 0 0 0 6.6 7\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003c\/path\u003e\n        \u003c\/svg\u003e\n        \u003cspan\u003eReset\u003c\/span\u003e\n      \u003c\/button\u003e\n    \u003c\/div\u003e\n\n    \u003csection class=\"ffo-workspace\" aria-label=\"FFO calculator workspace\"\u003e\n      \u003cdiv class=\"ffo-panel\"\u003e\n        \u003ch3 class=\"ffo-panel-heading\"\u003eFinancial statement inputs\u003c\/h3\u003e\n        \u003cp class=\"ffo-panel-intro\"\u003eEnter values for the same reporting period. Amounts may be typed with or without dollar signs and commas.\u003c\/p\u003e\n        \u003cdiv class=\"ffo-form-grid\"\u003e\n          \u003cdiv class=\"ffo-field\"\u003e\n            \u003clabel class=\"ffo-label\" for=\"ffo-net-income\"\u003eNet income\u003c\/label\u003e\n            \u003cdiv class=\"ffo-control-wrap\"\u003e\n              \u003cinput class=\"ffo-input\" id=\"ffo-net-income\" data-ffo-input=\"netIncome\" type=\"text\" inputmode=\"decimal\" value=\"$500,000.00\" aria-describedby=\"ffo-net-income-help ffo-net-income-error\"\u003e\n            \u003c\/div\u003e\n            \u003cp class=\"ffo-helper\" id=\"ffo-net-income-help\"\u003eGAAP net income attributable to the period. A loss may be entered as a negative value.\u003c\/p\u003e\n            \u003cp class=\"ffo-error\" id=\"ffo-net-income-error\" data-ffo-error=\"netIncome\" aria-live=\"polite\"\u003e\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"ffo-field\"\u003e\n            \u003clabel class=\"ffo-label\" for=\"ffo-depreciation\"\u003eDepreciation and amortization\u003c\/label\u003e\n            \u003cdiv class=\"ffo-control-wrap\"\u003e\n              \u003cinput class=\"ffo-input\" id=\"ffo-depreciation\" data-ffo-input=\"depreciation\" type=\"text\" inputmode=\"decimal\" value=\"$150,000.00\" aria-describedby=\"ffo-depreciation-help ffo-depreciation-error\"\u003e\n            \u003c\/div\u003e\n            \u003cp class=\"ffo-helper\" id=\"ffo-depreciation-help\"\u003eReal-estate depreciation and amortization added back to net income.\u003c\/p\u003e\n            \u003cp class=\"ffo-error\" id=\"ffo-depreciation-error\" data-ffo-error=\"depreciation\" aria-live=\"polite\"\u003e\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"ffo-field\"\u003e\n            \u003clabel class=\"ffo-label\" for=\"ffo-property-gains\"\u003eGains from property sales\u003c\/label\u003e\n            \u003cdiv class=\"ffo-control-wrap\"\u003e\n              \u003cinput class=\"ffo-input\" id=\"ffo-property-gains\" data-ffo-input=\"propertyGains\" type=\"text\" inputmode=\"decimal\" value=\"$125,000.00\" aria-describedby=\"ffo-property-gains-help ffo-property-gains-error\"\u003e\n            \u003c\/div\u003e\n            \u003cp class=\"ffo-helper\" id=\"ffo-property-gains-help\"\u003eRecognized gains from real-estate dispositions; these are subtracted in this model.\u003c\/p\u003e\n            \u003cp class=\"ffo-error\" id=\"ffo-property-gains-error\" data-ffo-error=\"propertyGains\" aria-live=\"polite\"\u003e\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"ffo-field\"\u003e\n            \u003clabel class=\"ffo-label\" for=\"ffo-property-losses\"\u003eLosses from property sales\u003c\/label\u003e\n            \u003cdiv class=\"ffo-control-wrap\"\u003e\n              \u003cinput class=\"ffo-input\" id=\"ffo-property-losses\" data-ffo-input=\"propertyLosses\" type=\"text\" inputmode=\"decimal\" value=\"$80,000.00\" aria-describedby=\"ffo-property-losses-help ffo-property-losses-error\"\u003e\n            \u003c\/div\u003e\n            \u003cp class=\"ffo-helper\" id=\"ffo-property-losses-help\"\u003eRecognized losses from property dispositions; these are added back in this model.\u003c\/p\u003e\n            \u003cp class=\"ffo-error\" id=\"ffo-property-losses-error\" data-ffo-error=\"propertyLosses\" aria-live=\"polite\"\u003e\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"ffo-field\"\u003e\n            \u003clabel class=\"ffo-label\" for=\"ffo-interest-income\"\u003eInterest income\u003c\/label\u003e\n            \u003cdiv class=\"ffo-control-wrap\"\u003e\n              \u003cinput class=\"ffo-input\" id=\"ffo-interest-income\" data-ffo-input=\"interestIncome\" type=\"text\" inputmode=\"decimal\" value=\"$75,000.00\" aria-describedby=\"ffo-interest-income-help ffo-interest-income-error\"\u003e\n            \u003c\/div\u003e\n            \u003cp class=\"ffo-helper\" id=\"ffo-interest-income-help\"\u003eInterest earnings treated here as a non-property operating inflow and subtracted.\u003c\/p\u003e\n            \u003cp class=\"ffo-error\" id=\"ffo-interest-income-error\" data-ffo-error=\"interestIncome\" aria-live=\"polite\"\u003e\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"ffo-formula-strip\" aria-label=\"FFO formula\"\u003e\n          \u003cspan class=\"ffo-formula-label\"\u003eCalculation\u003c\/span\u003e\n          \u003cspan class=\"ffo-formula\" data-ffo-formula\u003e$500,000.00 + $150,000.00 + $80,000.00 − $125,000.00 − $75,000.00\u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"ffo-panel ffo-results\"\u003e\n        \u003cdiv\u003e\n          \u003ch3 class=\"ffo-panel-heading\"\u003eLive results\u003c\/h3\u003e\n          \u003cp class=\"ffo-panel-intro\"\u003eResults recalculate as assumptions change.\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"ffo-primary-result\"\u003e\n          \u003cspan class=\"ffo-primary-label\"\u003eFunds from operations\u003c\/span\u003e\n          \u003cstrong class=\"ffo-primary-value\" data-ffo-output=\"ffo\"\u003e$530,000.00\u003c\/strong\u003e\n          \u003cspan class=\"ffo-primary-detail\" data-ffo-live aria-live=\"polite\"\u003eFFO is $530,000.00 for the entered reporting period.\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"ffo-result-grid\"\u003e\n          \u003cdiv class=\"ffo-result-card\"\u003e\n            \u003cspan class=\"ffo-card-label\"\u003eNet adjustment\u003c\/span\u003e\n            \u003cstrong class=\"ffo-card-value\" data-ffo-output=\"netAdjustment\"\u003e$30,000.00\u003c\/strong\u003e\n            \u003cspan class=\"ffo-card-note\"\u003eTotal additions less total deductions.\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"ffo-result-card\"\u003e\n            \u003cspan class=\"ffo-card-label\"\u003eAdjustment vs. net income\u003c\/span\u003e\n            \u003cstrong class=\"ffo-card-value\" data-ffo-output=\"adjustmentPercent\"\u003e6.00%\u003c\/strong\u003e\n            \u003cspan class=\"ffo-card-note\"\u003eNet adjustment divided by absolute net income.\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"ffo-result-card\"\u003e\n            \u003cspan class=\"ffo-card-label\"\u003ePositive base\u003c\/span\u003e\n            \u003cstrong class=\"ffo-card-value\" data-ffo-output=\"positiveBase\"\u003e$730,000.00\u003c\/strong\u003e\n            \u003cspan class=\"ffo-card-note\"\u003eNet income plus D\u0026amp;A and property-sale losses.\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"ffo-result-card\"\u003e\n            \u003cspan class=\"ffo-card-label\"\u003eExcluded inflows\u003c\/span\u003e\n            \u003cstrong class=\"ffo-card-value\" data-ffo-output=\"excludedInflows\"\u003e$200,000.00\u003c\/strong\u003e\n            \u003cspan class=\"ffo-card-note\"\u003eProperty-sale gains plus interest income.\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"ffo-interpretation\" data-ffo-interpretation\u003e\n\u003cstrong\u003eInterpretation:\u003c\/strong\u003e FFO is above reported net income because the add-backs exceed the deductions.\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/section\u003e\n\n    \u003csection class=\"ffo-panel ffo-chart-panel\" data-ffo-chart-card aria-labelledby=\"ffo-chart-title\"\u003e\n      \u003cdiv class=\"ffo-chart-heading-row\"\u003e\n        \u003ch3 class=\"ffo-chart-title\" id=\"ffo-chart-title\"\u003eNet income to FFO bridge\u003c\/h3\u003e\n        \u003cp class=\"ffo-chart-intro\" data-ffo-chart-intro\u003eThe bridge shows how each entered adjustment moves reported net income to funds from operations.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"ffo-chart-empty\" data-ffo-chart-empty\u003eEnter non-zero values above to see the FFO bridge.\u003c\/div\u003e\n      \u003cdiv class=\"ffo-chart-cluster\" data-ffo-chart-cluster\u003e\n        \u003cdiv class=\"ffo-plot-wrap\" data-ffo-plot-wrap\u003e\n          \u003csvg class=\"ffo-chart-svg\" data-ffo-chart viewbox=\"0 0 760 360\" role=\"img\" aria-labelledby=\"ffo-chart-svg-title ffo-chart-svg-desc\"\u003e\n            \u003ctitle id=\"ffo-chart-svg-title\"\u003eWaterfall chart from net income to funds from operations\u003c\/title\u003e\n            \u003cdesc id=\"ffo-chart-svg-desc\"\u003eNet income of $500,000.00 is adjusted by depreciation and amortization, property losses, property gains, and interest income to reach FFO of $530,000.00.\u003c\/desc\u003e\n          \u003c\/svg\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"ffo-legend\" data-ffo-legend aria-label=\"Chart legend\"\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"ffo-table-wrap\" data-ffo-table-wrap\u003e\n        \u003ctable class=\"ffo-table\" data-ffo-breakdown-table\u003e\n          \u003ccaption class=\"ffo-sr-only\"\u003eDetailed FFO bridge values\u003c\/caption\u003e\n          \u003cthead\u003e\n            \u003ctr\u003e\n              \u003cth scope=\"col\"\u003eBridge item\u003c\/th\u003e\n              \u003cth class=\"ffo-numeric\" scope=\"col\"\u003eAdjustment\u003c\/th\u003e\n              \u003cth class=\"ffo-numeric\" scope=\"col\"\u003eRunning total\u003c\/th\u003e\n              \u003cth scope=\"col\"\u003eTreatment\u003c\/th\u003e\n            \u003c\/tr\u003e\n          \u003c\/thead\u003e\n          \u003ctbody data-ffo-breakdown-body\u003e\u003c\/tbody\u003e\n        \u003c\/table\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"ffo-table-note\" data-ffo-table-note\u003eThe running total begins with net income. Add-backs increase the bridge, while excluded gains and interest income decrease it.\u003c\/div\u003e\n      \u003cdiv class=\"ffo-chart-caption\" data-ffo-chart-caption\u003eCurrent inputs create a net positive adjustment of $30,000.00, taking FFO to $530,000.00.\u003c\/div\u003e\n    \u003c\/section\u003e\n\n    \u003csection class=\"ffo-education\" aria-label=\"FFO calculator guide\"\u003e\n      \u003cdiv class=\"ffo-education-section\"\u003e\n        \u003ch2\u003eWhat does this FFO calculator estimate?\u003c\/h2\u003e\n        \u003cp\u003eThis calculator estimates funds from operations for a real estate investment trust or another property-focused business using a concise bridge from reported net income. FFO is a supplemental operating measure, not a replacement for GAAP net income, operating cash flow, or free cash flow. Its purpose is to reduce the distortion that real-estate depreciation and one-time property dispositions can create when a reader is trying to understand recurring property operations.\u003c\/p\u003e\n        \u003cp\u003eThe model follows the displayed equation: net income plus depreciation and amortization plus losses from property sales, minus gains from property sales and interest income. The result is shown as a total for the reporting period entered. Keep every input on the same basis—for example, all annual figures or all quarterly figures—and use amounts attributable to the same entity and ownership scope.\u003c\/p\u003e\n        \u003cdiv class=\"ffo-equation\"\u003eFFO = net income + depreciation and amortization + property-sale losses − property-sale gains − interest income\u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"ffo-education-section\"\u003e\n        \u003ch2\u003eHow should each input be entered?\u003c\/h2\u003e\n        \u003ch3\u003eNet income\u003c\/h3\u003e\n        \u003cp\u003eUse the bottom-line earnings figure for the reporting period and scope you are analyzing. This field is required for a meaningful bridge, although the calculator will accept zero. Net income can be negative when the entity reports a loss. A higher net income generally raises FFO dollar for dollar, while a lower or negative value reduces it. A common mistake is mixing consolidated net income with adjustments that relate only to one subsidiary or property group.\u003c\/p\u003e\n        \u003ch3\u003eDepreciation and amortization\u003c\/h3\u003e\n        \u003cp\u003eEnter the real-estate depreciation and amortization intended to be added back. Use a non-negative amount. Increasing this input increases FFO dollar for dollar because the model treats the charge as an accounting allocation rather than a current-period property cash outflow. Avoid automatically adding back every amortization line without checking the reporting definition being used. Public REIT disclosures may limit the adjustment to qualifying real-estate assets and may include proportionate adjustments for unconsolidated ventures.\u003c\/p\u003e\n        \u003ch3\u003eGains and losses from property sales\u003c\/h3\u003e\n        \u003cp\u003eEnter gains and losses in their separate fields as positive amounts. A property-sale gain is subtracted because it can make net income look stronger even though it does not arise from ongoing rental operations. A property-sale loss is added back for the opposite reason. Do not enter a loss as a negative number in the loss field; doing so would reverse the intended treatment. Confirm whether the transaction is a qualifying real-estate disposition under the company’s stated FFO policy.\u003c\/p\u003e\n        \u003ch3\u003eInterest income\u003c\/h3\u003e\n        \u003cp\u003eEnter the interest income excluded by this calculator’s formula as a non-negative value. Higher interest income lowers the calculated FFO because the model removes that financial inflow from the property-operating bridge. This treatment is useful for matching the reference formula used here, but company-reported FFO definitions can differ. Review the issuer’s reconciliation before comparing this result with a published non-GAAP measure.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"ffo-education-section\"\u003e\n        \u003ch2\u003eHow should the results be interpreted?\u003c\/h2\u003e\n        \u003cp\u003e\u003cstrong\u003eFunds from operations\u003c\/strong\u003e is the principal output. A positive value means the adjusted bridge ends above zero; a negative value means the entered net loss and deductions exceed the add-backs. A larger FFO is not automatically “better” without context. Analysts normally compare FFO across periods, against guidance, per share, and relative to a REIT’s size, debt load, capital needs, and dividend commitments.\u003c\/p\u003e\n        \u003cp\u003e\u003cstrong\u003eNet adjustment\u003c\/strong\u003e is the difference between FFO and net income. A positive adjustment means depreciation, amortization, and property-sale losses exceed property-sale gains and interest income. A negative adjustment means the deductions are larger. \u003cstrong\u003eAdjustment versus net income\u003c\/strong\u003e expresses that difference as a percentage of the absolute net-income base; it becomes unavailable when net income is zero because division by zero would be misleading.\u003c\/p\u003e\n        \u003cp\u003e\u003cstrong\u003ePositive base\u003c\/strong\u003e combines net income with the two add-back categories. \u003cstrong\u003eExcluded inflows\u003c\/strong\u003e combines property-sale gains and interest income. These intermediate values help users locate the drivers of the bridge, but they are not standardized performance metrics on their own.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"ffo-education-section\"\u003e\n        \u003ch2\u003eWhat does the waterfall chart show?\u003c\/h2\u003e\n        \u003cp\u003eThe chart begins with net income, then applies each adjustment in sequence. Upward bars are additions, downward bars are deductions, and the final bar is FFO. The accompanying legend and table use the same underlying values as the results panel and Excel export. The running-total column makes the arithmetic auditable: each row’s ending balance becomes the next row’s starting point.\u003c\/p\u003e\n        \u003cp\u003eChanging depreciation or property losses moves the bridge upward. Increasing property gains or interest income moves it downward. If every input is zero, the chart is intentionally replaced by a compact empty state rather than displaying a meaningless plot.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"ffo-education-section\"\u003e\n        \u003ch2\u003eHow does FFO differ from cash flow and AFFO?\u003c\/h2\u003e\n        \u003cp\u003eFFO is not the same as cash generated from operations. It starts from accounting net income and applies selected adjustments, whereas the cash flow statement also reflects working-capital movements and other non-cash items. Adjusted funds from operations, or AFFO, usually makes additional company- or analyst-defined adjustments for recurring capital expenditures, straight-line rent, leasing costs, and other normalization items. Because AFFO lacks one universal calculation, compare definitions carefully.\u003c\/p\u003e\n        \u003cp\u003eFor the industry definition and its development, consult the \u003ca href=\"https:\/\/www.reit.com\/glossary\/funds-operation-ffo\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eNareit FFO overview\u003c\/a\u003e and the \u003ca href=\"https:\/\/www.reit.com\/sites\/default\/files\/2018-FFO-white-paper-%2811-27-18%29.pdf\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eNareit FFO white paper\u003c\/a\u003e. The \u003ca href=\"https:\/\/www.sec.gov\/resources-for-investors\/investor-alerts-bulletins\/ib_reits\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eSEC investor bulletin on publicly traded REITs\u003c\/a\u003e provides broader REIT context, while the \u003ca href=\"https:\/\/www.irs.gov\/forms-pubs\/about-form-1120-reit\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eIRS Form 1120-REIT page\u003c\/a\u003e covers federal tax filing information. These resources should be read alongside the specific company’s filings and reconciliation disclosures.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"ff\no-education-section\"\u003e\n        \u003ch2\u003eWhat are the main limitations and common mistakes?\u003c\/h2\u003e\n        \u003cul\u003e\n          \u003cli\u003eDo not mix annual inputs with quarterly inputs or consolidated figures with property-level figures.\u003c\/li\u003e\n          \u003cli\u003eDo not treat FFO as cash available for dividends without considering recurring capital expenditure, debt service, leasing costs, and working capital.\u003c\/li\u003e\n          \u003cli\u003eDo not assume every issuer uses the identical adjustment set. Company-reported FFO may include joint-venture, impairment, noncontrolling-interest, or other reconciliation items not represented here.\u003c\/li\u003e\n          \u003cli\u003eDo not enter gains or losses with the wrong sign. Use positive values in their dedicated fields and let the calculator apply the addition or subtraction.\u003c\/li\u003e\n          \u003cli\u003eUse trends, per-share measures, and reconciliations rather than interpreting one absolute FFO number in isolation.\u003c\/li\u003e\n        \u003c\/ul\u003e\n        \u003cp\u003eThis calculator is an educational modeling tool. It does not provide investment, accounting, tax, or legal advice.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/section\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e","brand":"FinancialModelsLab","offers":[{"title":"Default Title","offer_id":49909481865459,"sku":"ffo","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/ffo.webp?v=1783935399","url":"https:\/\/financialmodelslab.com\/products\/ffo","provider":"Financial Models Lab","version":"1.0","type":"link"}