{"slug":"how-qqq-holdings-are-weighted","qid":"reconstitution_tape","label":"reconstitution_tape","post_title":"how-qqq-holdings-are-weighted","post_url":"/blog/how-qqq-holdings-are-weighted#q-reconstitution_tape","columns":["year","recon_friday_volume_mn","other_december_volume_mn","recon_day_ratio"],"rows":[{"year":"2016","recon_friday_volume_mn":26.3,"other_december_volume_mn":23.6,"recon_day_ratio":1.11},{"year":"2017","recon_friday_volume_mn":49.8,"other_december_volume_mn":30.1,"recon_day_ratio":1.65},{"year":"2018","recon_friday_volume_mn":141.1,"other_december_volume_mn":69.7,"recon_day_ratio":2.03},{"year":"2019","recon_friday_volume_mn":27.6,"other_december_volume_mn":20.2,"recon_day_ratio":1.37},{"year":"2020","recon_friday_volume_mn":41.2,"other_december_volume_mn":25.1,"recon_day_ratio":1.64},{"year":"2021","recon_friday_volume_mn":81.5,"other_december_volume_mn":54.8,"recon_day_ratio":1.49},{"year":"2022","recon_friday_volume_mn":68.1,"other_december_volume_mn":49.1,"recon_day_ratio":1.39},{"year":"2023","recon_friday_volume_mn":62.9,"other_december_volume_mn":42.3,"recon_day_ratio":1.49},{"year":"2024","recon_friday_volume_mn":60.1,"other_december_volume_mn":28.2,"recon_day_ratio":2.13},{"year":"2025","recon_friday_volume_mn":60.4,"other_december_volume_mn":47.8,"recon_day_ratio":1.26}],"shape":"ranking","sql":"WITH dec_days AS\n(\n    SELECT\n        toYear(date)                                                   AS yr,\n        toFloat64(volume)                                              AS vol,\n        toDayOfWeek(date) = 5 AND toDayOfMonth(date) BETWEEN 15 AND 21 AS is_recon_friday\n    FROM global_markets.stocks_daily_aggs\n    WHERE ticker = 'QQQ'\n      AND toMonth(date) = 12\n      AND date >= '2016-12-01'\n)\nSELECT\n    toString(yr)                                                            AS year,\n    round(maxIf(vol, is_recon_friday) / 1e6, 1)                             AS recon_friday_volume_mn,\n    round(avgIf(vol, NOT is_recon_friday) / 1e6, 1)                         AS other_december_volume_mn,\n    round(maxIf(vol, is_recon_friday) / avgIf(vol, NOT is_recon_friday), 2) AS recon_day_ratio\nFROM dec_days\nGROUP BY yr\nHAVING countIf(is_recon_friday) > 0 AND countIf(NOT is_recon_friday) > 0\nORDER BY yr","computed_at":"2026-09-25T15:16:14.930304+00:00","elapsed":0.003349746}