{"slug":"reit-payout-ratio-ffo-vs-eps","qid":"reit_dividend_direction","label":"Year-end dividend rate against twelve months earlier: how many large REITs raised or lowered","post_title":"REIT Payout Ratio: FFO vs EPS Explained","post_url":"/blog/reit-payout-ratio-ffo-vs-eps#q-reit_dividend_direction","columns":["year","reits_compared","raised","lowered","unchanged"],"rows":[{"year":2017,"reits_compared":10,"raised":9,"lowered":0,"unchanged":1},{"year":2018,"reits_compared":10,"raised":9,"lowered":0,"unchanged":1},{"year":2019,"reits_compared":10,"raised":9,"lowered":0,"unchanged":1},{"year":2020,"reits_compared":10,"raised":7,"lowered":2,"unchanged":1},{"year":2021,"reits_compared":10,"raised":6,"lowered":0,"unchanged":4},{"year":2022,"reits_compared":10,"raised":7,"lowered":0,"unchanged":3},{"year":2023,"reits_compared":12,"raised":10,"lowered":0,"unchanged":2},{"year":2024,"reits_compared":14,"raised":12,"lowered":0,"unchanged":2},{"year":2025,"reits_compared":14,"raised":12,"lowered":1,"unchanged":1}],"shape":"table","sql":"WITH yearly AS (\n    SELECT ticker,\n           toYear(ex_dividend_date) AS pay_year,\n           argMax(toFloat64(cash_amount), ex_dividend_date) AS year_end_rate\n    FROM global_markets.stocks_dividends\n    WHERE ticker IN ('O','SPG','PLD','PSA','AVB','EQR','VTR','WELL','KIM','FRT','NNN','MAA','ARE','IRM')\n      AND distribution_type = 'recurring'\n      AND cash_amount > 0\n      AND ex_dividend_date >= toDate('2016-01-01')\n      AND ex_dividend_date < toDate('2026-01-01')\n    GROUP BY ticker, pay_year\n),\nshifted AS (\n    SELECT ticker AS prior_ticker,\n           pay_year + 1 AS compare_year,\n           year_end_rate AS prior_rate\n    FROM yearly\n)\nSELECT cur.pay_year AS year,\n       count() AS reits_compared,\n       countIf(cur.year_end_rate > shifted.prior_rate * 1.005) AS raised,\n       countIf(cur.year_end_rate < shifted.prior_rate * 0.995) AS lowered,\n       countIf(cur.year_end_rate >= shifted.prior_rate * 0.995\n               AND cur.year_end_rate <= shifted.prior_rate * 1.005) AS unchanged\nFROM yearly AS cur\nINNER JOIN shifted ON cur.ticker = shifted.prior_ticker AND cur.pay_year = shifted.compare_year\nWHERE cur.pay_year >= 2017\nGROUP BY year\nORDER BY year","computed_at":"2026-08-22T04:18:31.333473+00:00","elapsed":0.201018293}