{
  "strategy": "starter 50 bps",
  "file": "StarterStrategy.sol",
  "commit": "6b6921f8",
  "seed_start": 900000,
  "n": 10000,
  "mean_edge": 367.91606344584477,
  "se": 0.5899946030256618,
  "first_edges": [
    313.044946,
    267.440875,
    410.867525,
    262.784628,
    381.157655,
    461.968895,
    464.140326,
    381.800747,
    301.375568,
    331.929204
  ],
  "min_edge": {
    "seed": 904955,
    "edge": 229.41406621967673
  },
  "max_edge": {
    "seed": 900544,
    "edge": 544.6112523502132
  },
  "seconds_per_simulation": 0.06592692552108784,
  "seeding_confirmed": "amm_competition/competition/match.py, MatchRunner._build_configs, seeds numpy.default_rng per simulation and draws mean retail size, retail arrival rate, then sigma, assigning the same seed to SimulationConfig. amm_sim_rs/src/simulation/engine.rs, SimulationEngine::run, uses that seed for GBM price and seed+1 for retail; this matches the requested mapping.",
  "notes": "amm-match validate contracts/src/StarterStrategy.sol passed. Unmodified pinned simulator and contract; default 10,000-step configuration and 30 bps VanillaStrategy normalizer. Chunks of 500 seeds, in order, using the exported amm_sim_rs.run_single equivalent across eight Python workers to release per-step histories after each simulation. Wall time includes worker startup, config generation and result collection. Explicit-seed config replication checked against MatchRunner._build_configs for seeds 0..9. First ten edges and seed order matched a direct run_batch call exactly. All 10,000 seeds completed in 20 chunks before the 40-minute limit. No simulation or validation errors."
}
