{"slug":"ko-dividend-history","qid":"growth","label":"Compound dividend growth over 5, 10 and 25 year windows","post_title":"KO Dividend History: Coca-Cola Payouts by Year","post_url":"/blog/ko-dividend-history#q-growth","columns":["label","window_from","window_through","start_per_share","end_per_share","year_steps","years_increased","cagr_pct"],"rows":[{"label":"Last 5 years","window_from":"2020","window_through":"2025","start_per_share":1.64,"end_per_share":2.04,"year_steps":5,"years_increased":5,"cagr_pct":4.46},{"label":"Last 10 years","window_from":"2015","window_through":"2025","start_per_share":1.32,"end_per_share":2.04,"year_steps":10,"years_increased":10,"cagr_pct":4.45},{"label":"Last 25 years","window_from":"2003","window_through":"2025","start_per_share":0.33,"end_per_share":2.04,"year_steps":22,"years_increased":22,"cagr_pct":8.63},{"label":"Full record","window_from":"2003","window_through":"2025","start_per_share":0.33,"end_per_share":2.04,"year_steps":22,"years_increased":22,"cagr_pct":8.63}],"shape":"table","sql":"WITH payments AS\n(\n    SELECT\n        id,\n        any(ex_dividend_date)           AS ex_date,\n        any(split_adjusted_cash_amount) AS adj_amount\n    FROM global_markets.stocks_dividends\n    WHERE ticker = 'KO'\n      AND toYear(ex_dividend_date) < toYear(today())\n    GROUP BY id\n),\nyearly AS\n(\n    SELECT\n        toYear(ex_date)                      AS yr,\n        round(sum(toFloat64(adj_amount)), 4) AS annual\n    FROM payments\n    GROUP BY yr\n),\nsteps AS\n(\n    SELECT\n        a.yr     AS yr,\n        a.annual AS annual,\n        b.annual AS prior\n    FROM yearly AS a\n    LEFT JOIN yearly AS b ON b.yr = a.yr - 1\n),\nspan AS\n(\n    SELECT min(yr) AS first_yr, max(yr) AS last_yr FROM yearly\n),\nwindows AS\n(\n    SELECT\n        tupleElement(w, 1) AS ord,\n        tupleElement(w, 2) AS window_label,\n        tupleElement(w, 3) AS lookback\n    FROM\n    (\n        SELECT arrayJoin([(1, 'Last 5 years', 5), (2, 'Last 10 years', 10), (3, 'Last 25 years', 25), (4, 'Full record', 200)]) AS w\n    )\n)\nSELECT\n    w.window_label                   AS label,\n    toString(min(s.yr))              AS window_from,\n    toString(max(s.yr))              AS window_through,\n    round(argMin(s.annual, s.yr), 4) AS start_per_share,\n    round(argMax(s.annual, s.yr), 4) AS end_per_share,\n    max(s.yr) - min(s.yr)            AS year_steps,\n    countIf(s.annual > s.prior AND s.prior > 0 AND s.yr > greatest(p.last_yr - w.lookback, p.first_yr)) AS years_increased,\n    round(100 * (pow(argMax(s.annual, s.yr) / argMin(s.annual, s.yr), 1.0 / (max(s.yr) - min(s.yr))) - 1), 2) AS cagr_pct\nFROM steps AS s\nCROSS JOIN span AS p\nCROSS JOIN windows AS w\nWHERE s.yr >= greatest(p.last_yr - w.lookback, p.first_yr)\nGROUP BY w.ord, w.window_label\nORDER BY w.ord","computed_at":"2026-10-08T16:10:31.434950+00:00","elapsed":1.079173065}