{"slug":"etf-vs-mutual-fund-settlement","qid":"settlement_clock","label":"settlement_clock","post_title":"etf-vs-mutual-fund-settlement","post_url":"/blog/etf-vs-mutual-fund-settlement#q-settlement_clock","columns":["trade_date","trade_label","weekday","settles_on","settle_label","days_to_cash"],"rows":[{"trade_date":"2026-10-05","trade_label":"Oct 5","weekday":"Monday","settles_on":"2026-10-06","settle_label":"Oct 6","days_to_cash":1},{"trade_date":"2026-10-06","trade_label":"Oct 6","weekday":"Tuesday","settles_on":"2026-10-07","settle_label":"Oct 7","days_to_cash":1},{"trade_date":"2026-10-07","trade_label":"Oct 7","weekday":"Wednesday","settles_on":"2026-10-08","settle_label":"Oct 8","days_to_cash":1},{"trade_date":"2026-10-08","trade_label":"Oct 8","weekday":"Thursday","settles_on":"2026-10-09","settle_label":"Oct 9","days_to_cash":1},{"trade_date":"2026-10-09","trade_label":"Oct 9","weekday":"Friday","settles_on":"2026-10-12","settle_label":"Oct 12","days_to_cash":3},{"trade_date":"2026-10-12","trade_label":"Oct 12","weekday":"Monday","settles_on":"2026-10-13","settle_label":"Oct 13","days_to_cash":1},{"trade_date":"2026-10-13","trade_label":"Oct 13","weekday":"Tuesday","settles_on":"2026-10-14","settle_label":"Oct 14","days_to_cash":1},{"trade_date":"2026-10-14","trade_label":"Oct 14","weekday":"Wednesday","settles_on":"2026-10-15","settle_label":"Oct 15","days_to_cash":1},{"trade_date":"2026-10-15","trade_label":"Oct 15","weekday":"Thursday","settles_on":"2026-10-16","settle_label":"Oct 16","days_to_cash":1},{"trade_date":"2026-10-16","trade_label":"Oct 16","weekday":"Friday","settles_on":"2026-10-19","settle_label":"Oct 19","days_to_cash":3},{"trade_date":"2026-10-19","trade_label":"Oct 19","weekday":"Monday","settles_on":"2026-10-20","settle_label":"Oct 20","days_to_cash":1},{"trade_date":"2026-10-20","trade_label":"Oct 20","weekday":"Tuesday","settles_on":"2026-10-21","settle_label":"Oct 21","days_to_cash":1},{"trade_date":"2026-10-21","trade_label":"Oct 21","weekday":"Wednesday","settles_on":"2026-10-22","settle_label":"Oct 22","days_to_cash":1},{"trade_date":"2026-10-22","trade_label":"Oct 22","weekday":"Thursday","settles_on":"2026-10-23","settle_label":"Oct 23","days_to_cash":1},{"trade_date":"2026-10-23","trade_label":"Oct 23","weekday":"Friday","settles_on":"2026-10-26","settle_label":"Oct 26","days_to_cash":3}],"shape":"series","sql":"SELECT\n    toString(trade_day)                                                       AS trade_date,\n    concat(formatDateTime(trade_day, '%b'), ' ', toString(toDayOfMonth(trade_day))) AS trade_label,\n    ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'][toDayOfWeek(trade_day)] AS weekday,\n    toString(settle_day)                                                      AS settles_on,\n    concat(formatDateTime(settle_day, '%b'), ' ', toString(toDayOfMonth(settle_day))) AS settle_label,\n    dateDiff('day', trade_day, settle_day)                                    AS days_to_cash\nFROM\n(\n    SELECT\n        tupleElement(pair, 1) AS trade_day,\n        tupleElement(pair, 2) AS settle_day\n    FROM\n    (\n        SELECT arrayJoin(arrayZip(arrayPopBack(sessions), arrayPopFront(sessions))) AS pair\n        FROM\n        (\n            SELECT arraySort(groupArray(d)) AS sessions\n            FROM\n            (\n                SELECT today() + arrayJoin(range(30)) AS d\n            )\n            WHERE toDayOfWeek(d) BETWEEN 1 AND 5\n              AND d NOT IN\n              (\n                  SELECT date\n                  FROM global_markets.stocks_market_holidays\n                  WHERE status = 'closed'\n              )\n        )\n    )\n)\nORDER BY trade_date\nLIMIT 15","computed_at":"2026-10-03T15:04:39.237837+00:00","elapsed":0.023101298}