# Non-repaint and causal-time report

Result: **PASS** for version 1.0.0.

- Regime replay fed synthetic history one completed bar at a time. Earlier closed-bar regime and component values remained equal within absolute `1e-10` and relative `1e-8` tolerance.
- Regime volatility percentile uses the current closed-bar estimate only against 252 strictly older estimates. Hysteresis looks backward; shock is immediate only on its own closed bar.
- Currency calculations map each chart time to the most recent completed source bar and then advance one source shift. Its 1/5/20/60 returns and 126-observation scales use only that closed bar and older observations.
- Currency Python leave-one-pair-out replay produced ten stable rank-7 solutions and two explicit insufficient graphs; inverse-pair transformation matched exactly.
- Calendar timestamps originate in trade-server time. No local/DST guess is used; the fixture round-trip and same-minute grouping tests passed.
- Portfolio values are current-account snapshots and do not claim historical bar persistence. No future series is read.
- Bar 0 is labelled preliminary where price-derived state is shown. Alerts are disabled by default and tied to confirmed state/event thresholds.

Accepted exception: if a broker corrects or extends stored history, MT5 may reset `prev_calculated` and the indicator intentionally performs a full recalculation. Debug mode logs that condition.

## Version 1.1.0 additions

- Independent prefix replay recalculated each new closed bar without changing earlier liquidity or jump/tail rows.
- The compiled indicators captured 32 valid closed GBPUSD M15 timestamps across six published buffers each. After a full simulated day and 5,617 ticks, all 384 values were re-addressed by timestamp: 384/384 equal, zero mismatches, maximum absolute error zero.
- Liquidity percentiles and gap normalization use only the indexed bar and older history. Jump/tail baselines exclude the current return from their 252-return robust reference.
- Both dashboards label bar 0 `PRELIMINARY`; optional alerts read bars 1 and 2 only.
