# Root merge 8 of 8: 15 relay legs (t6-b … t6-e, items q08–q22) Goal: train the network's best fee policy for paradigm.xyz/puzzles/amm across relay rounds, starting from saved weights. The design is "T plus a learned 19-8-2 fee correction". The board entry is IB = 522.00 (20th). **Sources for every figure below.** Each figure comes from one of the 15 result files handed to this merge under `.imd/reads/artifacts/`. The tag `[qNN]` names the file `b4x-qNN-…`; its batch and SHA-256 are in §1. All figures were measured locally by the worker that ran the item. **None is a leaderboard score**, and every worker says so. Figures marked *derived (merge)* are my own arithmetic on the numbers the items report, and I say how I got each one. I re-ran no simulation in this merge. --- ## 0. Bottom line 1. **All 15 legs are valid. None is blocked.** Every leg has `blocked: null` and `valid: true`, and every leg passed gates A, B and C (§3). No leg had an OOG call. The highest afterSwap peak was 238,467, under the 245,000 cap (§8). 2. **10 of the 15 legs found nothing better than their START.** Their returned params, Solidity and port are START byte for byte: q08, q09, q11, q12, q15, q16, q17, q18, q19 and q20. 3. **5 legs returned trained weights that differ from START.** Their status varies: - **q22 (k06 lineage) has the strongest confirmed gain over its START.** On the replica holdout it scored **+0.0498 ± 0.0048** (n=8192). On the real engine it scored **+0.0590 ± 0.0226** (n=512). Its monitor was still rising when it stopped (+0.0609 at generation 1358) [q22]. - **q14 (k01 lineage)**: replica holdout **+0.0420 ± 0.0047**. Real engine **+0.0285 ± 0.0220**, which is positive but not significant on its own [q14]. - **q21 (k06 lineage)**: replica holdout **+0.0323 ± 0.0042**. The real START arm was **not run** (out of time), so there is no real paired confirmation against START [q21]. - **q13 (k01 lineage)**: replica holdout **+0.0256 ± 0.0047**. Real engine **+0.0370 ± 0.0190** [q13]. - **q10 (k01 lineage) is not confirmed.** Replica holdout −0.0017 ± 0.0033. Real engine **−0.0390 ± 0.0195**. Its own worker recommends keeping START [q10]. 4. **The legs started from three different START files** (§2): lineages k01, k07 and k06. Every leg compares itself only with its own START and with IB. - All three STARTs beat IB by about +0.84 to +0.85 on the shared replica holdout. - Pooled over legs, START beats IB on the real engine by about **+0.81 to +0.85** (*derived*, §7). 5. **Best candidate for the next relay, on the evidence here: q22's weights** (code `97e538c7…`, port `4c2c3549…`). - On the one benchmark every leg shares (replica holdout, seeds 41090000..41098191, same IB arm, IB mean 528.44), q22 has the highest frozen-vs-IB gain of any leg: **+0.89507**. Next are q14 (+0.89009), q21 (+0.87754) and q13 (+0.87369). - That ranking is replica-only. The real-engine gains vs IB were measured on different seeds per leg, so they cannot be ranked against each other (§7). --- ## 1. Inputs received All 15 files were present and non-empty. Each matches the SHA-256 given in the merge brief (first 16 hex shown). I also checked that every file's `code_zb64` and `port_zb64` decode to bytes whose SHA-256 equals the file's own `code_sha256` and `port_sha256`. | tag | batch / item | file SHA-256 (prefix) | lineage (START code) | outcome | |---|---|---|---|---| | q08 | t6-b / q08-k01-s03-h45-p24 | 7ffba317fd902e31 | k01 `9253b6f3` | nothing beat START | | q09 | t6-b / q09-k01-s04-h60-p16 | 9814d932d0177b57 | k01 | nothing beat START | | q10 | t6-b / q10-k01-s02-h30-p16 | e5f31150d9a4c18e | k01 | trained, **not confirmed** (code `8ae134d7`) | | q11 | t6-c / q11-k01-s03-h45-p16 | 91253f1eb3065b79 | k01 | nothing beat START | | q12 | t6-c / q12-k01-s04-h45-p16 | cdff4c9cd22f347e | k01 | nothing beat START | | q13 | t6-c / q13-k01-s02-h45-p16 | 89d4f522b1944e6c | k01 | trained, small gain (code `08ec8003`) | | q14 | t6-c / q14-k01-s03-h60-p24 | c05bc26a8ed836f2 | k01 | trained, gain (code `7bc0171f`) | | q15 | t6-c / q15-k01-s05-h30-p16 | 4e5090c4f8726c8b | k01 | nothing beat START | | q16 | t6-d / q16-k07-s03-h45-p16 | 766b8e1c3ba74b35 | k07 `039fa1a3` | nothing beat START | | q17 | t6-d / q17-k07-s02-h45-p16 | b3ffc294a190d62b | k07 | nothing beat START | | q18 | t6-d / q18-k07-s04-h60-p16 | 1ec293da18ec7eb2 | k07 | nothing beat START | | q19 | t6-d / q19-k06-s03-h45-p16 | 47c1d086df1490f7 | k06 `ef01fb90` | nothing beat START | | q20 | t6-d / q20-k06-s02-h45-p16 | 9ba4e9246f9bd2c1 | k06 | nothing beat START | | q21 | t6-e / q21-k06-s04-h45-p16 | 711657aa592ebf51 | k06 | trained, gain on replica (code `c4805881`) | | q22 | t6-e / q22-k06-s03-h60-p16 | 8cbbcd23417da9dc | k06 | trained, **best** (code `97e538c7`) | Params check (*merge*, from hashing each file's `params` JSON): - All legs that report "nothing beat START" carry identical params within their lineage: - k01: q08, q09, q11, q12 and q15 are equal. - k07: q16, q17 and q18 are equal. - k06: q19 and q20 are equal. - The five trained legs (q10, q13, q14, q21, q22) each carry distinct params. - All 15 share the same `scaling` block. All have W1 8×19 and 41 named constants. --- ## 2. Starting files (three lineages) and input hashes All legs that report it give the same IB code SHA-256, `301941829a44bb60977bb28181a5e4bfa6544f3696763f987054789b2611d686`. That equals the brief's value. Further hashes, as reported: - IB artifact: `afd5183e…` (q10, q11, q14, q20, q22). - IB port: `f63227c5…` (q09, q11, q12, q13, q14). - KIT-B artifact: `48cd6a10…` (q10, q11, q14, q20, q22). - KIT sim: `aa97e7eb…` (q09, q11, q12, q14). - Checkout: `6b6921f8d463314aa7c96234e1be25a25245f704` (q09, q11, q12, q14, q19, q20, q22). - Wheel: `aedb6828…` (q11, q14, q20, q22). | lineage | START artifact id | START code sha256 | START port sha256 | real gain of START over IB used as the gate-B reference | |---|---|---|---|---| | k01 | `12606d82ec57…` [q10, q11, q14] | `9253b6f3a49e…` | `732c0fb61548…` | +0.793 [q08–q15] | | k07 | not stated in the k07 files | `039fa1a3fcab…` | `cdf8c0f846f4…` | +0.836 [q16–q18] | | k06 | `e7b20742e25c…` [q20, q22] | `ef01fb9098ad…` | `849ad35ab56f…` | +0.792 [q19–q22] | **Hash disagreement in k01 (unresolved).** - q08 notes that the START artifact's own `source_hashes.START_code` (`cb6d9455…`) differs from its `code_sha256` (`9253b6f3…`). q08 used the `code_zb64` bytes, which hash to `9253b6f3…`. - q15 lists `START_code: cb6d945511e1…` in its source_hashes, and a `PORT_original` of `b29cd2a0…`. Yet q15's returned code is `9253b6f3…` and its port is `732c0fb6…`, the same as every other k01 leg. - So every k01 leg actually ran `9253b6f3…`. The `cb6d9455…` value appears to be the hash of an earlier file recorded inside the START artifact. Nobody resolved which file it was. --- ## 3. Gates (A: START port vs START EVM < 0.01 bps; B: replica reproduces START's real gain over IB within 0.15; C: frozen Solidity vs frozen port < 0.1 bps) Every leg ran A and C on 50 markets × first 2,000 afterSwap callbacks (100,000 callbacks). - Gate A seeds: 9200000..9200049. Gate C seeds: 9200100..9200149. - The callbacks were recorded from replica market runs. No leg ran synthetic stress sequences. - q21 notes its replay was open-loop: EVM fees do not feed back into the recorded trades. | leg | A max diff (bps) | B replica gain (n=512) | B ref (real) | B abs error | C max diff (bps) | |---|---|---|---|---|---| | q08 | 0.0000603 | 0.91559 ± 0.04393 | 0.793 | 0.1226 | 0.0000612 | | q09 | 0.0000603 | 0.91559 ± 0.04393 | 0.793 | 0.12259 | 0.0000612 | | q10 | 0.0000603 | 0.91559 ± 0.04393 | 0.793 | 0.12259 | 0.0000571 | | q11 | 0.0000603 | 0.91559 ± 0.04393 | 0.793 | 0.12259 | 0.0000612 | | q12 | 0.0000603 | 0.91559 ± 0.04393 | 0.793 | 0.12259 | 0.0000612 | | q13 | 0.0000603 | 0.91559 ± 0.04393 | 0.793 | 0.12259 | 0.0000706 | | q14 | 0.0000603 | 0.91559 ± 0.04393 | 0.793 | (0.1226) | 0.0000724 | | q15 | 0.0000603 | 0.91559 ± 0.04393 | 0.793 | 0.12259 | 0.0000612 | | q16 | 0.0000576 | 0.8519 ± 0.03586 | 0.836 | 0.0159 | 0.0000591 | | q17 | 0.0000576 | 0.8519 ± 0.03586 | 0.836 | 0.0159 | 0.0000591 | | q18 | 0.0000576 | 0.8519 ± 0.03586 | 0.836 | 0.0159 | 0.0000591 | | q19 | 0.0000625 | 0.84598 ± 0.03306 | 0.792 | 0.0540 | 0.0000667 | | q20 | 0.0000625 | 0.84598 ± 0.03306 | 0.792 | 0.0540 | 0.0000667 | | q21 | 0.0000625 | 0.84598 ± 0.03306 | 0.792 | 0.0540 | 0.0000751 | | q22 | 0.0000625 | 0.84598 ± 0.03306 | 0.792 | 0.0540 | 0.0000668 | Gate-B seed ranges per lineage: - k01: 8097280..8097791. - k07: 8103424..8103935. - k06: 8102400..8102911. Within each lineage, every leg reused the same gate-B seeds and got identical results, which confirms the replica is deterministic. That reuse means gate B is not fresh evidence per leg. q14 states a 0.15 tolerance without an explicit error figure; the 0.1226 shown is the same arithmetic as the other k01 legs. **Caveat: the k01 replica overstates.** Its gate-B error (0.1226) passes, but it is close to the 0.15 limit: the replica reads START about +0.12 better than the real engine against IB. k07 (0.016) and k06 (0.054) are much tighter. Gate-B retail/arb split of START vs IB (replica): - k01: retail −0.3121, arb +1.2277 [q10, q11, q12, q14]. - k07: retail −0.25042, arb +1.1023 [q16, q17, q18]. - k06: retail +0.27501, arb +0.57097 [q19, q20, q21, q22]. --- ## 4. Replica speed The brief says to search only at ≥ 300 markets/s. | leg | markets/s | setup as reported | |---|---|---| | q08 | 348 | 4 CPUs, warmed 4-process pool; ~280/s during search incl. overhead | | q09 | 417.82 | 8 processes (gate-B batch 347.77) | | q10 | **201.9** | 8 processes, warmed fork pool | | q11 | 330.22 | 24 workers | | q12 | **245.64** | 16 processes; earlier measurement 289.67 (best of 8/12/16/24 pools) | | q13 | 431.08 | warmed pool | | q14 | 1304.5 | 8 processes; concurrent bench 844.69 / 1173.4 / 1245.3 at 8/16/24 procs | | q15 | 590.85 | 8 workers | | q16 | 391.33 | 8 procs, pool startup included | | q17 | **215.33** | 4 CPUs (IB 278.41) | | q18 | **291.85** | 8 workers, 2048-market block | | q19 | 467.59 | 6 CPUs | | q20 | 540.52 | 8 CPUs, measured before search; heavy outside host load later (load avg ~15–23), ~30–60 s per generation | | q21 | 346.8 | 12 procs | | q22 | 3557.4 | 16 procs on 32 CPUs | **Conflict with the brief.** q10, q12, q17 and q18 measured below 300 markets/s and still searched, with M=256 per generation. - q17 cites the item brief as saying "stop 45 min before end when S<300" and "M=256 … extended real block (+255)". So these item briefs apparently allowed a slow-machine mode. - The goal text says "search only at ≥ 300 markets/s". - Whichever rule applies, none of these four legs produced a confirmed improvement. --- ## 5. Search runs (CMA-ES over 219 z; z=0 = START) Common parameterization, stated in most legs: - 178 head weights: weight = START + 0.05·rms(block)·z, over blocks W1, b1, W2, b2. - 41 constants: constant = START·2^(0.03 z), with integer caps rounded. - Monitor seeds 30000000..30002047 (2,048 markets), deliberately reused. - Training seeds fresh per generation. How legs differed on constants: - **Decays:** some legs clipped decays (q16 at 0.9999; q19 and q20 at 0.999 / 0.999999; q22 capped at 0.999). - **q17 and q21 phase 2** parameterized decays as 1 − (1−d)·2^(0.03z). - **q12 and q18** rejected infeasible proposals with a penalty instead. | leg | ES seed | pop | σ0 | σ cap | M | gens | search min | train seeds | best monitor gain vs START (± se) | |---|---|---|---|---|---|---|---|---|---| | q08 | 20261608 | 24 | 0.3 | 0.3·0.5^(min/45) | 512 | 84 | 67.97 | 156000000..156043007 | 0 (START); monitors −0.012 … −0.053 | | q09 | 20261609 | 16 | 0.4 | 0.4·0.5^(min/60) | 512 | 142 | 78.31 | 164000000..164072703 | 0; monitors −0.034 … −0.091 | | q10 | 20261610 | 16 | 0.2 | 0.2·0.5^(min/30) | 256 | 142 | 64.26 | 172000000..172036351 | +0.0038 ± 0.0071 (gen 57, min 26.3) | | q11 | 20261611 | 16 | 0.3 | 0.3·0.5^(min/45) | 512 | 180 | 78.82 | 180000000..180092159 | 0; monitors −0.013 … −0.053 | | q12 | 20261612 | 16 | 0.4 | 0.4·0.5^(min/45) | 256 | 277 | 62.81 | 188000000..188070911 | 0; monitors −0.049 … −0.094; 74 infeasible proposals | | q13 | 20261613 | 16 | 0.2 | 0.2·0.5^(min/45) | 512 | 300 | 79.05 | 196000000..196153599 | +0.0090 ± 0.0091 (gen 299) | | q14 | 20261614 | 24 | 0.3 | 0.3·0.5^(min/60) | 512 | 573 | 80.05 | 204000000..204293375 | +0.0132 ± 0.0092 (min 65.7) | | q15 | (not stated) | — | 0.5 | 30-min half-life | 512 | 218 (216 valid) | 59.02 | 212001024..212111615 | 0; monitors −0.036 … −0.109 | | q16 | 20261616 | 16 | 0.3 | 0.3·0.5^(min/45) | 512 | 114 | 68.11 | 220000000..220058367 | 0; monitors −0.026 … −0.055 | | q17 | 20261617 | 16 | 0.2 | 0.2·0.5^(min/45) | 256 | 92 (status says 90) | 28.32 | 228000000..228023551 | 0; monitors −0.006 … −0.036 | | q18 | 20261618 | 16 | 0.4 | 0.4·0.5^(min/60) | 256 | 262 | 63.29 | 236000000..236067071 | 0; monitors −0.046 … −0.182 | | q19 | 20261619 | 16 | 0.3 | 0.3·0.5^(min/45) | 512 | 236 | 62.72 | 244000000..244120831 | 0; monitors −0.009 … −0.033 | | q20 | 20261620 | 16 | 0.2 | 0.2·0.5^(min/45) | 512 | 68 | 49.65 | 252000000..252034815 | 0; monitors −0.005 … −0.034 | | q21 | 20261621 | 16 | 0.4 | 0.4·0.5^(min/45) | 512 | 397 | 74.89 | 260000000..260203263 | **+0.0272 ± 0.0087** (gen 376, min 70.1) | | q22 | 20261622 | 16 | 0.3 | 0.3·0.5^(min/60) | 512 | 1371 | 66.56 | 268000000..268701951 | **+0.0609 ± 0.0094** (gen 1358, min 65.3) | Patterns across legs (my reading of the curves above): - **Most legs' ES mean fell below START in the first 5–20 minutes and never recovered.** That happened in 10 of 15 legs. - **The legs that gained either started from a smaller σ0 (q10 and q13 at 0.2) or ran far more generations.** - q14 ran 573 generations with pop 24, with the monitor turning positive after ~50 min. - q22 ran 1371 generations on a 32-CPU host; its monitor turned positive at ~15 min and climbed to +0.061. - Generation count and wall time both separate the two groups. Throughput (§4) looks like the main lever. - **"Still rising."** q21 says its monitor best improved at the last monitors (+0.0176 at 65 min, +0.0272 at 70 min). q22 says its monitor curve was still rising when it stopped, ~35–40 min before its time limit. - **q12 and q18 used σ0 = 0.4 with M = 256 and fell the furthest:** −0.094 and −0.182 at worst. - **q21's phase 1 failed.** - It used plain START·2^(0.03z) on decays near 1 (e.g. LAMBDA_DECAY 0.9918), which moves 1−d by large factors. - The monitor fell to −0.132 by minute 20, and phase 1 was discarded. - Phase 2 restarted fresh with the 1 − (1−d)·2^(0.03z) map and gained. - Restart state was returned by q12 (`final_mean_z`), q16 (`es_mean_final_z`), q17 (`restart.es_mean_last_gen`, next seed 228023552), q19 (`es_mean_final`) and q21 (`es_mean_z_at_stop`, σ 0.12624, next seed 260203264). Apart from q21, none of these beat START. q16 explicitly advises caution: its monitor was −0.033 at 65 min. --- ## 6. Replica holdout (seeds 41090000..41098191, n=8192, evaluated once after freezing) IB mean on this holdout is 528.44 in every leg that reports means. That makes the frozen_vs_IB column comparable across all 15 legs and all three lineages. | leg | frozen − START (± se) | frozen − IB (± se) | START − IB (± se) | retail / arb delta of frozen vs IB | |---|---|---|---|---| | k01 unchanged (q08, q09, q11, q12, q15) | 0 | 0.84813 ± 0.00976 | 0.84813 ± 0.00976 | −0.3727 / +1.2208 | | q10 | −0.00171 ± 0.00328 | 0.84642 ± 0.00966 | 0.84813 | −0.30827 / +1.1547 | | q13 | +0.02556 ± 0.00471 | 0.87369 ± 0.00945 | 0.84813 | +0.12408 / +0.74961 | | q14 | +0.04196 ± 0.00473 | 0.89009 ± 0.00972 | 0.84813 | −0.018512 / +0.9086 | | k07 unchanged (q16, q17, q18) | 0 | 0.84147 ± 0.00959 | 0.84147 ± 0.00959 | −0.2558 / +1.0973 | | k06 unchanged (q19, q20) | 0 | 0.84528 ± 0.00939 | 0.84528 ± 0.00939 | +0.25096 / +0.59432 | | q21 | +0.03226 ± 0.00422 | 0.87754 ± 0.00960 | 0.84528 | +0.28683 / +0.59071 | | q22 | **+0.04980 ± 0.00482** | **0.89507 ± 0.00952** | 0.84528 | −0.36265 / +1.2577 | How each trained leg's gain splits (frozen vs its own START, replica): - **q13** shifts edge from arb to retail: retail +0.49679, arb −0.47123. - **q14** does the same: retail +0.35419, arb −0.31224. - **q21** barely changes the split: retail +0.035868, arb −0.0036056. - **q22 moves the opposite way:** retail −0.61361, arb +0.6634. Its frozen policy ends with a retail/arb profile vs IB much like the k01 lineage's. - So the two best candidates (q22 and q14) improve by different mechanisms. Worst holdout markets: - Seed 41092519 is the worst or near-worst vs IB in most legs: −6.3158 for k01 START, −4.8549 for k07, −5.4257 for k06, −4.8671 for q22. - q13's and q14's frozen policies add new deep losses vs START: −11.886 (q13) and −11.643 on seed 41097734 (q14). --- ## 7. Real engine (`amm_sim_rs.run_batch(X, VanillaStrategy, configs, 8)`, each arm alone, configs per MatchRunner._build_configs) Real seeds are disjoint across legs, all from 8185344 upward, so every leg's real block is fresh. Because the seeds differ, real gains vs IB are **not** comparable between legs. | leg | seeds | n | frozen − START (± se) | frozen − IB (± se) | START − IB (± se) | worst5 of frozen − IB | |---|---|---|---|---|---|---| | q08 | 8185344..8185855 | 512 | 0 (identical) | 0.88228 ± 0.03730 | same | −1.3832, −1.3536, −1.1334, −1.0733, −0.98884 | | q09 | 8186368..8186879 | 512 | 0 | 0.89751 ± 0.03784 | same | −2.274, −2.1967, −2.0397, −1.9653, −1.5452 | | q10 | 8187392..8187647 | 256 | **−0.03905 ± 0.01951** | 0.84439 ± 0.04992 | 0.88344 ± 0.05094 | −1.6321, −1.1094, −0.93948, −0.78508, −0.78024 | | q11 | 8188416..8188927 | 512 | 0 | 0.81756 ± 0.03508 | same | −0.95618, −0.93251, −0.91799, −0.90557, −0.87372 | | q12 | 8189440..8189695 | 256 | 0 | 0.92248 ± 0.05612 | same | −2.087, −0.98055, −0.96043, −0.82484, −0.76243 | | q13 | 8190464..8190975 | 512 | **+0.03703 ± 0.01896** | 0.89934 ± 0.03362 | 0.86231 ± 0.03621 | −0.89014, −0.68536, −0.67265, −0.62563, −0.59709 | | q14 | 8191488..8191999 | 512 | **+0.02850 ± 0.02204** | 0.86571 ± 0.03662 | 0.83721 ± 0.03896 | −2.5368, −1.3647, −1.289, −1.1874, −1.1541 | | q15 | 8192512..8193023 | 512 | 0 | 0.78235 ± 0.03401 | same | −1.5193, −1.2571, −1.1242, −1.0172, −0.98734 | | q16 | 8193536..8193983 | 448 | 0 | 0.80985 ± 0.03899 | same | −1.9036, −1.5445, −1.505, −1.2997, −1.2827 | | q17 | 8194560..8195327 | 768 | 0 | 0.89664 ± 0.03091 | same | −1.8545, −1.6757, −1.5867, −1.4399, −1.3598 | | q18 | 8195584..8195839 | 256 | 0 | 0.77329 ± 0.04742 | same | −1.6334, −1.1277, −1.0491, −1.0108, −0.71735 | | q19 | 8196608..8197119 | 512 | 0 | 0.82098 ± 0.04187 | same | −1.4152, −1.092, −1.0867, −1.0069, −0.98158 | | q20 | 8197632..8198143 | 512 | 0 | 0.76964 ± 0.03519 | same | −1.9559, −1.2712, −1.0532, −0.81794, −0.79391 | | q21 | 8198656..8199167 | 512 | **not run** | 0.8888 ± 0.03874 | **not run** | −3.2319, −1.1646, −0.97499, −0.90896, −0.81649 | | q22 | 8199680..8200191 | 512 | **+0.05901 ± 0.02262** | 0.911 ± 0.04341 | 0.852 ± 0.04118 | −2.0212, −1.2498, −0.85765, −0.75866, −0.73928 | When frozen equals START byte for byte, most legs did not run START as a separate real arm (q08, q16, q17, q19, q20). Their START − IB is the frozen − IB figure. On the deterministic engine, frozen − START is 0 per seed by construction. **Pooled real START − IB (*derived (merge)*).** - Method: sum of the per-leg `sum` and `sumsq` values over each lineage's START-vs-IB arms. Seeds are disjoint, so pooling is valid. The inputs are rounded to 5 significant figures, so the results are approximate. - k01: n=3584, **+0.855 ± 0.014** (q08–q15). - k07: n=1472, **+0.849 ± 0.022** (q16–q18). - k06: n=1536, **+0.814 ± 0.023** (q19, q20, q22 START arm; q21 had none). - For comparison, the gate-B references from the START artifacts were +0.793 (k01), +0.836 (k07) and +0.792 (k06). - The k01 pooled value is higher than its reference: +0.855 vs +0.793, about 4 se apart. That gap is unexplained here. - I did not pool the trained candidates, because each leg trained a different candidate. **Retail/arb on the real engine.** Several legs (q09, q10, q12, q13, q15, q19, q22) report real retail/arb *edge* deltas as null. Their reason: the lightweight Rust result exposes total edge, PnL and retail/arb *volumes*, but no edge split. These legs reconstructed arb edge from constant-product states (KIT-B `harness.decompose`): | leg | frozen − IB retail edge / arb edge | reconstruction error (arb volume) | |---|---|---| | q11 | −0.41159 / +1.2291 | 0.0000997 | | q14 | −0.023568 / +0.88928 (vs START: +0.34975 / −0.32125) | 0.000117 | | q16 | −0.2821 / +1.092 | 0.00378 (assertion relaxed) | | q17 | −0.21814 / +1.1148 | 0.00377 | | q18 | −0.33481 / +1.1081 | 0.0000847 | | q20 | +0.1749 / +0.59474 | frozen 0.023256 (check relaxed), IB 0.0000839 | | q21 | +0.29867 / +0.59013 | not stated | Real volume deltas vs IB in Y units: retail rose in every leg, from about +248 to +480. Arb volume differs by lineage: - **k01 and k07:** arb volume fell, by about −45 to −79 (e.g. q08 retail +310.78, arb −78.883). - **k06:** arb volume rose, by about +190 to +210 (e.g. q19 retail +461.65, arb +208.29). - **q22's frozen** reverses k06's arb rise (arb −124.74 vs IB), in line with its replica shift toward arb edge. - **q13's frozen** raises arb volume vs IB (+121.37), unlike its k01 START (−70.923). By-quartile real gains (IB retail volume): the frozen − IB gain is spread fairly evenly across quartiles. Examples: - q08: 0.88 / 0.81 / 0.90 / 0.94. - q11: 0.81 / 0.83 / 0.80 / 0.83. - q12: 1.06 / 0.95 / 0.91 / 0.77. - q17: 0.81 / 0.95 / 0.99 / 0.84. --- ## 8. Gas (`amm_sim_rs.gas_stats()`, real-engine arms) **OOG = 0, revert = 0, other halt = 0** in every arm of every leg. | leg | afterSwap peak: frozen (START) | IB | afterSwap calls (frozen) | |---|---|---|---| | q08 | 235,506 | 234,958 | 5,546,666 | | q09 | 238,467 | 237,117 | 5,597,185 | | q10 | 235,409 (START 235,412) | 234,825 | 2,799,992 | | q11 | 238,241 | 237,663 | 5,591,332 | | q12 | 235,253 | 236,908 | 2,796,089 | | q13 | 235,394 (START 235,412) | 234,825 | 11,114,519 (all arms) | | q14 | 237,461 (START 237,479) | 236,908 | 5,600,290 | | q15 | 235,569 | 237,142 | 5,606,981 | | q16 | 237,748 | 237,068 | 4,841,588 | | q17 | 238,262 | 237,674 | 8,317,390 | | q18 | 237,660 | 237,069 | 2,773,516 | | q19 | 237,513 | 236,947 | 5,572,653 | | q20 | 235,584 | 234,937 | 5,555,137 | | q21 | 237,576 | 236,908 | 5,562,154 | | q22 | 237,613 (START 237,608) | 237,052 | 5,568,637 | - **Highest afterSwap peak:** 238,467 [q09], 6,533 under the 245,000 limit. - **afterInitialize peak:** 243,234 for the START/frozen arm [q09, q10]. It is not under the afterSwap rule, but it is close to the same figure. - **The peak is not a fixed property of the code.** The same START bytecode peaks between 235,253 [q12] and 238,467 [q09] depending on seeds. - **The policy is far from IAD.** The brief notes IAD's peak at 132k. All three lineages here are ~235–238k, near the 245k ceiling. --- ## 9. Process issues each leg reported (kept so nothing is dropped) - **q08**: - The real engine ran at ~1.1 markets/s on 4 CPUs. - Its worker reports a sandbox-protected `.git` copy left at repo-root `scratch_clone` that it could not delete. That may be a workspace hygiene problem for that submission. - **q10**: - Returned trained weights selected on the monitor even though holdout and real were negative. The worker says to keep START as the incumbent. - Its code sha256 `8ae134d7…` is a trained file. It should not be used. - **q13**: The first two segment resumptions restored the optimizer state without the global NumPy RNG state, so an exact replay of the draw stream is not claimed. - **q15**: Two initial generations were discarded because the σ cap was applied in seconds rather than minutes. Their seeds were consumed and never reused. - **q16**: IB real chunk 8193984..8194047 was killed by the 8-minute command limit. It was not rerun (to avoid reusing seeds), so real n = 448. - **q17**: Stopped after 90/92 generations, at ~64 of 114 minutes, to leave real-engine time. Search time was only 28.3 min. - **q20**: - Search stopped ~19 min early because of outside host load. - Frozen real chunks 8197632..8197823 aborted in the reconstruction check after the engine ran, and were **rerun on the same seeds**. The worker says this selected nothing. - IB chunk 8198080 was restarted once after an interrupted background run. - The brief says real seeds are never reused. These reruns are a re-evaluation of the same arm on the same seeds, not new evidence, but they are a deviation. - **q21**: - Real block 8198912..8198975 was rerun once after a timeout with no output. - A 2-seed IB probe on 8800000..8800001 is excluded from all statistics. - The START real arm was skipped for lack of time. - **q22**: Search stopped ~35–40 min before the limit to leave time for freeze, gates, holdout and real runs. **Disagreements between legs:** - **Same START, different paired START − IB figures.** Within a lineage, the real START − IB figures differ across legs (e.g. k01 ranges 0.782 [q15] to 0.922 [q12]). These are different seed blocks, and the spread is about what the se of 0.034–0.056 allows. It is not a contradiction. - **Gate-B retail/arb split by lineage.** In k06 the replica splits START − IB as retail **+**0.275 / arb +0.571. In k01 it is retail **−**0.312 / arb +1.228. These are different START policies, so this is a real difference between lineages, not a disagreement about one policy. - **q15's START hash** (§2): it lists `cb6d9455…` but ran `9253b6f3…`. --- ## 10. Flagged sources The merge brief says that, on re-reading, sources cited by 14 of these results did not hold: - q09, q10, q11, q12, q13, q14, q15, q16, q17, q18, q19, q20 and q22: one source each. - q21: two sources. - q08 was not flagged. **None of the 15 result files contains a URL or a sources list.** I searched every file for `http`. So I cannot tell which page each flag refers to. The likeliest candidates are the START / IB / KIT-B artifact pages on api.imd.fun that the legs hash-check, but that is a guess. How the flag affects this merge: - **Performance, gate and gas figures** in this merge are local measurements the legs report, not quotes from a source. The flag does not touch them directly, but they cannot be independently re-checked here. - **Claims about the input artifacts** carry the flag. These include: - "artifact JSON sha256 equals its URL id" (q16, q19, q20, q21); - the START artifact ids `12606d82…` and `e7b20742…`; - the gate-B real references +0.793, +0.836 and +0.792, read from the START artifacts. Weigh those accordingly. - **The IB code hash `301941829a…`** is the one input claim that the brief itself confirms. --- ## 11. What is missing or could not be established - **No leg reports the real engine's own retail/arb edge split.** Legs either reconstructed it or left it null (§7). - **No real paired frozen − START for q21.** Its replica gain (+0.032) is unconfirmed on the real engine. - **No head-to-head real run between candidates** (q22 vs q14 vs q13 vs q21). The cross-lineage ranking rests only on the shared replica holdout (§6). - **No leg reached the "+0.59 in 910 generations" scale cited from sister goal cc45e1a7.** - The largest gain over START here is q22's: +0.061 monitor, +0.050 holdout, +0.059 real. - q22 ran the most generations (1371), but at pop 16, M 512, in a shorter wall time than the sister goal's run implies. - The brief does not say how the sister goal's "+0.59" is measured, so the two are not directly comparable. - **No leg ran a synthetic stress gate.** All report "not run" or null. - **Lineage k07's START artifact id** is not stated in its files. - **The source of the `cb6d9455…` START hash** recorded inside the k01 START artifact is unresolved (§2). --- ## 12. Next relay (recommendation, from the figures above) 1. **Start from q22's weights.** - Why: best on the shared replica holdout (+0.895 vs IB) and confirmed on the real engine vs its START (+0.059 ± 0.023, n=512). Gas peak 237,613, no OOG. - Files: code `97e538c7302a6d5af28db53408595358ce4fb1085714232110c295c032e2c993`, port `4c2c3549cba6539a3a1b89baf76e107d0da57a713c8c8e3eeabcf35b50503f36`. Both are inside file b45-q22. 2. **Run first:** a single real paired comparison of q22 vs q14 vs q21 on fresh seeds, before choosing between lineages. 3. **Use a fast host if possible.** The legs that gained ran far more generations; q22 managed 1371 at 3,557 markets/s (§4–§5). 4. **Use the decay map that preserves 1−d** (q21 phase 2, q17): 1 − (1−d)·2^(0.03z). Plain START·2^(0.03z) on decays near 1 wrecked q21's phase 1. 5. **Prefer σ0 ≤ 0.3.** σ0 = 0.4 with M = 256 (q12, q18) drifted furthest below START. 6. **Do not use q10's weights.**