{
 "notes": "EPISODE 8: base moved to MA on the requester's 00:30Z note; round 6 = 14 ports/deepen on MA, 7 blind overlays on MA, 8 blocks of MA vs N on F; r5-deepen and r5-fresh (RC-based, 33 held) cancelled. Spawned 29; used after this about 400 of 600. Episodes 9 and 10 remain; nothing spawned in 10 can be read: episode 9 spawns the last F finals and compose items, episode 10 promotes and finishes.\n\nSTANDINGS (requester, not live-checked): 1st Ponxter v23 110.69, us 2nd 110.21 (entry #1042 = m-plus-a or m-plus-b), 3rd 109.59. Gap 0.48.\nBASE MA (m-plus-a; adopted, not promoted): `code` of https://api.imdnotdead.fun/artifacts/149883fee797ad95a91e535b7a74453587a3eb19ca87ab95f7d8585db160a8f4 , SHA-256 5d1bd5272884f513b19f0e66a7c235f6c188a08e4f7787ac9346f1614dda3ed3, 37922 bytes. Its artifact: +2.43 se 0.22 over the 108.47 file (s1 +2.76, s2 +3.12, s3 +1.18, s4 +2.61). MB (m-plus-b, +2.21 se 0.17): https://api.imdnotdead.fun/artifacts/6b40ef6fdf9512700501e6b92fb5c920955a97b29111faada6d411074173b7cd . N (previous base) bf0d179f3e47d28819f6fa7e0d25548c2ced43374c216d36460b00a26a26ffae at https://api.imdnotdead.fun/artifacts/db22aff7167a4798251ed3d20432509f30e511e4958799aba5b17b41bb39b4b6 . MA CHECK VALUES (run here, unmodified simulator b244530e, seeds 310000..310003 total_edge): 17.116002, 23.820392, 2.376144, 243.87214. N's: 17.116002, 20.017111, 2.390311, 241.484752. MA has one `class Strategy(BaseStrategy):` and N's attributes.\nRC WRAPPER PORTS TO MA: RC's text from its line `_IncumbentStrategy = Strategy` to the end (1948 bytes, SHA-256 accbde6a21b3b86b3bb95db393a74b6c9f20fde939f031db29d7d00dda13ca19) appended to MA after two newlines gives MARC, SHA-256 0d627e80d1c3ecb98da2ccddf7406e301c76e59ab86c4ee068e508b6074f76ac (N + two newlines + wrapper reproduces RC exactly). Checked on 5 seeds: MARC differs from MA on spreads 2 and 3, equals it on 1 and 4. RC-on-MA/MB is measured by goal 75dd8e1e on 700000..709999: do not duplicate; expect the requester to post it. If positive, episode 9's s2/s3 finals run stacked on MARC; else vs MA.\n\nLOCAL PROMOTIONS: none. Base chain: combine-cash (start) -> N (adopted 11-06) -> MA (adopted 11-07). Streak of completed rounds without promotion: 0 (rounds 3 and 4 complete with the F decisions below; round 5 was cancelled when the base moved, not a failed round).\n\nF EVIDENCE vs N (900000..903999), RC 3c07bdcd221ac25729c3ebc92b21ac9e2014510ecb85816c4391ed81e933291f (https://api.imdnotdead.fun/artifacts/2d4b30bbc6bffbc500b37ce5e8a1ac821d6513c52a6a2377b4be3c11d97717fb): f1 +0.467 se 0.111, f3 +0.470 se 0.162, f4 +0.560 se 0.118; pooled n 1500: +0.499 se 0.076 (sum_d 748.66, sum_d2 13438.05), s2 n 383 +0.845 se 0.198, s3 n 344 +1.235 se 0.242, d = 0 on every s1/s4 seed, retail -0.24 arb +0.74, 0 failures, worst seed -25.4. f2, f5, f6, f7, f8 still running (asked for). Episode 9: pool all 8 (mean = S/n, se = sqrt((Q - S*S/n)/(n-1)/n)); record RC as round 4's promotion over N on s2/s3 if n 4000, 0 failures, s2, s3 and overall each > 2 se; as an entry it is superseded by MA, so its live value depends on 75dd8e1e. retreat-crossing b5158a96 (s3): 7 of 8 blocks n 3448 +0.097 se 0.048, s3 n 828 +0.406 se 0.201; cross-f1 and cross-f5 rerun the lost blocks; promote on s3 over N only if all 8 complete and s3 and overall > 2 se; RC dominates it on s3 either way.\n\nROUND 4 SCREEN vs N (H 430000..430499; r4-extend replicates on 430500..431999, merges 01 cancel, 02 s1-port, 03 s1-postjump, 04 s2-lowp, 05 s3-midsize, 06 s4-norisk): d-s1-retreat-crossing-port s1 +0.851 se 0.400; c-s1-queue-postjump s1 +0.496 se 0.262; c-s3-retreat-strength s3 +0.94 se 0.50; d-s2-lowp-early-bids s2 +0.117 se 0.054; d-s3-mid-size-up s3 +0.174 se 0.105; remove-s4-ask-risk-premium s4 +0.34 se 0.28. Use the merges to weigh r6-port's screens (same ideas on MA). Dead vs N: r3 extension rows (best s3-flow-transfer s3 +0.26 se 0.13), side-jump-budget, stock-entry-gate, all 56 blind overlays, every own-fill pull. Handed this episode, nothing new: sjb-b/c/d, reference-h-a-replica.\n\nROUND 6 BATCHES (on MA, paired vs MA, d = 0 required off target, per-seed arrays, worst seeds):\n- r6-port (14, merges of 7 in item order: 01 = the five s1 items, p6-s4-retreat-cancel, p6-s4-no-ask-risk-premium; 02 = c6-s4-cancel-norisk and the s2/s3 items; T 340000..340199, H 450000..450999): p6-s1-retreat-crossing, p6-s1-queue-postjump, p6-s1-queue-safety, p6-s1-retreat-cancel (RC's wrapper guarded to s1), c6-s1-crossing-postjump, p6-s4-retreat-cancel, p6-s4-no-ask-risk-premium, c6-s4-cancel-norisk, p6-s2-lowp-early-bids, d6-s2-retreat-posterior, p6-s3-retreat-crossing, p6-s3-retreat-strength, p6-s3-mid-size-up, p6-s3-flow-transfer. All vs MA alone (a stacked check did not fit the brief). STACKING RECIPE for a wrapper port P on RC: MARC + two newlines + P's text from its line `_IncumbentStrategy = Strategy` to the end (the rebinding makes P subclass RC's class); a body-edit port needs a compose item. Each result carries the full file gzip+base64 and code_sha256; the merge's `top` carries the three best.\n- r6-fresh (7 blind overlays, merges of 4; T 340200..340399, H 450000..450499): f6-rival-vanish, f6-rival-two-tick, f6-retreat-both-sides, f6-rival-mid-shift, f6-advance-opposite, f6-consecutive-retreats, f6-retreat-size-half (rival-quote signals RC does not use, mostly s1 and s4).\n- r6-base-f (8 x 500, merges of 4): MA vs N on 900000..903999, keys base-f1..f8: MA's F means per block (the comparator means every episode-9 final must reproduce) and the chain's evidence N -> MA.\n- r5-diagnose (2, N on 510000..510499): d5-diag-retreat, d5-diag-advance (for the write-up).\n\nNEXT EPISODE (9), in order:\n1. Integrity: drop rows with off_target_zero false, wrong check values, incomplete n, a flag, or a base mean on the same seeds unequal to the other rows'.\n2. Scoreboard vs MA by spread from the r6 merges. Finalists: per spread the best row with gain_s > 2 se_s (fall back to > 1.5 se_s, at most one per spread), code as frozen in the merge's top. If RC-on-MA is reported positive, s2/s3 finals use comparator MARC and the stacking recipe (wrapper ports only).\n3. Spawn r6-final-<key>: 8 x 500 over 900000..903999 per finalist, the r6-base-f brief with the candidate's result URL and hash and MA (or MARC) as comparator; merges of 4; read both merges.\n4. Spawn r6-compose (2 items): compose-all = MA (+ RC's wrapper if positive) plus every finalist's wrapper chained in spread order, each guarded; compose-s14 = only the s1 and s4 finalists. Each: exact-equality audit against each source on its spread over 100 seeds (450000..450099) and against MA elsewhere, full code gzip+base64, code_sha256, little else. Also 8 x 500 F blocks of compose-all vs MA so the final file has its own F evidence. About 200 items remain: 8 a finalist plus 16 for the composed file.\n5. Episode 10: promote per spread where pooled F gain_s > 2 se_s with 4000 complete and 0 failures; finish; the write-up takes the full code from the compose result (or the single finalist's result), F evidence from the finals, and the promotion table: round, spread, old and new hash, URL, F n, gain, se, retail and arb change.\nSEED LEDGER: exposed below 300000; round 3 T 310000..310199, H 410000..411999; SEG audit 420000..421999; diagnostics 500000..502499, 510000..510499; round 4 T 320000..320199, H 430000..431999; round 5 T 330000..330199, H 440000..440499; round 6 T 340000..340399, H 450000..450999; reserved T 350000.., H 460000..; never 700000..709999 (goal 75dd8e1e); F 900000..903999 only in final batches.\nLESSONS: never ask an item or a merge for a command's output; vars are strings; filled briefs under 3000 characters (URLs and hashes eat most of it); results under 64000 bytes; a result is served at https://api.imdnotdead.fun/artifacts/<its SHA-256>. Write-up limits: F reused across rounds and finalists; H common to a round's items; N and MA adopted from other goals; local paired gains are not a leaderboard result; --sandbox not run; round 6 is small because the base moved with two episodes left.",
 "spawn": [
  {
   "name": "r6-port",
   "brief": "One item ports ONE idea onto the incumbent MA and screens it paired against MA, by rival spread. Idea {{key}}: {{idea}} Target spread(s): {{spreads}}. Source: {{source}} Port: {{change}}\nMA (m-plus-a, our live entry): the `code` field of the JSON at https://api.imdnotdead.fun/artifacts/149883fee797ad95a91e535b7a74453587a3eb19ca87ab95f7d8585db160a8f4 ; SHA-256 of its UTF-8 bytes 5d1bd5272884f513b19f0e66a7c235f6c188a08e4f7787ac9346f1614dda3ed3. N (the file the sources changed): `code` of https://api.imdnotdead.fun/artifacts/db22aff7167a4798251ed3d20432509f30e511e4958799aba5b17b41bb39b4b6 . MA keeps self.s (1 to 4, from the rival's first quotes), pb, pa, ahead, res and last_quote_exposed like N. Layout: MA's text unchanged, two newlines, then `_IncumbentStrategy = Strategy` and `class Strategy(_IncumbentStrategy):` whose on_step calls super().on_step and alters the actions; edit MA's body only where a wrapper cannot express the idea. Guard by self.s: on every off-target spread the actions must equal MA's exactly (paired d exactly 0; check it). Verify hashes by script first. Simulator: github.com/danrobinson/prediction-market-challenge at commit b244530ee2a6247b5f930830eeca9dd950da0e7e, unmodified, defaults, 2000 steps, one process, no --sandbox or --workers; per seed run runner.sample_config and SimulationEngine(config, factory, seed=seed) for both files; d = candidate total_edge - MA total_edge; s = max(1, (ask - bid + 1) // 2) from the rival's first quotes. MA's total_edge on seeds 310000..310003 must be 17.116002, 23.820392, 2.376144, 243.87214. Tune at most 3 variants on T = 340000..340199; freeze the best by paired mean on the target spread; holdout H = 450000..450999 (1000 pairs). Chunk 50 seeds a command, rerun lost seeds, never report a partial block; touch no seed in 700000..709999 or 900000..903999.\nResult JSON (under 64000 bytes): key, idea, spreads, approach, tried, next, port_kind (wrapper|body|not_applicable), code (full file, gzip+base64), code_sha256 (plain file), base_sha256, check_values, python_version, tuning {seeds, variants [{name, code_sha256, mean_diff, se, by_spread}], selected}, paired {seeds, n, complete, missing_seeds, failures, overall and by_spread 1..4 each with n, sum_d, sum_d2, mean_diff, se, base_mean, retail_diff, arb_diff; off_target_zero; per_seed [[seed, s, d]...]}, worst_seeds (five most negative d), notes (under 1500 characters). se = sqrt((sum_d2 - sum_d*sum_d/n)/(n-1)/n). Fields only, never a command's output.",
   "items": [
    {
     "key": "p6-s1-retreat-crossing",
     "vars": {
      "key": "p6-s1-retreat-crossing",
      "spreads": "1",
      "idea": "d-s1-retreat-crossing-port: on spread 1 treat a rival one-tick retreat as a crossing of own orders at the vacated tick (N screen s1 +0.85 se 0.40).",
      "source": "`code` of https://api.imdnotdead.fun/artifacts/6b9ed17bf5dea051170d96ecb2a250d14a21d2ff880ecb8f9017883bd03de44b (a change to N; diff against N).",
      "change": "Re-express it on MA under self.s == 1, a wrapper if possible, else the smallest body edit; variants: the source's constants, one tighter, one looser."
     }
    },
    {
     "key": "p6-s1-queue-postjump",
     "vars": {
      "key": "p6-s1-queue-postjump",
      "spreads": "1",
      "idea": "c-s1-queue-postjump: spread-1 queue safety plus post-jump handling (N screen s1 +0.50 se 0.26).",
      "source": "zlib+base64 in the `top` of the merge JSON at https://api.imdnotdead.fun/artifacts/2194012e1ad22d8ec3c929865387870137484f68b7dc438c15bee80be81a9661 under key c-s1-queue-postjump (a change to N; diff against N).",
      "change": "Re-express it on MA under self.s == 1, a wrapper if possible; variants: as source, post-jump part alone."
     }
    },
    {
     "key": "p6-s1-queue-safety",
     "vars": {
      "key": "p6-s1-queue-safety",
      "spreads": "1",
      "idea": "s1-queue-safety: on spread 1 rest only where own queue position is safe (N screen s1 +0.17 se 0.10).",
      "source": "`code` of https://api.imdnotdead.fun/artifacts/e4f60b549bcecf2d4d54e39084dcd646c7fcfb67c44dd516545caf3aa384dd1c (a change to N; diff against N).",
      "change": "Re-express it on MA under self.s == 1; variants: the source's threshold, one tighter."
     }
    },
    {
     "key": "p6-s1-retreat-cancel",
     "vars": {
      "key": "p6-s1-retreat-cancel",
      "spreads": "1",
      "idea": "retreat-cancel on spread 1: on an exactly-one-tick rival retreat (bid down or ask up) cancel every own order on that side and place nothing there for k callbacks (RC's mechanism, +1.1 a run on spreads 2 and 3 of N).",
      "source": "RC's wrapper: the `code` of https://api.imdnotdead.fun/artifacts/2d4b30bbc6bffbc500b37ce5e8a1ac821d6513c52a6a2377b4be3c11d97717fb from its line `_IncumbentStrategy = Strategy` to the end.",
      "change": "Append the same wrapper to MA with its guard changed to self.s == 1. Variants: k = 1, k = 2, k = 1 keeping probe-sized orders."
     }
    },
    {
     "key": "c6-s1-crossing-postjump",
     "vars": {
      "key": "c6-s1-crossing-postjump",
      "spreads": "1",
      "idea": "combine on spread 1: retreat-crossing-port and queue-postjump together (their separate screens on N: +0.851 and +0.496).",
      "source": "two changes to N: `code` of https://api.imdnotdead.fun/artifacts/6b9ed17bf5dea051170d96ecb2a250d14a21d2ff880ecb8f9017883bd03de44b , and key c-s1-queue-postjump, zlib+base64 in the `top` of the merge JSON at https://api.imdnotdead.fun/artifacts/2194012e1ad22d8ec3c929865387870137484f68b7dc438c15bee80be81a9661 (diff each against N).",
      "change": "Port both onto MA under self.s == 1; variants: both as source, and crossing on the bid side only."
     }
    },
    {
     "key": "p6-s4-retreat-cancel",
     "vars": {
      "key": "p6-s4-retreat-cancel",
      "spreads": "4",
      "idea": "retreat-cancel on spread 4: on an exactly-one-tick rival retreat cancel that side and suppress it for k callbacks (RC's mechanism, +1.1 a run on spreads 2 and 3 of N).",
      "source": "RC's wrapper: the `code` of https://api.imdnotdead.fun/artifacts/2d4b30bbc6bffbc500b37ce5e8a1ac821d6513c52a6a2377b4be3c11d97717fb from its line `_IncumbentStrategy = Strategy` to the end.",
      "change": "Append the same wrapper to MA with its guard changed to self.s == 4. Variants: k = 1, k = 2, k = 1 ask side only."
     }
    },
    {
     "key": "p6-s4-no-ask-risk-premium",
     "vars": {
      "key": "p6-s4-no-ask-risk-premium",
      "spreads": "4",
      "idea": "remove-s4-ask-risk-premium: drop the spread-4 ask risk premium (N screen s4 +0.34 se 0.28).",
      "source": "plain code under key remove-s4-ask-risk-premium in the `top` of https://api.imdnotdead.fun/artifacts/e019e7d93ce9c99453526d9d2113561d4c4ec0de062a50c42b51edd9edd62a5e (a deletion from N; diff against N).",
      "change": "Find the same ask risk premium term in MA's spread-4 block and remove it (body edit under self.s == 4); if MA has no such term, set port_kind not_applicable, run only the check values and explain. Variants: removal, half premium."
     }
    },
    {
     "key": "c6-s4-cancel-norisk",
     "vars": {
      "key": "c6-s4-cancel-norisk",
      "spreads": "4",
      "idea": "spread 4: retreat-cancel (k = 1) plus no ask risk premium.",
      "source": "RC's wrapper (`code` of https://api.imdnotdead.fun/artifacts/2d4b30bbc6bffbc500b37ce5e8a1ac821d6513c52a6a2377b4be3c11d97717fb from `_IncumbentStrategy = Strategy` on) and key remove-s4-ask-risk-premium in the `top` of https://api.imdnotdead.fun/artifacts/e019e7d93ce9c99453526d9d2113561d4c4ec0de062a50c42b51edd9edd62a5e (diff against N).",
      "change": "Append the wrapper under self.s == 4 and remove the premium in MA's spread-4 block (none: wrapper alone, say so). Variants: both; wrapper plus half premium."
     }
    },
    {
     "key": "p6-s2-lowp-early-bids",
     "vars": {
      "key": "p6-s2-lowp-early-bids",
      "spreads": "2",
      "idea": "d-s2-lowp-early-bids: on spread 2 at low prices early in the run, change the bid rule as the source does (N screen s2 +0.12 se 0.05).",
      "source": "`code` of https://api.imdnotdead.fun/artifacts/b4a68d2dd1bbd03bdc96072615ada1d5c5f27cafdf897c1bfac5913f5996be0c (a change to N; diff against N).",
      "change": "Re-express it on MA under self.s == 2, a wrapper if possible; variants: the source's cutoffs, one wider."
     }
    },
    {
     "key": "d6-s2-retreat-posterior",
     "vars": {
      "key": "d6-s2-retreat-posterior",
      "spreads": "2",
      "idea": "retreat as information on spread 2: on an exactly-one-tick rival retreat, shift MA's probability estimate by f ticks in the retreat's direction before quoting; no cancelling.",
      "source": "none; a retreat is competitor_best_bid_ticks down exactly one or competitor_best_ask_ticks up exactly one since the last step.",
      "change": "Add the shift where MA forms its spread-2 estimate (body edit under self.s == 2). Variants: f = 0.25, 0.5, 1."
     }
    },
    {
     "key": "p6-s3-retreat-crossing",
     "vars": {
      "key": "p6-s3-retreat-crossing",
      "spreads": "3",
      "idea": "retreat-crossing on spread 3: a rival one-tick retreat is treated as a crossing of own orders at the vacated tick (F vs N s3 +0.41 se 0.20).",
      "source": "`code` of https://api.imdnotdead.fun/artifacts/459d3ec15ee1323593c23f1933500cb42ac662c51e5e2aa89f9b1befee3640d1 (a change to N; diff against N).",
      "change": "Re-express it on MA under self.s == 3, a wrapper if possible; variants: as source, bid side only."
     }
    },
    {
     "key": "p6-s3-retreat-strength",
     "vars": {
      "key": "p6-s3-retreat-strength",
      "spreads": "3",
      "idea": "c-s3-retreat-strength: spread-3 retreat-crossing with the response scaled by the retreat's strength (N screen s3 +0.94 se 0.50).",
      "source": "zlib+base64 in the `top` of the merge JSON at https://api.imdnotdead.fun/artifacts/2194012e1ad22d8ec3c929865387870137484f68b7dc438c15bee80be81a9661 under key c-s3-retreat-strength (a change to N; diff against N).",
      "change": "Re-express it on MA under self.s == 3, a wrapper if possible; variants: the source's scaling, one gentler."
     }
    },
    {
     "key": "p6-s3-mid-size-up",
     "vars": {
      "key": "p6-s3-mid-size-up",
      "spreads": "3",
      "idea": "d-s3-mid-size-up: larger inside quotes at mid-range prices on spread 3 (N screen s3 +0.17 se 0.11).",
      "source": "`code` of https://api.imdnotdead.fun/artifacts/f3f50cdb058d56b7842ec97f345bc7c11858d0b3b5370ea620fc66c593229e03 (a change to N; diff against N).",
      "change": "Re-express the sizing change on MA under self.s == 3 (a wrapper resizing PlaceOrder quantities if possible). Variants: the source's factor, one smaller."
     }
    },
    {
     "key": "p6-s3-flow-transfer",
     "vars": {
      "key": "p6-s3-flow-transfer",
      "spreads": "3",
      "idea": "s3-flow-transfer: spread 3 flow-stock handling transferred from another spread's block (N extension s3 +0.26 se 0.13).",
      "source": "`code` of https://api.imdnotdead.fun/artifacts/4c44fcf1b73f132078bd65018aa8fea6531d4cc7c0cfd4e5f0b874a69ff39299 (a change to N; diff against N).",
      "change": "Re-express it in MA's spread-3 block under self.s == 3; variants: as source, half the transferred size."
     }
    }
   ],
   "output": {
    "format": "json",
    "maxBytes": 64000
   },
   "merge": {
    "groupSize": 7,
    "brief": "Merge the group's results into one JSON: rows, one per item (key, idea, spreads, port_kind, code_sha256, off_target_zero, complete, failures, tuning selected mean_diff and se, paired overall n, mean_diff, se, retail_diff, arb_diff, by_spread 1..4 with n, sum_d, sum_d2, mean_diff, se, worst_seeds); top: for the three rows with the largest mean_diff/se on their target spread, the key, code_sha256 and the full code exactly as the item gave it (gzip+base64); notes on anything inconsistent (a wrong check value, a base mean that differs between rows on the same seeds, off_target_zero false)."
   }
  },
  {
   "name": "r6-fresh",
   "brief": "One item builds ONE overlay mechanism on the incumbent file MA, blind, and screens it paired against MA. Mechanism {{key}}: {{mech}} Act only on spreads {{spreads}} (s = max(1, (ask - bid + 1) // 2) from the rival's first quotes); elsewhere return MA's actions unchanged, so paired d there is exactly 0.\nBlind rule: never open, print, diff or search MA's source, any other strategy for this challenge, a leaderboard entry or an earlier result; read only the simulator and its docs. Get MA by script: write the `code` field of the JSON at https://api.imdnotdead.fun/artifacts/149883fee797ad95a91e535b7a74453587a3eb19ca87ab95f7d8585db160a8f4 to a file, check its UTF-8 SHA-256 is 5d1bd5272884f513b19f0e66a7c235f6c188a08e4f7787ac9346f1614dda3ed3, never display it. Candidate layout: MA's text unchanged, two newlines, then `_IncumbentStrategy = Strategy` and `class Strategy(_IncumbentStrategy):` whose __init__ calls super().__init__() and whose on_step(state) calls super().on_step(state) and then drops, adds, resizes or re-prices orders (PlaceOrder, CancelOrder from orderbook_pm_challenge.types) using only the StepState and its own state; read no attribute of the base class.\nSimulator: github.com/danrobinson/prediction-market-challenge at commit b244530ee2a6247b5f930830eeca9dd950da0e7e, unmodified, defaults, 2000 steps, one process, no --sandbox or --workers; per seed run runner.sample_config and SimulationEngine(config, factory, seed=seed) for both files; d = candidate total_edge - MA total_edge. MA's total_edge on seeds 310000..310003 must be 17.116002, 23.820392, 2.376144, 243.87214. Tune at most 3 variants on T = 340200..340399; freeze the best by paired mean on the target spreads; holdout H = 450000..450499 (500 pairs). Chunk 50 seeds a command, rerun lost seeds, never report a partial block; touch no seed in 700000..709999 or 900000..903999.\nResult JSON (under 64000 bytes): key, mechanism, spreads_acted, approach, tried, next, overlay_code (your appended source, plain text), overlay_sha256, code_sha256 (whole assembled file), base_sha256, check_values, python_version, tuning {seeds, variants [{name, code_sha256, mean_diff, se, by_spread}], selected}, paired {seeds, n, complete, missing_seeds, failures, overall and by_spread 1..4 each with n, sum_d, sum_d2, mean_diff, se, base_mean, retail_diff, arb_diff; off_target_zero; per_seed [[seed, s, d]...]}, worst_seeds (five most negative d), notes (under 1500 characters). se = sqrt((sum_d2 - sum_d*sum_d/n)/(n-1)/n). Fields only, never a command's output.",
   "items": [
    {
     "key": "f6-rival-vanish",
     "vars": {
      "key": "f6-rival-vanish",
      "spreads": "1, 2, 3 and 4",
      "mech": "a rival side quote that becomes None this step (competitor_best_bid_ticks or competitor_best_ask_ticks was a number last step and is None now): cancel every own order on that side and drop this step's placements there; variants: one callback, two callbacks, cancel both sides."
     }
    },
    {
     "key": "f6-rival-two-tick",
     "vars": {
      "key": "f6-rival-two-tick",
      "spreads": "1, 2, 3 and 4",
      "mech": "a rival retreat of two or more ticks on one side in one step (bid down by 2 or more, or ask up by 2 or more): cancel every own order on that side and place nothing there for k callbacks; variants: k = 1, 2, 3. (A one-tick retreat is another item's mechanism: act only on two or more.)"
     }
    },
    {
     "key": "f6-retreat-both-sides",
     "vars": {
      "key": "f6-retreat-both-sides",
      "spreads": "1 and 4",
      "mech": "a rival retreat of exactly one tick on either side: cancel every own order on BOTH sides and place nothing for one callback (the retreat as a jump signal); variants: both sides, both sides for two callbacks, both sides only when the own order count on the retreated side is zero."
     }
    },
    {
     "key": "f6-rival-mid-shift",
     "vars": {
      "key": "f6-rival-mid-shift",
      "spreads": "1 and 4",
      "mech": "when the rival mid moves by m ticks in one step (both quotes present before and after, m not 0), cancel every own resting order and re-place it shifted by m ticks with the same quantity, dropping any that would cross the rival; variants: all orders, only the side the rival moved away from, only when |m| >= 2."
     }
    },
    {
     "key": "f6-advance-opposite",
     "vars": {
      "key": "f6-advance-opposite",
      "spreads": "1, 2, 3 and 4",
      "mech": "a rival advance of exactly one tick (bid up one or ask down one): cancel every own order on the OPPOSITE side (bid up: cancel own asks; ask down: cancel own bids) and place nothing there for one callback; variants: one callback, two callbacks, cancel only orders within one tick of the rival's new quote."
     }
    },
    {
     "key": "f6-consecutive-retreats",
     "vars": {
      "key": "f6-consecutive-retreats",
      "spreads": "1 and 4",
      "mech": "two rival retreats on the same side within five steps (bid down twice, or ask up twice, each by one or more ticks): cancel that side and place nothing there for k callbacks; variants: k = 2, 3, 5."
     }
    },
    {
     "key": "f6-retreat-size-half",
     "vars": {
      "key": "f6-retreat-size-half",
      "spreads": "1 and 4",
      "mech": "a rival retreat of exactly one tick on one side: cancel own orders on that side and re-place each at the same price with quantity times h, dropping orders under the simulator's minimum; variants: h = 0.5, 0.25, 0.5 with no re-placement of the order nearest the rival's old quote."
     }
    }
   ],
   "output": {
    "format": "json",
    "maxBytes": 64000
   },
   "merge": {
    "groupSize": 4,
    "brief": "Merge the group's results into one JSON: rows, one per item (key, mechanism, spreads_acted, overlay_sha256, code_sha256, off_target_zero, complete, failures, tuning selected mean_diff and se, paired overall n, mean_diff, se, retail_diff, arb_diff, by_spread 1..4 with n, sum_d, sum_d2, mean_diff, se, worst_seeds); top: for the three rows with the largest mean_diff/se on a target spread, the key, code_sha256 and overlay_code exactly as given; notes on anything inconsistent (a wrong check value, base means that differ between rows, off_target_zero false)."
   }
  },
  {
   "name": "r6-base-f",
   "brief": "One item measures ONE frozen candidate against ONE frozen comparator on ONE block of 500 seeds, paired by seed. No development, no tuning: change no code. Candidate {{cand_name}}: the `code` field of the JSON at {{cand_url}} ; SHA-256 of its UTF-8 bytes {{cand_sha}}. Comparator {{base_name}}: the `code` field of the JSON at {{base_url}} ; SHA-256 {{base_sha}}. Verify both hashes by script before running; on a mismatch report it and run nothing.\nSimulator: https://github.com/danrobinson/prediction-market-challenge at commit b244530ee2a6247b5f930830eeca9dd950da0e7e, unmodified, default ChallengeConfig and ParameterVariance, 2000 steps, one Python process, no --sandbox, no --workers. Seeds {{seed_start}}..{{seed_end}} inclusive, every one of them. For each seed run runner.sample_config(base, var, seed=seed) and SimulationEngine(config, factory, seed=seed) for both strategies with a fresh strategy instance; d = candidate total_edge - comparator total_edge; spread s of a seed = max(1, (ask - bid + 1) // 2) from the rival's first quotes. Check values: the comparator's total_edge on seeds 310000..310003 must be {{base_check}} (6 decimals); stop and report if not. Run in chunks of 50 seeds, in the background if a command times out; rerun lost seeds; the block is complete only when all 500 seeds have both runs; never report a partial block as the measurement. Touch no other seed.\nResult JSON (at most 64000 bytes): key, candidate_sha256, comparator_sha256, seeds {start, end}, n, complete, missing_seeds, failures, check_values, python_version, seconds_per_simulation, overall {n, sum_d, sum_d2, mean_diff, se, comparator_mean, candidate_mean, retail_diff, arb_diff}, by_spread {1, 2, 3, 4: the same fields}, per_seed [[seed, s, d to 6 decimals]...], worst_seeds (five most negative d with seed and s), notes (at most 1000 characters). se = sqrt((sum_d2 - sum_d*sum_d/n)/(n-1)/n). Report fields only, never a command's output.",
   "items": [
    {
     "key": "base-f1",
     "vars": {
      "cand_name": "MA (m-plus-a, our live entry)",
      "cand_url": "https://api.imdnotdead.fun/artifacts/149883fee797ad95a91e535b7a74453587a3eb19ca87ab95f7d8585db160a8f4",
      "cand_sha": "5d1bd5272884f513b19f0e66a7c235f6c188a08e4f7787ac9346f1614dda3ed3",
      "base_name": "N (the previous incumbent)",
      "base_url": "https://api.imdnotdead.fun/artifacts/db22aff7167a4798251ed3d20432509f30e511e4958799aba5b17b41bb39b4b6",
      "base_sha": "bf0d179f3e47d28819f6fa7e0d25548c2ced43374c216d36460b00a26a26ffae",
      "base_check": "17.116002, 20.017111, 2.390311, 241.484752",
      "seed_start": "900000",
      "seed_end": "900499"
     }
    },
    {
     "key": "base-f2",
     "vars": {
      "cand_name": "MA (m-plus-a, our live entry)",
      "cand_url": "https://api.imdnotdead.fun/artifacts/149883fee797ad95a91e535b7a74453587a3eb19ca87ab95f7d8585db160a8f4",
      "cand_sha": "5d1bd5272884f513b19f0e66a7c235f6c188a08e4f7787ac9346f1614dda3ed3",
      "base_name": "N (the previous incumbent)",
      "base_url": "https://api.imdnotdead.fun/artifacts/db22aff7167a4798251ed3d20432509f30e511e4958799aba5b17b41bb39b4b6",
      "base_sha": "bf0d179f3e47d28819f6fa7e0d25548c2ced43374c216d36460b00a26a26ffae",
      "base_check": "17.116002, 20.017111, 2.390311, 241.484752",
      "seed_start": "900500",
      "seed_end": "900999"
     }
    },
    {
     "key": "base-f3",
     "vars": {
      "cand_name": "MA (m-plus-a, our live entry)",
      "cand_url": "https://api.imdnotdead.fun/artifacts/149883fee797ad95a91e535b7a74453587a3eb19ca87ab95f7d8585db160a8f4",
      "cand_sha": "5d1bd5272884f513b19f0e66a7c235f6c188a08e4f7787ac9346f1614dda3ed3",
      "base_name": "N (the previous incumbent)",
      "base_url": "https://api.imdnotdead.fun/artifacts/db22aff7167a4798251ed3d20432509f30e511e4958799aba5b17b41bb39b4b6",
      "base_sha": "bf0d179f3e47d28819f6fa7e0d25548c2ced43374c216d36460b00a26a26ffae",
      "base_check": "17.116002, 20.017111, 2.390311, 241.484752",
      "seed_start": "901000",
      "seed_end": "901499"
     }
    },
    {
     "key": "base-f4",
     "vars": {
      "cand_name": "MA (m-plus-a, our live entry)",
      "cand_url": "https://api.imdnotdead.fun/artifacts/149883fee797ad95a91e535b7a74453587a3eb19ca87ab95f7d8585db160a8f4",
      "cand_sha": "5d1bd5272884f513b19f0e66a7c235f6c188a08e4f7787ac9346f1614dda3ed3",
      "base_name": "N (the previous incumbent)",
      "base_url": "https://api.imdnotdead.fun/artifacts/db22aff7167a4798251ed3d20432509f30e511e4958799aba5b17b41bb39b4b6",
      "base_sha": "bf0d179f3e47d28819f6fa7e0d25548c2ced43374c216d36460b00a26a26ffae",
      "base_check": "17.116002, 20.017111, 2.390311, 241.484752",
      "seed_start": "901500",
      "seed_end": "901999"
     }
    },
    {
     "key": "base-f5",
     "vars": {
      "cand_name": "MA (m-plus-a, our live entry)",
      "cand_url": "https://api.imdnotdead.fun/artifacts/149883fee797ad95a91e535b7a74453587a3eb19ca87ab95f7d8585db160a8f4",
      "cand_sha": "5d1bd5272884f513b19f0e66a7c235f6c188a08e4f7787ac9346f1614dda3ed3",
      "base_name": "N (the previous incumbent)",
      "base_url": "https://api.imdnotdead.fun/artifacts/db22aff7167a4798251ed3d20432509f30e511e4958799aba5b17b41bb39b4b6",
      "base_sha": "bf0d179f3e47d28819f6fa7e0d25548c2ced43374c216d36460b00a26a26ffae",
      "base_check": "17.116002, 20.017111, 2.390311, 241.484752",
      "seed_start": "902000",
      "seed_end": "902499"
     }
    },
    {
     "key": "base-f6",
     "vars": {
      "cand_name": "MA (m-plus-a, our live entry)",
      "cand_url": "https://api.imdnotdead.fun/artifacts/149883fee797ad95a91e535b7a74453587a3eb19ca87ab95f7d8585db160a8f4",
      "cand_sha": "5d1bd5272884f513b19f0e66a7c235f6c188a08e4f7787ac9346f1614dda3ed3",
      "base_name": "N (the previous incumbent)",
      "base_url": "https://api.imdnotdead.fun/artifacts/db22aff7167a4798251ed3d20432509f30e511e4958799aba5b17b41bb39b4b6",
      "base_sha": "bf0d179f3e47d28819f6fa7e0d25548c2ced43374c216d36460b00a26a26ffae",
      "base_check": "17.116002, 20.017111, 2.390311, 241.484752",
      "seed_start": "902500",
      "seed_end": "902999"
     }
    },
    {
     "key": "base-f7",
     "vars": {
      "cand_name": "MA (m-plus-a, our live entry)",
      "cand_url": "https://api.imdnotdead.fun/artifacts/149883fee797ad95a91e535b7a74453587a3eb19ca87ab95f7d8585db160a8f4",
      "cand_sha": "5d1bd5272884f513b19f0e66a7c235f6c188a08e4f7787ac9346f1614dda3ed3",
      "base_name": "N (the previous incumbent)",
      "base_url": "https://api.imdnotdead.fun/artifacts/db22aff7167a4798251ed3d20432509f30e511e4958799aba5b17b41bb39b4b6",
      "base_sha": "bf0d179f3e47d28819f6fa7e0d25548c2ced43374c216d36460b00a26a26ffae",
      "base_check": "17.116002, 20.017111, 2.390311, 241.484752",
      "seed_start": "903000",
      "seed_end": "903499"
     }
    },
    {
     "key": "base-f8",
     "vars": {
      "cand_name": "MA (m-plus-a, our live entry)",
      "cand_url": "https://api.imdnotdead.fun/artifacts/149883fee797ad95a91e535b7a74453587a3eb19ca87ab95f7d8585db160a8f4",
      "cand_sha": "5d1bd5272884f513b19f0e66a7c235f6c188a08e4f7787ac9346f1614dda3ed3",
      "base_name": "N (the previous incumbent)",
      "base_url": "https://api.imdnotdead.fun/artifacts/db22aff7167a4798251ed3d20432509f30e511e4958799aba5b17b41bb39b4b6",
      "base_sha": "bf0d179f3e47d28819f6fa7e0d25548c2ced43374c216d36460b00a26a26ffae",
      "base_check": "17.116002, 20.017111, 2.390311, 241.484752",
      "seed_start": "903500",
      "seed_end": "903999"
     }
    }
   ],
   "output": {
    "format": "json",
    "maxBytes": 64000
   },
   "merge": {
    "groupSize": 4,
    "brief": "Merge the group's results into one JSON: rows, one per item (key, seeds, n, complete, missing_seeds, failures, check_values, overall n, sum_d, sum_d2, mean_diff, se, comparator_mean, candidate_mean, retail_diff, arb_diff, by_spread 1..4 with n, sum_d, sum_d2, mean_diff, se, worst_seeds); pooled: over the complete rows, overall and per spread, n, sum_d, sum_d2, mean = sum_d/n, se = sqrt((sum_d2 - sum_d*sum_d/n)/(n-1)/n), retail and arb differences weighted by n; notes on any incomplete row, failure or check-value mismatch."
   }
  }
 ],
 "read": [
  "r5-final/cancel-f2",
  "r5-final/cancel-f5",
  "r5-final/cancel-f6",
  "r5-final/cancel-f7",
  "r5-final/cancel-f8",
  "r5-final/cross-f1",
  "r5-final/cross-f5",
  "r4-extend/merge-01",
  "r4-extend/merge-02",
  "r4-extend/merge-03",
  "r4-extend/merge-04",
  "r4-extend/merge-05",
  "r4-extend/merge-06",
  "r5-diagnose/d5-diag-retreat",
  "r5-diagnose/d5-diag-advance",
  "r6-port/merge-01",
  "r6-port/merge-02",
  "r6-fresh/merge-01",
  "r6-fresh/merge-02",
  "r6-base-f/merge-01",
  "r6-base-f/merge-02"
 ],
 "cancel": [
  "r5-deepen",
  "r5-fresh"
 ],
 "wake": {
  "batches": [
   "r6-port",
   "r6-fresh",
   "r6-base-f",
   "r5-final",
   "r4-extend"
  ],
  "afterMinutes": 150
 },
 "finish": false
}