Change proposal · 001-cash-snapshot

USD equities T+2 → T+1

Shorten the USD-equity settlement cycle in FR-001 to T+1, with the compliance date as the boundary.

Status Applied Change ID 2024-05-28-usd-t1-settlement Spec 001-cash-snapshot Author Brian Corbin · @briancorbinxyz Created Targets 1 requirement Read time

SEC Rule 15c6-1's compliance date lands: from 28 May 2024 the US standard equity cycle is T+1. This change modifies FR-001 from T+2 to T+1, keeping the pre-cutover T+2 rule for trades struck before the date so historical snapshots stay reproducible. One delta, one requirement; the crate's edition-correct standard_cycle already branches on the compliance date.

USD equities T+2 → T+1

Applied

1 · Intent

The domain fact underneath FR-001 changed. Under SEC Rule 15c6-1 the US standard settlement cycle for equities shortened from T+2 to T+1, with a compliance date of 28 May 2024. FR-001 was written in the T+2 era and now asserts a cycle the current corpus edition (KB-0001@2024-05-28) no longer carries.

This proposal brings FR-001 into line with the new rule while preserving point-in-time correctness: a trade struck before the cutover still settles under the T+2 cycle that governed it, so re-running an old close reproduces exactly.

2 · Scope

In scope

  • Modify FR-001 so USD equities settle T+1 for trades on or after 28 May 2024, T+2 before.
  • Keep the settlement rule edition-correct and pinned by trade date, not applied retroactively.

Out of scope

  • Non-USD or non-equity settlement cycles — unchanged by this proposal.
  • Available cash and corporate-action entitlements — still deferred by the spec.

3 · Approach

A single modify delta on FR-001. The post-state states the cycle as trade date + 1 business day (T+1) on or after the compliance date, and trade date + 2 (T+2) before it, expressed as prose rather than a second requirement. The crate needs no structural change: standard_cycle(trade_date) already returns 1 on or after T1_EFFECTIVE (2024-05-28) and 2 before, so this proposal is the spec catching up to the implementation and the corpus, not the reverse.

4 · Deltas

One <spec-delta> per requirement touched. target= links to the live spec. op= is one of added | modified | removed | renamed.

What changes: T+2 → T+1 for USD equities, with 28 May 2024 as the boundary; the pre-cutover T+2 rule is retained for trades struck before the date so historical snapshots stay reproducible.

The settlement date of a US-equity trade MUST be its trade date plus N business days, where N is the standard settlement cycle in force on the trade date and business days exclude weekends and US market holidays. USD equities settle trade date + 1 business day (T+1) for trades on or after 28 May 2024; trades before settle T+2 per the edition then in force.

Rationale

Point-in-time correctness across the compliance-date cutover: the cycle length is read from standard_cycle(trade_date), grounded on KB-0001@2024-05-28, which supersedes the T+2 edition without rewriting how a pre-cutover trade settled.

5 · Risk register

Populated by the adversarial risk pass. One <spec-risk> per finding. target= is required; status= starts identified and apply refuses until each transitions to accepted, mitigated, or rejected.

The change most likely to be regretted: collapsing FR-001 to a bare "T+1" would mis-settle every trade struck before 28 May 2024, silently re-settling historical closes under a rule that never governed them.

The modified <spec-delta target="FR-001"> post-state.

Accepted: the post-state does not collapse to a bare T+1 — it keeps the pre-cutover T+2 clause and pins the cycle to the trade date, and standard_cycle already branches on T1_EFFECTIVE. The regret is designed out, not deferred.

The requirement this most likely contradicts: SC-001's "edition-correct settlement date" acceptance was written when the only edition was T+2; a fixture asserting a T+2 date for a post-cutover trade would now be wrong.

SC-001 — reproducible-to-the-cent settled balance.

Mitigated: SC-001 is phrased against the "edition-correct" date, not a fixed T+2, so it holds under both editions; the §6 cutover test pins a post-cutover trade to its T+1 date so no fixture silently asserts the old cycle.

Scope concern — too narrow: the proposal touches only FR-001 and leaves FR-002's IBOR/ABOR wording untouched, which could read as if the two-book math were unaffected by the cycle change.

§2 In scope — "Modify FR-001 … T+1".

Accepted as correctly minimal: FR-002 folds over whatever settlement_date returns, so it needs no edit; a one-delta proposal is the right granularity and keeps the change reviewable.

Corpus contradiction: a live requirement still asserting T+2 contradicts KB-0001@2024-05-28 (supersedes KB-0001@2017-09-05) — the current corpus edition carries T+1.

§4 delta on FR-001, against the finance-settlement corpus.

Mitigated: this delta is exactly the fix — it re-states FR-001 as T+1 grounded on the current edition, and the design's D-001 is re-grounded from KB-0001@2017-09-05 to KB-0001@2024-05-28 in the same change, clearing the corpus-staleness warning.

6 · Tasks

Scoped to this change only. On /spectastic.apply these fold into the target's tasks.html as a new provenance-linked phase that /spectastic.implement drains.

  • Confirm the T+1 branch — assert standard_cycle returns 1 on/after T1_EFFECTIVE impl/src/lib.rs
  • Pin the cutover test — a post-cutover trade settles T+1, a pre-cutover trade T+2 impl/src/lib.rs
  • Re-ground design D-001 — cite the current corpus edition and state T+1 specs/001-cash-snapshot/design.html

7 · Open questions

None outstanding — the boundary date is fixed by the compliance date, the pre-cutover rule is retained explicitly, and the implementation already branches on it; nothing is left undecided.

8 · Change log

  1. Proposal authored and approved: modify FR-001 from T+2 to T+1 for USD equities on/after the 28 May 2024 compliance date, retaining T+2 for earlier trades.
  2. Applied on 26 Jul 2026 — USD equities T+2 → T+1 (SEC Rule 15c6-1, 28 May 2024).