{"slug":"qualified-dividends-holding-period","qid":"ex_date_gaps","label":"Days between consecutive ex-dividend dates, against the 121-day window","post_title":"Qualified Dividend Holding Period: 61 Days","post_url":"/blog/qualified-dividends-holding-period#q-ex_date_gaps","columns":["ticker","avg_days_between_ex_dates","qualifying_window_days"],"rows":[{"ticker":"AAPL","avg_days_between_ex_dates":91.3,"qualifying_window_days":121},{"ticker":"JNJ","avg_days_between_ex_dates":91.3,"qualifying_window_days":121},{"ticker":"MSFT","avg_days_between_ex_dates":91.3,"qualifying_window_days":121},{"ticker":"KO","avg_days_between_ex_dates":91.4,"qualifying_window_days":121},{"ticker":"PG","avg_days_between_ex_dates":91.5,"qualifying_window_days":121},{"ticker":"XOM","avg_days_between_ex_dates":91.5,"qualifying_window_days":121}],"shape":"ranking","sql":"SELECT\n    ticker,\n    round(avg(gap_days), 1) AS avg_days_between_ex_dates,\n    121                     AS qualifying_window_days\nFROM\n(\n    SELECT\n        ticker,\n        arrayJoin(arrayDifference(arraySort(groupArray(toUInt32(toDate(ex_dividend_date)))))) AS gap_days\n    FROM\n    (\n        SELECT DISTINCT\n            ticker,\n            ex_dividend_date\n        FROM global_markets.stocks_dividends\n        WHERE ticker IN ('AAPL', 'MSFT', 'KO', 'JNJ', 'PG', 'XOM')\n          AND cash_amount > 0\n          AND ex_dividend_date >= '2019-01-01'\n          AND ex_dividend_date <  '2026-08-01'\n    )\n    GROUP BY ticker\n)\nWHERE gap_days BETWEEN 45 AND 200\nGROUP BY ticker\nORDER BY avg_days_between_ex_dates","computed_at":"2026-08-22T04:18:28.287806+00:00","elapsed":0.06826359}