{"slug":"weekly-dividend-etfs-explained","qid":"ex_date_drop","label":"ex_date_drop","post_title":"weekly-dividend-etfs-explained","post_url":"/blog/weekly-dividend-etfs-explained#q-ex_date_drop","columns":["ticker","ex_dates","avg_distribution","avg_overnight_move"],"rows":[{"ticker":"AMDW","ex_dates":52,"avg_distribution":0.9325,"avg_overnight_move":0.0649},{"ticker":"ARMW","ex_dates":47,"avg_distribution":0.6601,"avg_overnight_move":-0.2778},{"ticker":"HOOY","ex_dates":50,"avg_distribution":0.6431,"avg_overnight_move":-1.1604},{"ticker":"HOOW","ex_dates":52,"avg_distribution":0.5787,"avg_overnight_move":-0.1989},{"ticker":"PLTY","ex_dates":51,"avg_distribution":0.5699,"avg_overnight_move":-0.8865},{"ticker":"WNTR","ex_dates":51,"avg_distribution":0.5683,"avg_overnight_move":-0.3566},{"ticker":"AMDY","ex_dates":50,"avg_distribution":0.5457,"avg_overnight_move":-0.6551},{"ticker":"CHPY","ex_dates":53,"avg_distribution":0.5243,"avg_overnight_move":-0.3058},{"ticker":"GDXW","ex_dates":46,"avg_distribution":0.5189,"avg_overnight_move":-0.1916},{"ticker":"GOOW","ex_dates":52,"avg_distribution":0.4898,"avg_overnight_move":-0.0168}],"shape":"ranking","sql":"WITH\n    weekly AS\n    (\n        SELECT ticker\n        FROM global_markets.stocks_dividends\n        WHERE ex_dividend_date >= today() - 365\n          AND ex_dividend_date <= today()\n          AND ticker NOT IN ('SPCX')\n        GROUP BY ticker\n        HAVING countDistinct(ex_dividend_date) >= 40\n    ),\n    payments AS\n    (\n        SELECT\n            ticker,\n            ex_dividend_date  AS ex_date,\n            max(cash_amount)  AS amount\n        FROM global_markets.stocks_dividends\n        WHERE ex_dividend_date >= today() - 365\n          AND ex_dividend_date <= today()\n          AND ticker IN (SELECT ticker FROM weekly)\n        GROUP BY ticker, ex_date\n    ),\n    px AS\n    (\n        SELECT\n            ticker,\n            date,\n            toFloat64(any(close)) AS close\n        FROM global_markets.stocks_daily_aggs\n        WHERE date >= today() - 400\n          AND ticker IN (SELECT ticker FROM weekly)\n        GROUP BY ticker, date\n    )\nSELECT\n    ticker,\n    count()                                AS ex_dates,\n    round(avg(amount), 4)                  AS avg_distribution,\n    round(avg(ex_close - prior_close), 4)  AS avg_overnight_move\nFROM\n(\n    SELECT\n        d.ticker                   AS ticker,\n        d.ex_date                  AS ex_date,\n        toFloat64(any(d.amount))   AS amount,\n        any(pe.close)              AS ex_close,\n        argMax(pp.close, pp.date)  AS prior_close\n    FROM payments AS d\n    INNER JOIN px AS pe ON pe.ticker = d.ticker AND pe.date = d.ex_date\n    INNER JOIN px AS pp ON pp.ticker = d.ticker\n    WHERE pp.date <  d.ex_date\n      AND pp.date >= d.ex_date - 7\n    GROUP BY d.ticker, d.ex_date\n)\nGROUP BY ticker\nORDER BY avg_distribution DESC\nLIMIT 10","computed_at":"2026-09-24T15:35:14.259790+00:00","elapsed":2.279516046}