Availability is not the economic reference date
The fixture's first formation is 2024-01-01T00:00:00Z. Its signal_available field means when the synthetic score can first be used. A reporting-period label would not substitute for that timestamp in an actual study. Kenneth French's construction notes distinguish annual formation and earlier accounting inputs; this example adds a strict timestamp guard for its own illustrative rule.
Every score must be available strictly before formation. The engine also checks that fixed-universe membership and the policy freeze precede formation. The return interval begins at formation; it cannot overlap the next interval or leave an unexplained gap in the compounded ledger. These rules concern the internal synthetic timeline, not proof of genuine point-in-time vendor history.
Change the unselected row, not the best score
Start from the canonical fixture and change only SYN-06's first signal_available value. A timestamp one second before formation passes. An equal timestamp fails because within-timestamp event ordering is not established. One second after formation also fails with FUTURE_SIGNAL. The fixture is validated before any portfolio result is returned.
SYN-06 is not in the default top three for this period. That does not make an invalid observation safe to ignore: it is still part of the ranking universe, and the future value could otherwise affect selection under another control setting. The engine does not silently discard it, carry a previous score forward, replace it with zero, or extend the availability window.
Repair evidence, not the reported date
The educational correction is to restore the original synthetic timestamp, then rerun the unchanged fixture. In actual research, changing a date merely to pass a guard would not cure look-ahead. One would need an independently evidenced availability record or a newly declared formation protocol, with any resulting research treated as a different experiment.
The tests also reject non-UTC or date-only strings, impossible calendar dates, missing return fields, duplicate security rows and altered split order. A clean validation response means the input satisfies this program's contract; it is not an audit of a vendor, a point-in-time certification, or evidence of predictive power.
Inspect the example
| SYN-06 signal_available | Formation | Expected result |
|---|---|---|
| 2023-12-31T23:59:59Z | 2024-01-01T00:00:00Z | Accepted: strictly earlier |
| 2024-01-01T00:00:00Z | 2024-01-01T00:00:00Z | FUTURE_SIGNAL: equal timestamp rejected |
| 2024-01-01T00:00:01Z | 2024-01-01T00:00:00Z | FUTURE_SIGNAL: later timestamp rejected |
Sources & reproduction
Primary references support the definitions and method. Numerical examples are illustrative unless a source record is explicitly identified.