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.
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
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
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.
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.
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".
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.
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_cyclereturns 1 on/afterT1_EFFECTIVEimpl/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
- 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.
- Applied on 26 Jul 2026 — USD equities T+2 → T+1 (SEC Rule 15c6-1, 28 May 2024).