{"slug":"trailing-vs-forward-dividend-yield","qid":"yield_conventions_panel","label":"Trailing vs forward dividend yield: eight large payers, latest session price","post_title":"Trailing vs Forward Dividend Yield Explained","post_url":"/blog/trailing-vs-forward-dividend-yield#q-yield_conventions_panel","columns":["ticker","trailing_yield_pct","forward_yield_pct","forward_minus_trailing_pp","checks_in_window","share_price"],"rows":[{"ticker":"PEP","trailing_yield_pct":4.01,"forward_yield_pct":4.13,"forward_minus_trailing_pp":0.12,"checks_in_window":4,"share_price":143.5},{"ticker":"PG","trailing_yield_pct":2.96,"forward_yield_pct":3.01,"forward_minus_trailing_pp":0.04,"checks_in_window":4,"share_price":144.74},{"ticker":"JNJ","trailing_yield_pct":1.94,"forward_yield_pct":1.98,"forward_minus_trailing_pp":0.04,"checks_in_window":4,"share_price":270.62},{"ticker":"KO","trailing_yield_pct":2.28,"forward_yield_pct":2.33,"forward_minus_trailing_pp":0.04,"checks_in_window":4,"share_price":91.04},{"ticker":"MCD","trailing_yield_pct":2.71,"forward_yield_pct":2.75,"forward_minus_trailing_pp":0.03,"checks_in_window":4,"share_price":270.83},{"ticker":"CVX","trailing_yield_pct":3.43,"forward_yield_pct":3.47,"forward_minus_trailing_pp":0.03,"checks_in_window":4,"share_price":205.25},{"ticker":"ABBV","trailing_yield_pct":2.57,"forward_yield_pct":2.6,"forward_minus_trailing_pp":0.03,"checks_in_window":4,"share_price":266},{"ticker":"MSFT","trailing_yield_pct":0.75,"forward_yield_pct":0.75,"forward_minus_trailing_pp":0,"checks_in_window":4,"share_price":483.7}],"shape":"table","sql":"WITH last_px AS (\n    SELECT ticker,\n           argMax(close, window_start) AS close_price\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker IN ('ABBV', 'CVX', 'JNJ', 'KO', 'MCD', 'MSFT', 'PEP', 'PG')\n      AND window_start >= now() - INTERVAL 10 DAY\n      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959\n    GROUP BY ticker\n),\npaid AS (\n    SELECT ticker,\n           sum(cash_amount) AS ttm_cash,\n           count() AS checks_in_window,\n           argMax(cash_amount, ex_dividend_date) AS latest_cash,\n           argMax(frequency, ex_dividend_date) AS pay_frequency\n    FROM global_markets.stocks_dividends\n    WHERE ticker IN ('ABBV', 'CVX', 'JNJ', 'KO', 'MCD', 'MSFT', 'PEP', 'PG')\n      AND distribution_type = 'recurring'\n      AND cash_amount > 0\n      AND ex_dividend_date > today() - INTERVAL 1 YEAR\n      AND ex_dividend_date <= today()\n    GROUP BY ticker\n)\nSELECT p.ticker AS ticker,\n       round(toFloat64(d.ttm_cash) / toFloat64(p.close_price) * 100, 2) AS trailing_yield_pct,\n       round(toFloat64(d.latest_cash) * d.pay_frequency / toFloat64(p.close_price) * 100, 2) AS forward_yield_pct,\n       round((toFloat64(d.latest_cash) * d.pay_frequency - toFloat64(d.ttm_cash))\n             / toFloat64(p.close_price) * 100, 2) AS forward_minus_trailing_pp,\n       d.checks_in_window AS checks_in_window,\n       round(toFloat64(p.close_price), 2) AS share_price\nFROM last_px AS p\nINNER JOIN paid AS d ON p.ticker = d.ticker\nORDER BY forward_minus_trailing_pp DESC","computed_at":"2026-08-22T04:23:39.256825+00:00","elapsed":0.799521314}