{"slug":"dividends-vs-buybacks-shareholder-yield","qid":"quarter_windows","label":"The exact quarters behind each buyback yield","post_title":"Dividends vs Buybacks: Shareholder Yield","post_url":"/blog/dividends-vs-buybacks-shareholder-yield#q-quarter_windows","columns":["ticker","prior_quarter_end","recent_quarter_end","shares_prior_millions","shares_recent_millions"],"rows":[{"ticker":"CSCO","prior_quarter_end":"2025-07-26","recent_quarter_end":"2026-01-24","shares_prior_millions":3998,"shares_recent_millions":3984},{"ticker":"HD","prior_quarter_end":"2025-08-03","recent_quarter_end":"2026-05-03","shares_prior_millions":994,"shares_recent_millions":996},{"ticker":"KO","prior_quarter_end":"2025-06-27","recent_quarter_end":"2026-07-03","shares_prior_millions":4315,"shares_recent_millions":4313},{"ticker":"PEP","prior_quarter_end":"2025-06-14","recent_quarter_end":"2026-06-13","shares_prior_millions":1373,"shares_recent_millions":1369}],"shape":"table","sql":"SELECT\n    ticker,\n    toString(prior_period)        AS prior_quarter_end,\n    toString(recent_period)       AS recent_quarter_end,\n    round(shares_prior / 1e6, 0)  AS shares_prior_millions,\n    round(shares_recent / 1e6, 0) AS shares_recent_millions\nFROM\n(\n    SELECT\n        arrayJoin(tickers) AS ticker,\n        maxIf(period_end, period_end > today() - 200)  AS recent_period,\n        maxIf(period_end, period_end <= today() - 365) AS prior_period,\n        argMaxIf(toFloat64(diluted_shares_outstanding), period_end, period_end > today() - 200)  AS shares_recent,\n        argMaxIf(toFloat64(diluted_shares_outstanding), period_end, period_end <= today() - 365) AS shares_prior\n    FROM global_markets.stocks_income_statements\n    WHERE timeframe = 'quarterly'\n      AND diluted_shares_outstanding > 0\n      AND period_end > today() - 800\n      AND hasAny(tickers, ['AAPL', 'MSFT', 'KO', 'PEP', 'CVX', 'CSCO', 'HD', 'JNJ'])\n    GROUP BY ticker\n    HAVING ticker IN ('AAPL', 'MSFT', 'KO', 'PEP', 'CVX', 'CSCO', 'HD', 'JNJ')\n       AND countIf(period_end > today() - 200) > 0\n       AND countIf(period_end <= today() - 365) > 0\n)\nORDER BY ticker","computed_at":"2026-08-08T14:53:21.026210+00:00","elapsed":0.059556254}