The Backtest That Lies to You

Two betting strategies, the exact same synthetic season, the exact same "true" edge on every game. The only difference between the two simulation modes below is how the random numbers get assigned to events โ€” and that alone is enough to flip who looks like the winner.

EVENT-KEYED CRN SANDBOX ยท arXiv:2603.11084
Strategy A ยท Bet Everything
avg edge โ€”
Strategy B ยท Skip Low Confidence
avg edge โ€”
Ground truth, measured directly from the underlying event outcomes (not from either simulation mode). B skips games below the confidence threshold, so on paper it should hold a real, consistent edge advantage. Watch whether each mode's verdict actually reflects that.

๐ŸŽฒ Naive Shared-Seed Mode

One stateful RNG stream, reused across strategies. Each strategy just calls rng.next() for every bet it actually places โ€” so the draw index it lands on depends on its own control flow (how many bets it has skipped so far), not on which game is being resolved.
Run a season to begin โ€”0 flips
Cumulative avg PnL gap (A โˆ’ B), per seasonraw season dots + running avg
Draw index vs. game index โ€” latest seasonmisalignment shows as drift off the diagonal
Strategy A draw index Strategy B draw index

๐Ÿ”‘ Event-Keyed Hashing Mode

Each game's outcome is hash(seed, game_id, "outcome") โ€” a pure function of the event, not of position in a draw sequence. Whether a strategy bets on game 7 or skips straight to game 12, game 7's outcome is always the same fixed value.
Run a season to begin โ€”0 flips
Cumulative avg PnL gap (A โˆ’ B), per seasonraw season dots + running avg
Draw index vs. game index โ€” latest seasonalways identity โ€” no drift possible
Strategy A draw index Strategy B draw index