{
 "notes": "EPISODE 9 (last spawning episode): RC promoted over N on spreads 2 and 3 from complete F evidence; base is the requester's B_RC; the picker P (MA on spread 1, B_RC elsewhere) and the spread-4 retreat cancel B_RC4 are deterministic texts sent to F now, with 13 development and 6 removal screens. Spawned 61 items in 7 batches; used after this about 494 of 600. Episode 10 reads, promotes per spread and finishes; it can spawn nothing readable.\n\nSTANDINGS (requester 11-07 01:30Z, not live-checked): 1st Ponxter 110.69; 2nd us 110.43 with B_RC. Paradigm's sandbox stops a submission at about 270 s for 200 runs; B_RC took 215 s; MA plus RC's wrapper failed twice. Drop any candidate over 15% slower than B_RC (every batch reports seconds per simulation for both files by spread).\n\nBASE CHAIN (adopted, not promoted by our gate): combine-cash -> N (11-06) -> MA (11-07 00:30Z) -> B_RC (11-07 01:30Z). code = `code` field of https://api.imdnotdead.fun/artifacts/<art>; verified here.\n- N bf0d179f3e47d28819f6fa7e0d25548c2ced43374c216d36460b00a26a26ffae.\n- MA 5d1bd5272884f513b19f0e66a7c235f6c188a08e4f7787ac9346f1614dda3ed3 (art 149883fee797ad95a91e535b7a74453587a3eb19ca87ab95f7d8585db160a8f4); check values (seeds 310000..310003) 17.116002, 23.820392, 2.376144, 243.87214.\n- MB 4f9167dddd457f394e988bf9c9e2576dd6120834bfb8d93573ce9451fd587598 (art 6b40ef6fdf9512700501e6b92fb5c920955a97b29111faada6d411074173b7cd).\n- RC 3c07bdcd221ac25729c3ebc92b21ac9e2014510ecb85816c4391ed81e933291f (art 2d4b30bbc6bffbc500b37ce5e8a1ac821d6513c52a6a2377b4be3c11d97717fb) = N + \"\\n\\n\" + W; W = RC's text from `_IncumbentStrategy = Strategy` to the end.\n- B_RC = MB + \"\\n\\n\" + W, 02696ea6fd0922f64167a1153748f6a38bf2fd5d87c7a4ac6cb974bb9482f57c (the requester's hash); check values 17.512655, 24.258579, 2.390311, 249.541133. Goal 75dd8e1e: B_RC over MB +0.40 se 0.04.\n- P (picker) = MA renamed _S1, MB renamed _S234, W rebased on _S234 as _BRC, then a 10-line class Strategy reading s = max(1,(ask-bid+1)//2) from the first competitor quotes as MA and MB do and delegating on_step to _S1() if s == 1 else _BRC(); 44f64ab14cfb4f0d0b88c5c42b1125d4950eb688117398a3ba0688c734ef1700; recipe in the r7-compose and r7-p-f briefs. Smoke run here (seeds 310000..310009): P equals MA on spread-1 seeds and B_RC on the rest; about 1.4 s a simulation each.\n- W4 = W with `_IncumbentStrategy`->`_IncumbentStrategy4`, `_retreat_previous`->`_retreat4_previous`, `_retreat_left`->`_retreat4_left`, `if self.s not in (2, 3):`->`if self.s != 4:`. B_RC4 = B_RC + \"\\n\\n\" + W4, 27cef4140f19ecf15aeaa82c8a4bc70f9f066083a5bed10bcb963d8ecbb9b8aa (smoke: differs from B_RC only on s4). P4 = P with W4 rebased on _BRC as _BRC4 and the picker choosing _BRC4 for s != 1; ffa425242e7514591810c2b9d7873495d8ee17b68d523566895359744ef385d3 (smoke: MA on s1, B_RC4 on s4, B_RC elsewhere).\n\nPROMOTIONS (ranked, for the write-up):\n1. Round 4, spreads 2 and 3, N -> RC: F 900000..903999 complete, n 4000, 0 failures, hashes verified; overall +0.537 se 0.048; s2 n 1017 +1.079 se 0.145; s3 n 961 +1.093 se 0.123; d = 0 on every s1/s4 seed; retail about -0.12, arb about +0.66 per run; worst seed -25.4; blocks +0.35 to +0.72 (f7 source-flagged, numbers agree); N's F mean about 103.5. The same wrapper makes B_RC.\nRunner-up, not promoted: retreat-crossing b5158a963a479a0919146dc0d56a347b68ddc2d66dd7c467b48473baef8997cf (s3 posterior reweight on a one-tick rival retreat) vs N, n about 3948: overall +0.108 se 0.043, s3 n 951 +0.45 se 0.18; clears the gate on s3, but RC gains twice as much there and the combination on RC screened -0.18 se 0.18, so RC holds s3.\nStreak without promotion: 0 (round 4 promoted; round 5 cancelled when the base moved; round 6 still runs).\n\nOTHER EVIDENCE: MA vs N on F 900000..901999 (n 2000): +1.020 se 0.167 (s1 +1.00/0.54, s2 +2.06/0.35, s3 +0.60/0.17, s4 +0.41/0.10; worst s1 seeds -98.5, -93.9). Round 4 extension vs N (1500 seeds): d-s3-mid-size-up s3 +0.32 se 0.14 (ported now); remove-s4-ask-risk-premium s4 -0.68 se 0.28 (raised now); s1 ports dead. Round 5 vs RC: nothing positive; best d5-s4-cancel-port s4 +0.36 se 0.26 (hence B_RC4 to F); 67 blind overlays over four rounds, none gained: fresh lane closed, width went to measurement. Diagnostics on N: same-side arb loss after a one-tick rival retreat 2.40/1.93/1.81/1.04 per run for spreads 1..4 (s1, s4 untreated); after rival inward moves or both-quote shifts the next-step move rate is 22-29% vs 14-15%: these drive r7-dev.\n\nBATCHES NOW (measure items return per_seed [seed, s, d], worst seeds, timing by spread, off_target_zero):\n- r7-compose (2, handed as items): compose-p audits P = MA on s1 seeds and = B_RC elsewhere over 460000..460199 and times P, MA, B_RC; compose-p4 likewise for P4. Each returns the full file gzip+base64 and its SHA (must match above).\n- r7-p-f (8 x 500 over F, merges of 4): P vs B_RC; only s1 may differ (d == 0 on s2-4 seeds is the equality audit at scale).\n- r7-ma-fresh (16 x 500 over 920000..927999, merges of 4): MA vs B_RC per spread; its s1 d equals P's, so it replicates r7-p-f on s1 (pool by sum_d/sum_d2); s2-4 show which base wins where.\n- r7-s4-f (8 x 500 over F) and r7-s4-fresh (8 x 500 over 930000..933999), merges of 4: B_RC4 vs B_RC; only s4 differs.\n- r7-dev (13, merges of 4; T 350000..350149, H 460200..460699; keys d7-*): three s1 ideas on MA (bid cancel on rival ask-down, ask cancel on bid-up, both-shift pause); on B_RC: bid cancel on ask-down and both-shift pause for s2, s3, s4; s3 mid-size-up; s4 retreat cancel bid-only and with a 2-callback cooldown; s4 ask-risk premium up. Full file gzip+base64 and SHA each; merges' `top` holds the best two.\n- r7-remove (6, merges of 3, vs B_RC on 460200..460699; keys x7-*): drop the bid or ask trigger on s2 or s3, drop the suppression, drop the probe clearing; negative d = the part carries gain.\n- Still running: r6-port (14 on MA), r6-fresh (7), r6-base-f merge-02; merges asked for.\n\nEPISODE 10, in order:\n1. Integrity: a block counts only if complete (n 500), 0 failures, hashes as above, check values right, off_target_zero true where required; pool by mean = S/n, se = sqrt((Q - S*S/n)/(n-1)/n), overall and per spread.\n2. Spread 1: promote P over B_RC if r7-p-f is complete (n 4000) and its s1 gain > 2 se, with r7-ma-fresh's s1 as replication (report both and the pool), compose-p all_equal, P's timing within 15% of B_RC's. Spread 4: promote B_RC4 (as P4 if s1 is also promoted) if r7-s4-f's s4 gain > 2 se with n 4000, r7-s4-fresh agreeing in sign, compose-p4 all_equal, timing within 15%. The final file is then P4, P, B_RC4 or B_RC, each with its hash above; the write-up's code is the compose item's `code` (decoded SHA must match) or B_RC by recipe.\n3. Promotion table rows: round, spread, old and new hash, URL or recipe, F n, gain, se, retail and arb change, worst seeds, timing. RC's row first.\n4. r7-dev, r7-remove, r6-port and r6-fresh are screens (500 seeds, selected): list them ranked per spread as next candidates with hashes, never as promotions; name any over 15% slower.\n5. Set finish=true. Write-up: the final file's full code and hash, its F evidence per spread, the promotion table, the base chain, and the limits: F reused across rounds and finalists; H common to a round's items; N, MA and B_RC adopted, not promoted; local paired gains are not a leaderboard result; --sandbox not run; the 270 s limit known only as worker-machine timing.\nSEED LEDGER: exposed below 300000; T 310000..350149 by round; H 410000..411999, 430000..431999, 440000..440499, 450000..460699; diagnostics 420000..421999, 500000..502499, 510000..510499; fresh measure 920000..933999; never 700000..709999 (goal 75dd8e1e); F 900000..903999 used by RC, retreat-crossing, MA vs N, P, B_RC4.\nLESSONS: filled briefs under 3000 characters, merge briefs under 1500, vars strings under 1000 (two attempts of this episode failed on these); never ask for a command's output; results under 64,000 bytes, served at https://api.imdnotdead.fun/artifacts/<its SHA-256>.",
 "spawn": [
  {
   "name": "r7-compose",
   "brief": "Audit item: {{idea}}. Simulator github.com/danrobinson/prediction-market-challenge at b244530ee2a6247b5f930830eeca9dd950da0e7e, unmodified, default config, 2000 steps, one process, never --workers or --sandbox; call sample_config, SimulationEngine and load_strategy_factory yourself per seed in chunks of 50 so no tool call passes 10 minutes; rerun lost seeds. Build the texts below; verify every sha first and stop on a mismatch, naming the part. Sources are the `code` field of the JSON at https://api.imdnotdead.fun/artifacts/<art>; hashes are SHA-256 of UTF-8 text; NL = two newlines; X[a -> b] = X with text a replaced by b. MA: art 149883fee797ad95a91e535b7a74453587a3eb19ca87ab95f7d8585db160a8f4, sha 5d1bd5272884f513b19f0e66a7c235f6c188a08e4f7787ac9346f1614dda3ed3. MB: art 6b40ef6fdf9512700501e6b92fb5c920955a97b29111faada6d411074173b7cd, sha 4f9167dddd457f394e988bf9c9e2576dd6120834bfb8d93573ce9451fd587598. W = RC (art 2d4b30bbc6bffbc500b37ce5e8a1ac821d6513c52a6a2377b4be3c11d97717fb) from its line `_IncumbentStrategy = Strategy` to the end. B_RC = MB + NL + W, sha 02696ea6fd0922f64167a1153748f6a38bf2fd5d87c7a4ac6cb974bb9482f57c. {{extra_defs}}{{recipe}}Run {{files}} on every seed 460000..460199; {{rule}} List failing seeds with both edges; report, do not repair. Result JSON under 64,000 bytes: key, idea, code (the whole {{main}} file, gzip then base64), code_sha256 (raw UTF-8), part_sha256 (each text), audit {seeds, n_by_spread, mismatches [seed, s, got, expected], all_equal}, seconds_per_simulation per file overall and by spread, python_version, check_values ({{main}} on seeds 310000..310003), failures, notes under 500 characters. Tune nothing.",
   "items": [
    {
     "key": "compose-p",
     "vars": {
      "idea": "P, the per-spread picker (MA on spread 1, B_RC on spreads 2, 3 and 4): equality audit and timing",
      "extra_defs": "",
      "recipe": "P = MA[`class Strategy(BaseStrategy):` -> `class _S1(BaseStrategy):`] + NL + MB[that line -> `class _S234(BaseStrategy):`] + NL + W[`_IncumbentStrategy = Strategy` -> `_IncumbentStrategy = _S234`, `class Strategy(` -> `class _BRC(`] + NL + PICK, these 10 lines exactly (4-space indents, one final newline):\nclass Strategy(BaseStrategy):\n    def __init__(self):\n        self._inner = None\n\n    def on_step(self, state):\n        if self._inner is None:\n            cb = state.competitor_best_bid_ticks or 0\n            ca = state.competitor_best_ask_ticks or 100\n            self._inner = _S1() if max(1, (ca - cb + 1) // 2) == 1 else _BRC()\n        return self._inner.on_step(state)\nP sha 44f64ab14cfb4f0d0b88c5c42b1125d4950eb688117398a3ba0688c734ef1700. ",
      "files": "P, MA and B_RC",
      "main": "P",
      "rule": "P's total_edge must equal MA's on every spread-1 seed and B_RC's on every other seed, exactly."
     }
    },
    {
     "key": "compose-p4",
     "vars": {
      "idea": "P4, the picker with the retreat cancel also on spread 4: equality audit and timing",
      "extra_defs": "W4 = W with every `_IncumbentStrategy` -> `_IncumbentStrategy4`, `_retreat_previous` -> `_retreat4_previous`, `_retreat_left` -> `_retreat4_left`, and `if self.s not in (2, 3):` -> `if self.s != 4:`. B_RC4 = B_RC + NL + W4, sha 27cef4140f19ecf15aeaa82c8a4bc70f9f066083a5bed10bcb963d8ecbb9b8aa. ",
      "recipe": "P4 = MA[`class Strategy(BaseStrategy):` -> `class _S1(BaseStrategy):`] + NL + MB[that line -> `class _S234(BaseStrategy):`] + NL + W[`_IncumbentStrategy = Strategy` -> `_IncumbentStrategy = _S234`, `class Strategy(` -> `class _BRC(`] + NL + W4[`_IncumbentStrategy4 = Strategy` -> `_IncumbentStrategy4 = _BRC`, `class Strategy(` -> `class _BRC4(`] + NL + PICK4, these 10 lines (4-space indents, final newline):\nclass Strategy(BaseStrategy):\n    def __init__(self):\n        self._inner = None\n\n    def on_step(self, state):\n        if self._inner is None:\n            cb = state.competitor_best_bid_ticks or 0\n            ca = state.competitor_best_ask_ticks or 100\n            self._inner = _S1() if max(1, (ca - cb + 1) // 2) == 1 else _BRC4()\n        return self._inner.on_step(state)\nP4 sha ffa425242e7514591810c2b9d7873495d8ee17b68d523566895359744ef385d3. ",
      "files": "P4, MA, B_RC and B_RC4",
      "main": "P4",
      "rule": "P4's total_edge must equal MA's on every spread-1 seed, B_RC's on spread-2 and -3 seeds, B_RC4's on spread-4 seeds, exactly."
     }
    }
   ],
   "output": {
    "format": "json",
    "maxBytes": 64000
   }
  },
  {
   "name": "r7-p-f",
   "brief": "Measure-only item: {{idea}}. Simulator github.com/danrobinson/prediction-market-challenge at b244530ee2a6247b5f930830eeca9dd950da0e7e, unmodified, default config, 2000 steps, one process, never --workers or --sandbox; call sample_config, SimulationEngine and load_strategy_factory yourself per seed in chunks of 50 so no tool call passes 10 minutes; rerun lost seeds. Build C and K from the texts below and verify every SHA-256 first (on a mismatch report it and stop); run both on every seed {{start}}..{{end}} inclusive, the same seed each; d = C total_edge - K total_edge (unrounded); s = max(1, (ask - bid + 1)//2) from the first competitor quotes. Result JSON under 64,000 bytes: key, idea, candidate_sha256, comparator_sha256, seeds {start, end}, n, complete, missing_seeds, failures, check_values (K on seeds 310000..310003; {{check}}), python_version, seconds_per_simulation {candidate, comparator} overall and by spread (wall time of engine.run), overall and by_spread (1..4) each {n, sum_d, sum_d2, mean_diff, se, comparator_mean, retail_diff, arb_diff}, per_seed [seed, s, d] to 6 decimals for every seed, worst_seeds (10 lowest d: seed, s, d, both edges), off_target_zero (true iff d == 0 on every seed of spreads {{zero}}), notes under 600 characters. se = sd(d)/sqrt(n). A partial run is incomplete, never the measurement. No tuning, no code changes. Sources are the `code` field of the JSON at https://api.imdnotdead.fun/artifacts/<art>; hashes are SHA-256 of UTF-8 text; NL = two newlines; X[a -> b] = X with text a replaced by b. MA: art 149883fee797ad95a91e535b7a74453587a3eb19ca87ab95f7d8585db160a8f4, sha 5d1bd5272884f513b19f0e66a7c235f6c188a08e4f7787ac9346f1614dda3ed3. MB: art 6b40ef6fdf9512700501e6b92fb5c920955a97b29111faada6d411074173b7cd, sha 4f9167dddd457f394e988bf9c9e2576dd6120834bfb8d93573ce9451fd587598. W = RC (art 2d4b30bbc6bffbc500b37ce5e8a1ac821d6513c52a6a2377b4be3c11d97717fb) from its line `_IncumbentStrategy = Strategy` to the end. B_RC = MB + NL + W, sha 02696ea6fd0922f64167a1153748f6a38bf2fd5d87c7a4ac6cb974bb9482f57c. P = MA[`class Strategy(BaseStrategy):` -> `class _S1(BaseStrategy):`] + NL + MB[that line -> `class _S234(BaseStrategy):`] + NL + W[`_IncumbentStrategy = Strategy` -> `_IncumbentStrategy = _S234`, `class Strategy(` -> `class _BRC(`] + NL + PICK, these 10 lines exactly (4-space indents, one final newline):\nclass Strategy(BaseStrategy):\n    def __init__(self):\n        self._inner = None\n\n    def on_step(self, state):\n        if self._inner is None:\n            cb = state.competitor_best_bid_ticks or 0\n            ca = state.competitor_best_ask_ticks or 100\n            self._inner = _S1() if max(1, (ca - cb + 1) // 2) == 1 else _BRC()\n        return self._inner.on_step(state)\nP sha 44f64ab14cfb4f0d0b88c5c42b1125d4950eb688117398a3ba0688c734ef1700. C = P. K = B_RC.",
   "items": [
    {
     "key": "p-f-1",
     "vars": {
      "idea": "finalist measurement of P (MA on spread 1, B_RC elsewhere) against B_RC; only spread 1 may differ",
      "start": "900000",
      "end": "900499",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "2, 3 and 4"
     }
    },
    {
     "key": "p-f-2",
     "vars": {
      "idea": "finalist measurement of P (MA on spread 1, B_RC elsewhere) against B_RC; only spread 1 may differ",
      "start": "900500",
      "end": "900999",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "2, 3 and 4"
     }
    },
    {
     "key": "p-f-3",
     "vars": {
      "idea": "finalist measurement of P (MA on spread 1, B_RC elsewhere) against B_RC; only spread 1 may differ",
      "start": "901000",
      "end": "901499",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "2, 3 and 4"
     }
    },
    {
     "key": "p-f-4",
     "vars": {
      "idea": "finalist measurement of P (MA on spread 1, B_RC elsewhere) against B_RC; only spread 1 may differ",
      "start": "901500",
      "end": "901999",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "2, 3 and 4"
     }
    },
    {
     "key": "p-f-5",
     "vars": {
      "idea": "finalist measurement of P (MA on spread 1, B_RC elsewhere) against B_RC; only spread 1 may differ",
      "start": "902000",
      "end": "902499",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "2, 3 and 4"
     }
    },
    {
     "key": "p-f-6",
     "vars": {
      "idea": "finalist measurement of P (MA on spread 1, B_RC elsewhere) against B_RC; only spread 1 may differ",
      "start": "902500",
      "end": "902999",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "2, 3 and 4"
     }
    },
    {
     "key": "p-f-7",
     "vars": {
      "idea": "finalist measurement of P (MA on spread 1, B_RC elsewhere) against B_RC; only spread 1 may differ",
      "start": "903000",
      "end": "903499",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "2, 3 and 4"
     }
    },
    {
     "key": "p-f-8",
     "vars": {
      "idea": "finalist measurement of P (MA on spread 1, B_RC elsewhere) against B_RC; only spread 1 may differ",
      "start": "903500",
      "end": "903999",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "2, 3 and 4"
     }
    }
   ],
   "output": {
    "format": "json",
    "maxBytes": 64000
   },
   "merge": {
    "groupSize": 4,
    "brief": "Merge this group's blocks of one candidate against one comparator: a table of every block (key, seeds, n, complete, failures, check values matched, candidate and comparator seconds per simulation, mean_diff, se, retail_diff, arb_diff, off_target_zero), then pooled statistics from the blocks' n, sum_d, sum_d2 overall and for each spread 1..4: mean = S/n, se = sqrt((Q - S*S/n)/(n-1)/n), retail and arb differences weighted by n; the 10 worst seeds of the group; and a JSON block with rows (each block's overall and by_spread) and pooled. Say whether every block is complete with 0 failures and the same two hashes; flag any block whose check values, hashes or off_target_zero differ. Do not include per_seed arrays. Under 48,000 bytes."
   }
  },
  {
   "name": "r7-ma-fresh",
   "brief": "Measure-only item: {{idea}}. Simulator github.com/danrobinson/prediction-market-challenge at b244530ee2a6247b5f930830eeca9dd950da0e7e, unmodified, default config, 2000 steps, one process, never --workers or --sandbox; call sample_config, SimulationEngine and load_strategy_factory yourself per seed in chunks of 50 so no tool call passes 10 minutes; rerun lost seeds. Build C and K from the texts below and verify every SHA-256 first (on a mismatch report it and stop); run both on every seed {{start}}..{{end}} inclusive, the same seed each; d = C total_edge - K total_edge (unrounded); s = max(1, (ask - bid + 1)//2) from the first competitor quotes. Result JSON under 64,000 bytes: key, idea, candidate_sha256, comparator_sha256, seeds {start, end}, n, complete, missing_seeds, failures, check_values (K on seeds 310000..310003; {{check}}), python_version, seconds_per_simulation {candidate, comparator} overall and by spread (wall time of engine.run), overall and by_spread (1..4) each {n, sum_d, sum_d2, mean_diff, se, comparator_mean, retail_diff, arb_diff}, per_seed [seed, s, d] to 6 decimals for every seed, worst_seeds (10 lowest d: seed, s, d, both edges), off_target_zero (true iff d == 0 on every seed of spreads {{zero}}), notes under 600 characters. se = sd(d)/sqrt(n). A partial run is incomplete, never the measurement. No tuning, no code changes. Sources are the `code` field of the JSON at https://api.imdnotdead.fun/artifacts/<art>; hashes are SHA-256 of UTF-8 text; NL = two newlines; X[a -> b] = X with text a replaced by b. MA: art 149883fee797ad95a91e535b7a74453587a3eb19ca87ab95f7d8585db160a8f4, sha 5d1bd5272884f513b19f0e66a7c235f6c188a08e4f7787ac9346f1614dda3ed3. MB: art 6b40ef6fdf9512700501e6b92fb5c920955a97b29111faada6d411074173b7cd, sha 4f9167dddd457f394e988bf9c9e2576dd6120834bfb8d93573ce9451fd587598. W = RC (art 2d4b30bbc6bffbc500b37ce5e8a1ac821d6513c52a6a2377b4be3c11d97717fb) from its line `_IncumbentStrategy = Strategy` to the end. B_RC = MB + NL + W, sha 02696ea6fd0922f64167a1153748f6a38bf2fd5d87c7a4ac6cb974bb9482f57c. C = MA. K = B_RC.",
   "items": [
    {
     "key": "ma-fresh-1",
     "vars": {
      "idea": "MA against B_RC on fresh seeds, per spread: which base wins each spread; its spread-1 difference is P's",
      "start": "920000",
      "end": "920499",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "none (both files act on every spread; report false)"
     }
    },
    {
     "key": "ma-fresh-2",
     "vars": {
      "idea": "MA against B_RC on fresh seeds, per spread: which base wins each spread; its spread-1 difference is P's",
      "start": "920500",
      "end": "920999",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "none (both files act on every spread; report false)"
     }
    },
    {
     "key": "ma-fresh-3",
     "vars": {
      "idea": "MA against B_RC on fresh seeds, per spread: which base wins each spread; its spread-1 difference is P's",
      "start": "921000",
      "end": "921499",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "none (both files act on every spread; report false)"
     }
    },
    {
     "key": "ma-fresh-4",
     "vars": {
      "idea": "MA against B_RC on fresh seeds, per spread: which base wins each spread; its spread-1 difference is P's",
      "start": "921500",
      "end": "921999",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "none (both files act on every spread; report false)"
     }
    },
    {
     "key": "ma-fresh-5",
     "vars": {
      "idea": "MA against B_RC on fresh seeds, per spread: which base wins each spread; its spread-1 difference is P's",
      "start": "922000",
      "end": "922499",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "none (both files act on every spread; report false)"
     }
    },
    {
     "key": "ma-fresh-6",
     "vars": {
      "idea": "MA against B_RC on fresh seeds, per spread: which base wins each spread; its spread-1 difference is P's",
      "start": "922500",
      "end": "922999",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "none (both files act on every spread; report false)"
     }
    },
    {
     "key": "ma-fresh-7",
     "vars": {
      "idea": "MA against B_RC on fresh seeds, per spread: which base wins each spread; its spread-1 difference is P's",
      "start": "923000",
      "end": "923499",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "none (both files act on every spread; report false)"
     }
    },
    {
     "key": "ma-fresh-8",
     "vars": {
      "idea": "MA against B_RC on fresh seeds, per spread: which base wins each spread; its spread-1 difference is P's",
      "start": "923500",
      "end": "923999",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "none (both files act on every spread; report false)"
     }
    },
    {
     "key": "ma-fresh-9",
     "vars": {
      "idea": "MA against B_RC on fresh seeds, per spread: which base wins each spread; its spread-1 difference is P's",
      "start": "924000",
      "end": "924499",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "none (both files act on every spread; report false)"
     }
    },
    {
     "key": "ma-fresh-10",
     "vars": {
      "idea": "MA against B_RC on fresh seeds, per spread: which base wins each spread; its spread-1 difference is P's",
      "start": "924500",
      "end": "924999",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "none (both files act on every spread; report false)"
     }
    },
    {
     "key": "ma-fresh-11",
     "vars": {
      "idea": "MA against B_RC on fresh seeds, per spread: which base wins each spread; its spread-1 difference is P's",
      "start": "925000",
      "end": "925499",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "none (both files act on every spread; report false)"
     }
    },
    {
     "key": "ma-fresh-12",
     "vars": {
      "idea": "MA against B_RC on fresh seeds, per spread: which base wins each spread; its spread-1 difference is P's",
      "start": "925500",
      "end": "925999",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "none (both files act on every spread; report false)"
     }
    },
    {
     "key": "ma-fresh-13",
     "vars": {
      "idea": "MA against B_RC on fresh seeds, per spread: which base wins each spread; its spread-1 difference is P's",
      "start": "926000",
      "end": "926499",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "none (both files act on every spread; report false)"
     }
    },
    {
     "key": "ma-fresh-14",
     "vars": {
      "idea": "MA against B_RC on fresh seeds, per spread: which base wins each spread; its spread-1 difference is P's",
      "start": "926500",
      "end": "926999",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "none (both files act on every spread; report false)"
     }
    },
    {
     "key": "ma-fresh-15",
     "vars": {
      "idea": "MA against B_RC on fresh seeds, per spread: which base wins each spread; its spread-1 difference is P's",
      "start": "927000",
      "end": "927499",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "none (both files act on every spread; report false)"
     }
    },
    {
     "key": "ma-fresh-16",
     "vars": {
      "idea": "MA against B_RC on fresh seeds, per spread: which base wins each spread; its spread-1 difference is P's",
      "start": "927500",
      "end": "927999",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "none (both files act on every spread; report false)"
     }
    }
   ],
   "output": {
    "format": "json",
    "maxBytes": 64000
   },
   "merge": {
    "groupSize": 4,
    "brief": "Merge this group's blocks of one candidate against one comparator: a table of every block (key, seeds, n, complete, failures, check values matched, candidate and comparator seconds per simulation, mean_diff, se, retail_diff, arb_diff, off_target_zero), then pooled statistics from the blocks' n, sum_d, sum_d2 overall and for each spread 1..4: mean = S/n, se = sqrt((Q - S*S/n)/(n-1)/n), retail and arb differences weighted by n; the 10 worst seeds of the group; and a JSON block with rows (each block's overall and by_spread) and pooled. Say whether every block is complete with 0 failures and the same two hashes; flag any block whose check values, hashes or off_target_zero differ. Do not include per_seed arrays. Under 48,000 bytes."
   }
  },
  {
   "name": "r7-s4-f",
   "brief": "Measure-only item: {{idea}}. Simulator github.com/danrobinson/prediction-market-challenge at b244530ee2a6247b5f930830eeca9dd950da0e7e, unmodified, default config, 2000 steps, one process, never --workers or --sandbox; call sample_config, SimulationEngine and load_strategy_factory yourself per seed in chunks of 50 so no tool call passes 10 minutes; rerun lost seeds. Build C and K from the texts below and verify every SHA-256 first (on a mismatch report it and stop); run both on every seed {{start}}..{{end}} inclusive, the same seed each; d = C total_edge - K total_edge (unrounded); s = max(1, (ask - bid + 1)//2) from the first competitor quotes. Result JSON under 64,000 bytes: key, idea, candidate_sha256, comparator_sha256, seeds {start, end}, n, complete, missing_seeds, failures, check_values (K on seeds 310000..310003; {{check}}), python_version, seconds_per_simulation {candidate, comparator} overall and by spread (wall time of engine.run), overall and by_spread (1..4) each {n, sum_d, sum_d2, mean_diff, se, comparator_mean, retail_diff, arb_diff}, per_seed [seed, s, d] to 6 decimals for every seed, worst_seeds (10 lowest d: seed, s, d, both edges), off_target_zero (true iff d == 0 on every seed of spreads {{zero}}), notes under 600 characters. se = sd(d)/sqrt(n). A partial run is incomplete, never the measurement. No tuning, no code changes. Sources are the `code` field of the JSON at https://api.imdnotdead.fun/artifacts/<art>; hashes are SHA-256 of UTF-8 text; NL = two newlines; X[a -> b] = X with text a replaced by b. MB: art 6b40ef6fdf9512700501e6b92fb5c920955a97b29111faada6d411074173b7cd, sha 4f9167dddd457f394e988bf9c9e2576dd6120834bfb8d93573ce9451fd587598. W = RC (art 2d4b30bbc6bffbc500b37ce5e8a1ac821d6513c52a6a2377b4be3c11d97717fb) from its line `_IncumbentStrategy = Strategy` to the end. B_RC = MB + NL + W, sha 02696ea6fd0922f64167a1153748f6a38bf2fd5d87c7a4ac6cb974bb9482f57c. W4 = W with every `_IncumbentStrategy` -> `_IncumbentStrategy4`, `_retreat_previous` -> `_retreat4_previous`, `_retreat_left` -> `_retreat4_left`, and `if self.s not in (2, 3):` -> `if self.s != 4:`. B_RC4 = B_RC + NL + W4, sha 27cef4140f19ecf15aeaa82c8a4bc70f9f066083a5bed10bcb963d8ecbb9b8aa. C = B_RC4. K = B_RC.",
   "items": [
    {
     "key": "s4-f-1",
     "vars": {
      "idea": "finalist measurement of B_RC4 (B_RC plus the one-tick retreat cancel on spread 4) against B_RC; only spread 4 may differ",
      "start": "900000",
      "end": "900499",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "1, 2 and 3"
     }
    },
    {
     "key": "s4-f-2",
     "vars": {
      "idea": "finalist measurement of B_RC4 (B_RC plus the one-tick retreat cancel on spread 4) against B_RC; only spread 4 may differ",
      "start": "900500",
      "end": "900999",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "1, 2 and 3"
     }
    },
    {
     "key": "s4-f-3",
     "vars": {
      "idea": "finalist measurement of B_RC4 (B_RC plus the one-tick retreat cancel on spread 4) against B_RC; only spread 4 may differ",
      "start": "901000",
      "end": "901499",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "1, 2 and 3"
     }
    },
    {
     "key": "s4-f-4",
     "vars": {
      "idea": "finalist measurement of B_RC4 (B_RC plus the one-tick retreat cancel on spread 4) against B_RC; only spread 4 may differ",
      "start": "901500",
      "end": "901999",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "1, 2 and 3"
     }
    },
    {
     "key": "s4-f-5",
     "vars": {
      "idea": "finalist measurement of B_RC4 (B_RC plus the one-tick retreat cancel on spread 4) against B_RC; only spread 4 may differ",
      "start": "902000",
      "end": "902499",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "1, 2 and 3"
     }
    },
    {
     "key": "s4-f-6",
     "vars": {
      "idea": "finalist measurement of B_RC4 (B_RC plus the one-tick retreat cancel on spread 4) against B_RC; only spread 4 may differ",
      "start": "902500",
      "end": "902999",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "1, 2 and 3"
     }
    },
    {
     "key": "s4-f-7",
     "vars": {
      "idea": "finalist measurement of B_RC4 (B_RC plus the one-tick retreat cancel on spread 4) against B_RC; only spread 4 may differ",
      "start": "903000",
      "end": "903499",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "1, 2 and 3"
     }
    },
    {
     "key": "s4-f-8",
     "vars": {
      "idea": "finalist measurement of B_RC4 (B_RC plus the one-tick retreat cancel on spread 4) against B_RC; only spread 4 may differ",
      "start": "903500",
      "end": "903999",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "1, 2 and 3"
     }
    }
   ],
   "output": {
    "format": "json",
    "maxBytes": 64000
   },
   "merge": {
    "groupSize": 4,
    "brief": "Merge this group's blocks of one candidate against one comparator: a table of every block (key, seeds, n, complete, failures, check values matched, candidate and comparator seconds per simulation, mean_diff, se, retail_diff, arb_diff, off_target_zero), then pooled statistics from the blocks' n, sum_d, sum_d2 overall and for each spread 1..4: mean = S/n, se = sqrt((Q - S*S/n)/(n-1)/n), retail and arb differences weighted by n; the 10 worst seeds of the group; and a JSON block with rows (each block's overall and by_spread) and pooled. Say whether every block is complete with 0 failures and the same two hashes; flag any block whose check values, hashes or off_target_zero differ. Do not include per_seed arrays. Under 48,000 bytes."
   }
  },
  {
   "name": "r7-s4-fresh",
   "brief": "Measure-only item: {{idea}}. Simulator github.com/danrobinson/prediction-market-challenge at b244530ee2a6247b5f930830eeca9dd950da0e7e, unmodified, default config, 2000 steps, one process, never --workers or --sandbox; call sample_config, SimulationEngine and load_strategy_factory yourself per seed in chunks of 50 so no tool call passes 10 minutes; rerun lost seeds. Build C and K from the texts below and verify every SHA-256 first (on a mismatch report it and stop); run both on every seed {{start}}..{{end}} inclusive, the same seed each; d = C total_edge - K total_edge (unrounded); s = max(1, (ask - bid + 1)//2) from the first competitor quotes. Result JSON under 64,000 bytes: key, idea, candidate_sha256, comparator_sha256, seeds {start, end}, n, complete, missing_seeds, failures, check_values (K on seeds 310000..310003; {{check}}), python_version, seconds_per_simulation {candidate, comparator} overall and by spread (wall time of engine.run), overall and by_spread (1..4) each {n, sum_d, sum_d2, mean_diff, se, comparator_mean, retail_diff, arb_diff}, per_seed [seed, s, d] to 6 decimals for every seed, worst_seeds (10 lowest d: seed, s, d, both edges), off_target_zero (true iff d == 0 on every seed of spreads {{zero}}), notes under 600 characters. se = sd(d)/sqrt(n). A partial run is incomplete, never the measurement. No tuning, no code changes. Sources are the `code` field of the JSON at https://api.imdnotdead.fun/artifacts/<art>; hashes are SHA-256 of UTF-8 text; NL = two newlines; X[a -> b] = X with text a replaced by b. MB: art 6b40ef6fdf9512700501e6b92fb5c920955a97b29111faada6d411074173b7cd, sha 4f9167dddd457f394e988bf9c9e2576dd6120834bfb8d93573ce9451fd587598. W = RC (art 2d4b30bbc6bffbc500b37ce5e8a1ac821d6513c52a6a2377b4be3c11d97717fb) from its line `_IncumbentStrategy = Strategy` to the end. B_RC = MB + NL + W, sha 02696ea6fd0922f64167a1153748f6a38bf2fd5d87c7a4ac6cb974bb9482f57c. W4 = W with every `_IncumbentStrategy` -> `_IncumbentStrategy4`, `_retreat_previous` -> `_retreat4_previous`, `_retreat_left` -> `_retreat4_left`, and `if self.s not in (2, 3):` -> `if self.s != 4:`. B_RC4 = B_RC + NL + W4, sha 27cef4140f19ecf15aeaa82c8a4bc70f9f066083a5bed10bcb963d8ecbb9b8aa. C = B_RC4. K = B_RC.",
   "items": [
    {
     "key": "s4-fresh-1",
     "vars": {
      "idea": "replication of B_RC4 against B_RC on fresh seeds; only spread 4 may differ",
      "start": "930000",
      "end": "930499",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "1, 2 and 3"
     }
    },
    {
     "key": "s4-fresh-2",
     "vars": {
      "idea": "replication of B_RC4 against B_RC on fresh seeds; only spread 4 may differ",
      "start": "930500",
      "end": "930999",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "1, 2 and 3"
     }
    },
    {
     "key": "s4-fresh-3",
     "vars": {
      "idea": "replication of B_RC4 against B_RC on fresh seeds; only spread 4 may differ",
      "start": "931000",
      "end": "931499",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "1, 2 and 3"
     }
    },
    {
     "key": "s4-fresh-4",
     "vars": {
      "idea": "replication of B_RC4 against B_RC on fresh seeds; only spread 4 may differ",
      "start": "931500",
      "end": "931999",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "1, 2 and 3"
     }
    },
    {
     "key": "s4-fresh-5",
     "vars": {
      "idea": "replication of B_RC4 against B_RC on fresh seeds; only spread 4 may differ",
      "start": "932000",
      "end": "932499",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "1, 2 and 3"
     }
    },
    {
     "key": "s4-fresh-6",
     "vars": {
      "idea": "replication of B_RC4 against B_RC on fresh seeds; only spread 4 may differ",
      "start": "932500",
      "end": "932999",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "1, 2 and 3"
     }
    },
    {
     "key": "s4-fresh-7",
     "vars": {
      "idea": "replication of B_RC4 against B_RC on fresh seeds; only spread 4 may differ",
      "start": "933000",
      "end": "933499",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "1, 2 and 3"
     }
    },
    {
     "key": "s4-fresh-8",
     "vars": {
      "idea": "replication of B_RC4 against B_RC on fresh seeds; only spread 4 may differ",
      "start": "933500",
      "end": "933999",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133",
      "zero": "1, 2 and 3"
     }
    }
   ],
   "output": {
    "format": "json",
    "maxBytes": 64000
   },
   "merge": {
    "groupSize": 4,
    "brief": "Merge this group's blocks of one candidate against one comparator: a table of every block (key, seeds, n, complete, failures, check values matched, candidate and comparator seconds per simulation, mean_diff, se, retail_diff, arb_diff, off_target_zero), then pooled statistics from the blocks' n, sum_d, sum_d2 overall and for each spread 1..4: mean = S/n, se = sqrt((Q - S*S/n)/(n-1)/n), retail and arb differences weighted by n; the 10 worst seeds of the group; and a JSON block with rows (each block's overall and by_spread) and pooled. Say whether every block is complete with 0 failures and the same two hashes; flag any block whose check values, hashes or off_target_zero differ. Do not include per_seed arrays. Under 48,000 bytes."
   }
  },
  {
   "name": "r7-dev",
   "brief": "Development item, one idea, spread {{spread}} only: {{idea}}. Simulator github.com/danrobinson/prediction-market-challenge at b244530ee2a6247b5f930830eeca9dd950da0e7e, unmodified, default config, 2000 steps, one process, never --workers or --sandbox; call sample_config, SimulationEngine and load_strategy_factory yourself per seed in chunks of 50 so no tool call passes 10 minutes; rerun lost seeds. Base {{base_name}}: {{base_def}}Verify its SHA-256 first. The candidate is a complete file: the base's text, two newlines, and a wrapper starting with the line `_IncumbentStrategy = Strategy` that defines `class Strategy(_IncumbentStrategy)` whose on_step calls super().on_step and then drops, adds or resizes actions (edit the base's body only where a wrapper cannot express the idea, and say so). Guard it with `self.s` so that on every other spread the candidate equals the base exactly (d == 0). Tune at most 3 settings on seeds 350000..350149 against the base, pick the best by paired mean, freeze, then measure the frozen file on holdout seeds 460200..460699, base and candidate on the same seeds, s = max(1, (ask - bid + 1)//2) from the first competitor quotes. Time both files (wall seconds per engine.run); an idea over 15% slower than the base on its spread is too slow. Result JSON under 64,000 bytes: key, idea, spread, base_sha256, approach (under 600 characters), tried (each setting with its tuning paired mean and se), next (one sentence), code (the whole candidate file, gzip then base64), code_sha256 (raw UTF-8), tuning {n, mean_diff, se}, holdout {n, complete, missing_seeds, failures, comparator_mean, mean_diff, se, sum_d, sum_d2, retail_diff, arb_diff}, by_spread (the same for 1..4), off_target_zero, worst_seeds (5 lowest holdout d: seed, s, d), seconds_per_simulation {candidate, base} on the target spread, check_values (the base's total_edge on seeds 310000..310003; {{check}}), python_version, notes under 600 characters. Never run seeds 900000..903999 or 700000..709999. An unfinished holdout is reported as incomplete.",
   "items": [
    {
     "key": "d7-s1-bid-cancel-on-ask-down",
     "vars": {
      "spread": "1",
      "idea": "after the rival's best ask steps down by one tick, cancel every own bid and suppress bid placements for one callback (tune 1 to 3 callbacks)",
      "base_name": "MA",
      "base_def": "MA: art 149883fee797ad95a91e535b7a74453587a3eb19ca87ab95f7d8585db160a8f4, sha 5d1bd5272884f513b19f0e66a7c235f6c188a08e4f7787ac9346f1614dda3ed3. ",
      "check": "MA's are 17.116002, 23.820392, 2.376144, 243.87214"
     }
    },
    {
     "key": "d7-s1-ask-cancel-on-bid-up",
     "vars": {
      "spread": "1",
      "idea": "after the rival's best bid steps up by one tick, cancel every own ask and suppress ask placements for one callback (tune 1 to 3 callbacks)",
      "base_name": "MA",
      "base_def": "MA: art 149883fee797ad95a91e535b7a74453587a3eb19ca87ab95f7d8585db160a8f4, sha 5d1bd5272884f513b19f0e66a7c235f6c188a08e4f7787ac9346f1614dda3ed3. ",
      "check": "MA's are 17.116002, 23.820392, 2.376144, 243.87214"
     }
    },
    {
     "key": "d7-s1-both-shift-pause",
     "vars": {
      "spread": "1",
      "idea": "after both rival quotes move the same direction in one step, cancel the threatened side (asks on an upward shift, bids on a downward one) for one callback (tune 1 to 3)",
      "base_name": "MA",
      "base_def": "MA: art 149883fee797ad95a91e535b7a74453587a3eb19ca87ab95f7d8585db160a8f4, sha 5d1bd5272884f513b19f0e66a7c235f6c188a08e4f7787ac9346f1614dda3ed3. ",
      "check": "MA's are 17.116002, 23.820392, 2.376144, 243.87214"
     }
    },
    {
     "key": "d7-s2-bid-cancel-on-ask-down",
     "vars": {
      "spread": "2",
      "idea": "after the rival's best ask steps down by one tick, cancel every own bid and suppress bid placements for one callback, on top of B_RC's retreat cancel (tune 1 to 3 callbacks)",
      "base_name": "B_RC",
      "base_def": "MB: art 6b40ef6fdf9512700501e6b92fb5c920955a97b29111faada6d411074173b7cd, sha 4f9167dddd457f394e988bf9c9e2576dd6120834bfb8d93573ce9451fd587598. W = RC (art 2d4b30bbc6bffbc500b37ce5e8a1ac821d6513c52a6a2377b4be3c11d97717fb) from its line `_IncumbentStrategy = Strategy` to the end. B_RC = MB + NL + W, sha 02696ea6fd0922f64167a1153748f6a38bf2fd5d87c7a4ac6cb974bb9482f57c. ",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133"
     }
    },
    {
     "key": "d7-s2-both-shift-pause",
     "vars": {
      "spread": "2",
      "idea": "after both rival quotes move the same direction in one step, cancel the threatened side (asks on an upward shift, bids on a downward one) for one callback (tune 1 to 3)",
      "base_name": "B_RC",
      "base_def": "MB: art 6b40ef6fdf9512700501e6b92fb5c920955a97b29111faada6d411074173b7cd, sha 4f9167dddd457f394e988bf9c9e2576dd6120834bfb8d93573ce9451fd587598. W = RC (art 2d4b30bbc6bffbc500b37ce5e8a1ac821d6513c52a6a2377b4be3c11d97717fb) from its line `_IncumbentStrategy = Strategy` to the end. B_RC = MB + NL + W, sha 02696ea6fd0922f64167a1153748f6a38bf2fd5d87c7a4ac6cb974bb9482f57c. ",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133"
     }
    },
    {
     "key": "d7-s3-bid-cancel-on-ask-down",
     "vars": {
      "spread": "3",
      "idea": "after the rival's best ask steps down by one tick, cancel every own bid and suppress bid placements for one callback, on top of B_RC's retreat cancel (tune 1 to 3 callbacks)",
      "base_name": "B_RC",
      "base_def": "MB: art 6b40ef6fdf9512700501e6b92fb5c920955a97b29111faada6d411074173b7cd, sha 4f9167dddd457f394e988bf9c9e2576dd6120834bfb8d93573ce9451fd587598. W = RC (art 2d4b30bbc6bffbc500b37ce5e8a1ac821d6513c52a6a2377b4be3c11d97717fb) from its line `_IncumbentStrategy = Strategy` to the end. B_RC = MB + NL + W, sha 02696ea6fd0922f64167a1153748f6a38bf2fd5d87c7a4ac6cb974bb9482f57c. ",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133"
     }
    },
    {
     "key": "d7-s3-both-shift-pause",
     "vars": {
      "spread": "3",
      "idea": "after both rival quotes move the same direction in one step, cancel the threatened side (asks on an upward shift, bids on a downward one) for one callback (tune 1 to 3)",
      "base_name": "B_RC",
      "base_def": "MB: art 6b40ef6fdf9512700501e6b92fb5c920955a97b29111faada6d411074173b7cd, sha 4f9167dddd457f394e988bf9c9e2576dd6120834bfb8d93573ce9451fd587598. W = RC (art 2d4b30bbc6bffbc500b37ce5e8a1ac821d6513c52a6a2377b4be3c11d97717fb) from its line `_IncumbentStrategy = Strategy` to the end. B_RC = MB + NL + W, sha 02696ea6fd0922f64167a1153748f6a38bf2fd5d87c7a4ac6cb974bb9482f57c. ",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133"
     }
    },
    {
     "key": "d7-s3-mid-size-up",
     "vars": {
      "spread": "3",
      "idea": "scale the size of every own order placed at 20c to 80c by a factor above 1 on spread 3 (tune 1.1, 1.25, 1.5), keeping collateral valid; a port of d-s3-mid-size-up, +0.32 (se 0.14) on spread 3 over an older base",
      "base_name": "B_RC",
      "base_def": "MB: art 6b40ef6fdf9512700501e6b92fb5c920955a97b29111faada6d411074173b7cd, sha 4f9167dddd457f394e988bf9c9e2576dd6120834bfb8d93573ce9451fd587598. W = RC (art 2d4b30bbc6bffbc500b37ce5e8a1ac821d6513c52a6a2377b4be3c11d97717fb) from its line `_IncumbentStrategy = Strategy` to the end. B_RC = MB + NL + W, sha 02696ea6fd0922f64167a1153748f6a38bf2fd5d87c7a4ac6cb974bb9482f57c. ",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133"
     }
    },
    {
     "key": "d7-s4-bid-cancel-on-ask-down",
     "vars": {
      "spread": "4",
      "idea": "after the rival's best ask steps down by one tick, cancel every own bid and suppress bid placements for one callback (tune 1 to 3 callbacks)",
      "base_name": "B_RC",
      "base_def": "MB: art 6b40ef6fdf9512700501e6b92fb5c920955a97b29111faada6d411074173b7cd, sha 4f9167dddd457f394e988bf9c9e2576dd6120834bfb8d93573ce9451fd587598. W = RC (art 2d4b30bbc6bffbc500b37ce5e8a1ac821d6513c52a6a2377b4be3c11d97717fb) from its line `_IncumbentStrategy = Strategy` to the end. B_RC = MB + NL + W, sha 02696ea6fd0922f64167a1153748f6a38bf2fd5d87c7a4ac6cb974bb9482f57c. ",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133"
     }
    },
    {
     "key": "d7-s4-both-shift-pause",
     "vars": {
      "spread": "4",
      "idea": "after both rival quotes move the same direction in one step, cancel the threatened side (asks on an upward shift, bids on a downward one) for one callback (tune 1 to 3)",
      "base_name": "B_RC",
      "base_def": "MB: art 6b40ef6fdf9512700501e6b92fb5c920955a97b29111faada6d411074173b7cd, sha 4f9167dddd457f394e988bf9c9e2576dd6120834bfb8d93573ce9451fd587598. W = RC (art 2d4b30bbc6bffbc500b37ce5e8a1ac821d6513c52a6a2377b4be3c11d97717fb) from its line `_IncumbentStrategy = Strategy` to the end. B_RC = MB + NL + W, sha 02696ea6fd0922f64167a1153748f6a38bf2fd5d87c7a4ac6cb974bb9482f57c. ",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133"
     }
    },
    {
     "key": "d7-s4-retreat-cancel-bid-only",
     "vars": {
      "spread": "4",
      "idea": "when the rival's best bid retreats by exactly one tick, cancel every own bid and suppress bid placements for one callback; asks untouched (tune 1 to 2 callbacks)",
      "base_name": "B_RC",
      "base_def": "MB: art 6b40ef6fdf9512700501e6b92fb5c920955a97b29111faada6d411074173b7cd, sha 4f9167dddd457f394e988bf9c9e2576dd6120834bfb8d93573ce9451fd587598. W = RC (art 2d4b30bbc6bffbc500b37ce5e8a1ac821d6513c52a6a2377b4be3c11d97717fb) from its line `_IncumbentStrategy = Strategy` to the end. B_RC = MB + NL + W, sha 02696ea6fd0922f64167a1153748f6a38bf2fd5d87c7a4ac6cb974bb9482f57c. ",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133"
     }
    },
    {
     "key": "d7-s4-retreat-cancel-cooldown2",
     "vars": {
      "spread": "4",
      "idea": "when a rival quote retreats by exactly one tick, cancel that side and suppress its placements for two callbacks (tune 2 or 3), as B_RC does for one callback on spreads 2 and 3",
      "base_name": "B_RC",
      "base_def": "MB: art 6b40ef6fdf9512700501e6b92fb5c920955a97b29111faada6d411074173b7cd, sha 4f9167dddd457f394e988bf9c9e2576dd6120834bfb8d93573ce9451fd587598. W = RC (art 2d4b30bbc6bffbc500b37ce5e8a1ac821d6513c52a6a2377b4be3c11d97717fb) from its line `_IncumbentStrategy = Strategy` to the end. B_RC = MB + NL + W, sha 02696ea6fd0922f64167a1153748f6a38bf2fd5d87c7a4ac6cb974bb9482f57c. ",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133"
     }
    },
    {
     "key": "d7-s4-ask-risk-premium-up",
     "vars": {
      "spread": "4",
      "idea": "raise the spread-4 ask-risk premium the base already applies in its spread-4 ask sizing (removing it cost -0.68, se 0.28, on an older base) by a tuned factor (1.25, 1.5, 2)",
      "base_name": "B_RC",
      "base_def": "MB: art 6b40ef6fdf9512700501e6b92fb5c920955a97b29111faada6d411074173b7cd, sha 4f9167dddd457f394e988bf9c9e2576dd6120834bfb8d93573ce9451fd587598. W = RC (art 2d4b30bbc6bffbc500b37ce5e8a1ac821d6513c52a6a2377b4be3c11d97717fb) from its line `_IncumbentStrategy = Strategy` to the end. B_RC = MB + NL + W, sha 02696ea6fd0922f64167a1153748f6a38bf2fd5d87c7a4ac6cb974bb9482f57c. ",
      "check": "B_RC's are 17.512655, 24.258579, 2.390311, 249.541133"
     }
    }
   ],
   "output": {
    "format": "json",
    "maxBytes": 64000
   },
   "merge": {
    "groupSize": 4,
    "brief": "Merge this group's development items: one ranked table (key, idea, spread, code_sha256, base_sha256, tuning mean and se, holdout n, target-spread mean_diff and se and their ratio, overall mean_diff and se, retail_diff, arb_diff, off_target_zero, candidate and base seconds per simulation, check values matched, flag), ranked by target-spread mean_diff/se; flag rows that are incomplete, have failures, off_target_zero false, a holdout comparator_mean unequal to the other rows' on the same base, or a candidate over 15% slower than its base. Then `top`: the full code (gzip+base64) and code_sha256 of the two best unflagged rows, copied from their results. Then two short paragraphs: what the group's results agree on, and which ideas are worth a finalist run. Under 60,000 bytes."
   }
  },
  {
   "name": "r7-remove",
   "brief": "Removal item, one deletion, no tuning: {{idea}}. Simulator github.com/danrobinson/prediction-market-challenge at b244530ee2a6247b5f930830eeca9dd950da0e7e, unmodified, default config, 2000 steps, one process, never --workers or --sandbox; call sample_config, SimulationEngine and load_strategy_factory yourself per seed in chunks of 50 so no tool call passes 10 minutes; rerun lost seeds. Base B_RC: MB: art 6b40ef6fdf9512700501e6b92fb5c920955a97b29111faada6d411074173b7cd, sha 4f9167dddd457f394e988bf9c9e2576dd6120834bfb8d93573ce9451fd587598. W = RC (art 2d4b30bbc6bffbc500b37ce5e8a1ac821d6513c52a6a2377b4be3c11d97717fb) from its line `_IncumbentStrategy = Strategy` to the end. B_RC = MB + NL + W, sha 02696ea6fd0922f64167a1153748f6a38bf2fd5d87c7a4ac6cb974bb9482f57c. Verify its SHA-256 first. Make the one deletion inside W's wrapper class (the last class of the file) and nothing else, so the candidate equals B_RC exactly on every spread the deletion does not touch. Measure the candidate against B_RC on seeds 460200..460699, both on the same seeds, s = max(1, (ask - bid + 1)//2) from the first competitor quotes. Result JSON under 64,000 bytes: key, idea, what_was_removed (the exact lines, under 600 characters), base_sha256, code (the whole candidate file, gzip then base64), code_sha256 (raw UTF-8), holdout {n, complete, missing_seeds, failures, comparator_mean, mean_diff, se, sum_d, sum_d2, retail_diff, arb_diff}, by_spread (the same for 1..4), off_target_zero, worst_seeds (5 lowest d: seed, s, d), seconds_per_simulation {candidate, comparator}, check_values (B_RC's total_edge on seeds 310000..310003; B_RC's are 17.512655, 24.258579, 2.390311, 249.541133), python_version, notes under 600 characters. A negative mean_diff means the removed part carries gain. Never run seeds 900000..903999 or 700000..709999.",
   "items": [
    {
     "key": "x7-s2-no-bid-trigger",
     "vars": {
      "idea": "drop the bid-side trigger (rival bid retreat) on spread 2 only; keep it on spread 3 and keep the ask trigger"
     }
    },
    {
     "key": "x7-s2-no-ask-trigger",
     "vars": {
      "idea": "drop the ask-side trigger (rival ask retreat) on spread 2 only; keep it on spread 3 and keep the bid trigger"
     }
    },
    {
     "key": "x7-s3-no-bid-trigger",
     "vars": {
      "idea": "drop the bid-side trigger (rival bid retreat) on spread 3 only; keep it on spread 2 and keep the ask trigger"
     }
    },
    {
     "key": "x7-s3-no-ask-trigger",
     "vars": {
      "idea": "drop the ask-side trigger (rival ask retreat) on spread 3 only; keep it on spread 2 and keep the bid trigger"
     }
    },
    {
     "key": "x7-s23-no-suppression",
     "vars": {
      "idea": "keep the cancels of resting orders on the retreated side but stop suppressing new placements on it (spreads 2 and 3)"
     }
    },
    {
     "key": "x7-s23-no-probe-clear",
     "vars": {
      "idea": "keep cancels and suppression but drop the clearing of pb, pa and last_quote_exposed (spreads 2 and 3)"
     }
    }
   ],
   "output": {
    "format": "json",
    "maxBytes": 64000
   },
   "merge": {
    "groupSize": 3,
    "brief": "Merge this group's removal items: a table (key, what was removed, code_sha256, holdout n, complete, failures, mean_diff, se, ratio, spread-2 and spread-3 mean_diff and se, retail_diff, arb_diff, off_target_zero, comparator_mean, flag), ranked by mean_diff/se; flag rows that are incomplete, have failures, off_target_zero false, or a comparator_mean unequal to the other rows'. Then one paragraph: which parts of the retreat cancel carry its gain (negative mean_diff) and which are free to drop. Under 40,000 bytes."
   }
  }
 ],
 "read": [
  "r7-compose/compose-p",
  "r7-compose/compose-p4",
  "r7-p-f/merge-01",
  "r7-p-f/merge-02",
  "r7-ma-fresh/merge-01",
  "r7-ma-fresh/merge-02",
  "r7-ma-fresh/merge-03",
  "r7-ma-fresh/merge-04",
  "r7-s4-f/merge-01",
  "r7-s4-f/merge-02",
  "r7-s4-fresh/merge-01",
  "r7-s4-fresh/merge-02",
  "r7-dev/merge-01",
  "r7-dev/merge-02",
  "r7-dev/merge-03",
  "r7-dev/merge-04",
  "r7-remove/merge-01",
  "r7-remove/merge-02",
  "r6-port/merge-01",
  "r6-port/merge-02",
  "r6-fresh/merge-01",
  "r6-fresh/merge-02",
  "r6-base-f/merge-02"
 ],
 "cancel": [],
 "wake": {
  "batches": [
   "r7-compose",
   "r7-p-f",
   "r7-ma-fresh",
   "r7-s4-f",
   "r7-s4-fresh",
   "r7-dev",
   "r7-remove"
  ],
  "afterMinutes": 180
 },
 "finish": false
}