{"slug":"good-faith-violations-in-cash-accounts","qid":"settlement_calendar","label":"Every session ahead, and the day a sale made in it settles","post_title":"Good Faith Violations in Cash Accounts","post_url":"/blog/good-faith-violations-in-cash-accounts#q-settlement_calendar","columns":["trade_date","traded_on","settles_on","calendar_days_to_settle"],"rows":[{"trade_date":"2026-08-24","traded_on":"Mon, Aug 24","settles_on":"Tue, Aug 25","calendar_days_to_settle":1},{"trade_date":"2026-08-25","traded_on":"Tue, Aug 25","settles_on":"Wed, Aug 26","calendar_days_to_settle":1},{"trade_date":"2026-08-26","traded_on":"Wed, Aug 26","settles_on":"Thu, Aug 27","calendar_days_to_settle":1},{"trade_date":"2026-08-27","traded_on":"Thu, Aug 27","settles_on":"Fri, Aug 28","calendar_days_to_settle":1},{"trade_date":"2026-08-28","traded_on":"Fri, Aug 28","settles_on":"Mon, Aug 31","calendar_days_to_settle":3},{"trade_date":"2026-08-31","traded_on":"Mon, Aug 31","settles_on":"Tue, Sep 1","calendar_days_to_settle":1},{"trade_date":"2026-09-01","traded_on":"Tue, Sep 1","settles_on":"Wed, Sep 2","calendar_days_to_settle":1},{"trade_date":"2026-09-02","traded_on":"Wed, Sep 2","settles_on":"Thu, Sep 3","calendar_days_to_settle":1},{"trade_date":"2026-09-03","traded_on":"Thu, Sep 3","settles_on":"Fri, Sep 4","calendar_days_to_settle":1},{"trade_date":"2026-09-04","traded_on":"Fri, Sep 4","settles_on":"Tue, Sep 8","calendar_days_to_settle":4},{"trade_date":"2026-09-08","traded_on":"Tue, Sep 8","settles_on":"Wed, Sep 9","calendar_days_to_settle":1},{"trade_date":"2026-09-09","traded_on":"Wed, Sep 9","settles_on":"Thu, Sep 10","calendar_days_to_settle":1},{"trade_date":"2026-09-10","traded_on":"Thu, Sep 10","settles_on":"Fri, Sep 11","calendar_days_to_settle":1},{"trade_date":"2026-09-11","traded_on":"Fri, Sep 11","settles_on":"Mon, Sep 14","calendar_days_to_settle":3},{"trade_date":"2026-09-14","traded_on":"Mon, Sep 14","settles_on":"Tue, Sep 15","calendar_days_to_settle":1}],"shape":"series","sql":"SELECT\n    toString(s.d)                                                                                                    AS trade_date,\n    concat(formatDateTime(s.d, '%a'), ', ', formatDateTime(s.d, '%b'), ' ', toString(toDayOfMonth(s.d)))              AS traded_on,\n    concat(formatDateTime(s.next_open, '%a'), ', ', formatDateTime(s.next_open, '%b'), ' ', toString(toDayOfMonth(s.next_open))) AS settles_on,\n    dateDiff('day', s.d, s.next_open)                                                                                AS calendar_days_to_settle\nFROM\n(\n    SELECT\n        d,\n        leadInFrame(d) OVER (ORDER BY d ROWS BETWEEN 1 FOLLOWING AND 1 FOLLOWING) AS next_open\n    FROM\n    (\n        SELECT d\n        FROM\n        (\n            SELECT today() + arrayJoin(range(0, 45)) 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) AS s\nWHERE s.next_open > s.d\nORDER BY s.d\nLIMIT 15","computed_at":"2026-08-22T04:06:32.510614+00:00","elapsed":0.012753711}