{"family":"tiny recurrent neural estimator (six-unit echo-state reservoir) with oracle-table quoter","hypothesis":"Six recurrent neural states can infer latent trade type/price for the supplied table. History helps, but near-oracle screening fails.","status":"complete structural screening; not a leaderboard submission or qualification","provenance":{"sources":[{"url":"https://raw.githubusercontent.com/gtmcknight/amm-sim/main/research/filter-brief.md","sha256":"0ef2200226b68aa58de6aad268442ba09ada710c54b3fb0ec35c77b491f78a4b"},{"url":"https://raw.githubusercontent.com/gtmcknight/amm-sim/main/research/oracle_table.json","sha256":"3e9d1fc8874c6d796d4c26948d486b587f2a6b5610b20fba99923a60954cf4b5"},{"url":"https://raw.githubusercontent.com/gtmcknight/amm-sim/main/research/replica.py","sha256":"d079712fa1f4850ad8337e656e7ee8dbdde806cd4762d597fae50f547ef9c7c4"},{"url":"https://raw.githubusercontent.com/gtmcknight/amm-sim/main/research/setup.sh","sha256":"dc7fa6a1e59f5b043d3954cf68d538318b7affaf5c0db3ca69a1822680f300d4"},{"url":"https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/lib.rs","sha256":"9fa375f51a8e429933795654112b0d6c59764f64f5783784dfa8969f9e1e074c"},{"url":"https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_competition/competition/match.py","sha256":"78915a1aa36341e61c29f333fb18b31a319f70ce3e8bc2f737ba8b003aea5c17"},{"url":"https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_competition/competition/config.py","sha256":"e4b13d9f271fe27e184157904e6e9f5079db7c49ec5c0e1a31b52daeea2c1f9c"},{"url":"https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/simulation/engine.rs","sha256":"b505e05c1ab072855c708747421e382c31223fd65b7ae0402282bb07f6db2e56"}],"simulator_commit":"6b6921f8d463314aa7c96234e1be25a25245f704","forbidden_material_accessed":false,"rs2_or_other_incumbent_code_read":false,"source_hashes":{"experiment.py":"18e77f87a0b8507fd2ad426da57b0425454b06d55071d2fd6218827fdeb86e6f","replica.py":"3aa43e3c50bc876a571c2bc1cc9d50c65cba1076448f9d752eaef4f98c607dad","oracle_table.json":"3e9d1fc8874c6d796d4c26948d486b587f2a6b5610b20fba99923a60954cf4b5","summarize.py":"ad9898d94e4ea1bc314f03f5a3350059c639cafef1db3cea4a93be810ed45d57"},"freeze":{"model_sha256":"5098e6d9a796300807c69da488949d5cbff2ae947d78b342e0e57ff2bf5ca971","frozen_utc":"2026-11-09T16:08:45Z","training_seed_min":20200,"training_seed_max":20327,"training_stages":4,"evaluation_started_at_freeze":false},"source_formatting":"Embedded Python sources formatted via ast.unparse and one-space indentation; non-executable comments/docs stripped. External source hashes refer to fetched originals; source_hashes to embedded files."},"model":{"parameters":{"version":1,"inputs":13,"hidden":6,"readout":25,"input_weights":[[-0.5649870651273287,0.11841358581692785,-0.3983718647351283,-0.019821551699155004,-0.12229832550394082,0.5249848356235761,0.5591056668117856,-0.09179006032537695,0.2115042639910809,0.1759534260461656,-0.059709781012305396,0.5425506928760847,0.5943624927124941],[0.002150720014449048,-0.2828700594035002,0.4395728593837259,-0.49291220169381367,0.5074527120948321,-0.2553968354956474,0.17126436832118608,0.12833294546911045,0.06636673004502258,-0.013239975318125152,0.17864579543492276,0.3895925602252669,0.5653727123785711],[0.5221260767389545,0.2894734565005008,0.2905493518694986,-0.014322660319718516,-0.22808639404021364,0.1683813015319655,0.32074233592051293,0.5368264647533393,-0.19203627817009244,0.5213924234641593,0.5140514106249362,-0.10982611970741457,-0.40615033979072257],[-0.4541352698575264,0.32473868432644526,-0.10584897206364996,0.1858346145651677,0.14644814539956297,0.360524064502587,0.4432961837519259,0.40737366331840585,-0.22587644750936037,-0.038339675835485254,-0.2700272021741136,0.1824859544925974,-0.13810356766508547],[-0.14684319487110803,-0.35826770553875686,-0.43254956201038314,0.32091307347833864,-0.4073743016671175,-0.07024375034219799,-0.3450376238955782,0.06162467211213607,0.39229347903408307,0.4848447884642092,0.330106986292966,-0.5795440421722707,0.17327671815353807],[0.2744787799080627,0.3998838771598111,0.5553766202163147,0.4435413939263392,0.22118312659971218,-0.3352550948156651,-0.02528423229554,-0.4619583053136104,0.22297978705403632,0.0736413528878791,-0.5910924141975943,0.36631823142983355,-0.048272558952332734]],"hidden_bias":[0.07669815288929882,0.13463793224850001,0.07695041054264629,-0.13285124885479954,-0.1654080215701897,0.013707346054861846],"recurrent_weights":[[0.45,0.15,0.0,0.0,0.0,0.0],[0.0,0.45,0.15,0.0,0.0,0.0],[0.0,0.0,0.45,0.15,0.0,0.0],[0.0,0.0,0.0,0.45,0.15,0.0],[0.0,0.0,0.0,0.0,0.45,0.15],[0.15,0.0,0.0,0.0,0.0,0.45]],"alpha":[1.0,0.7,0.45,0.25,0.12,0.05],"weights":[[-0.8600716224147994,-0.327520142338464,-1.0335992902829598,1.3285307707936982,0.1948969678901977,0.24043320146971697,0.6537843427249885,0.2130925479883742,-0.24993835036682982,0.10233003133630132,-2.040826608290591,-0.10525774231903787,-0.20542719390388384,-0.0697308863913629,0.06908914153473275,0.5777961123145525,-0.4101395762700194,0.9759724755077147,1.681562503832553,0.3605045662110111,-0.20185610703441798,0.5064858639397465,-0.007443081818222919,0.6302948615178546,-0.16465404708088544],[0.8865617196047401,-0.1489553676763994,0.025855858509415953,0.05896829121787944,0.002135883415367399,-0.7260805033336056,-0.8294146185453446,-0.05402420209813471,0.0209588671629363,0.003237462010187539,-0.10953838030588145,0.013587971235831392,0.01213180841008698,-0.0142378136674116,-0.033346672542884134,-0.07585552096716107,-0.11982934215692408,0.19831195273158653,0.013829516703914019,-0.003122806280403681,-0.11647116651708476,-0.08403431657608534,-0.015145142308669736,-0.07562887993902466,0.1569065525280674],[-0.2093679706507795,3.2859613605643996,20.740177488432646,2.8491396326215197,-23.137346139604542,5.22280210208671,7.7215840555030315,21.4530290434865,21.029025797385145,-23.01883648619218,7.475973640706122,-0.16196081069530788,-0.24718099827660417,5.291263795277503,-10.510505049114373,-8.23317779403357,0.20749799688966222,-5.461910941449044,2.0824422487268457,2.195408700095549,2.2117365777040594,11.78849119503894,-1.628071281344394,1.616809491184792,-2.970640982332412]]},"constants":{"normalization":0.003,"initial_fees":0.0035,"ridge":0.001,"reservoir_rng_seed":62871,"price_correction_bound_normalized":8.0,"interval_allowance_bps":3.0,"fee_bounds":[0.0,0.1],"sd_floor_bps":1.5,"sd_ceiling_bps":90.0,"table":"Full supplied oracle_table.json is in runnable_source."},"readout":"Fit 75 linear readout coefficients for log-price residual, arb probability and residual second moment over 25 features. Reservoir remains fixed.","price_update":"Conditional-arb candidate from own spot and previous fee; constrain estimated p between candidate and prior estimate plus 3bps. Repeats retain p and set q=0; first-trade q is learned.","quote":"Supplied displacement table driven by estimated p and soft arb probability q; table never retuned.","uncertainty":"Moment-derived diagnostic; not calibrated or used to quote.","feature_definition":"Exact 13-element u and 25-element z in Recurrent.after_swap. All constants and feature clipping are embedded in source."},"experiment":{"engine":"Provided replica run() unchanged semantically; embedded source strips comments/docs and unused OracleQuote/OracleCompete classes.","train_seeds":{"first":20200,"last_inclusive":20327,"count":128},"evaluation_seeds":{"first":10000,"last_inclusive":10255,"count":256},"ablation_seeds":{"first":10000,"last_inclusive":10063,"count":64},"n_steps_per_seed":10000,"prohibited_seeds_used":false,"config":{"initial_x":100.0,"initial_y":10000.0,"initial_p":100.0,"K":1000000.0,"drift_mu":0.0,"dt":1.0,"rival_fixed_fee":0.003,"retail_size_log_sigma":1.2,"retail_buy_probability":0.5,"per_seed_sampler":"random.Random(10000000+seed), draws in order: uniform(19,21) size_mean; uniform(.6,1) lambda; uniform(.000882,.001008) sigma.","price_rng":"random.Random(seed); Gaussian GBM increments, drift=-sigma*sigma/2.","retail_rng":"random.Random(seed+1); Poisson-product count, lognormvariate(log(size_mean)-.72,1.2), buy uniform. Exact calls in replica.py.","engine_difference":"These are replica RNG streams/config draws, not MatchRunner numpy.default_rng(seed) or Rust PCG streams. Never interpret these as real-engine seed results."},"arms":"Separate own pool vs fixed30 rival, paired common exogenous RNG. Oracle sees true p and true own arb flag. All own arms initialize at35bps.","training":"Four fixed stages: stage0 collects under fixed35; stages1-3 collect under the previous fitted model. Each uses all 128 allowed training seeds and refits ridge on current-stage data only. Final stage3 weights frozen before any evaluation. Earlier failed architecture used only these same training seeds.","training_reports_before_each_fit":{"columns":["stage","count","behavior_score_mean","behavior_rms_bps","behavior_brier","seconds"],"rows":[[0,1264720,351.13253550836276,24.764110414637393,0.1574496407089613,50.962280373089015],[1,541591,407.45936945727055,109.72886150618075,0.38304876712706026,28.223024236038327],[2,1274829,482.47218291054287,32.494606132196154,0.14913931688049756,61.60036895191297],[3,961215,457.2332386992387,64.0876450516372,0.17215864388206054,47.09267682628706]]}},"metrics":{"model":{"n":256,"mean":481.0423891098113,"se":5.289765087970447,"ci95":[470.67444953738925,491.4103286822334]},"oracle":{"n":256,"mean":535.216487745992,"se":5.834284086752761,"ci95":[523.7812909359566,546.6516845560275]},"fixed35":{"n":256,"mean":349.2464435291094,"se":3.3514472898394065,"ci95":[342.67760684102416,355.81528021719464]},"oracle_deficit":{"n":256,"mean":54.174098636180744,"se":1.207923349950975,"ci95":[51.806568870276834,56.541628402084655]},"gain_vs_fixed35":{"n":256,"mean":131.79594558070195,"se":2.4205493999720766,"ci95":[127.05166875675668,136.54022240464724]},"event_rms_bps":32.474601020427095,"event_brier":0.15333467776556248,"own_callbacks":2515268,"split_means":{"model":{"retail_edge":560.9256647792247,"arb_edge":-79.88327566941348,"retail_y":73093.55201083038,"arb_y":28864.680560998488},"oracle":{"retail_edge":566.7133336082994,"arb_edge":-31.496845862307328,"retail_y":76274.98573644714,"arb_y":23965.729903296793},"fixed35":{"retail_edge":564.7301763259644,"arb_edge":-215.48373279685492,"retail_y":70558.56404947276,"arb_y":35413.881632622804}},"trade_type_and_uncertainty":{"first_at_timestamp_callbacks":1665927,"first_at_timestamp_arbs":849662,"first_at_timestamp_retail":816265,"repeated_timestamp_callbacks":849341,"repeated_timestamp_arbs":0,"first_at_timestamp_brier":0.23150942884894163,"estimated_95pct_price_interval_coverage":0.4174787736336645,"mean_estimated_sd_bps":25.85984446149445}},"metric_definitions":{"score":"Sum of per-fill edge in Y, not terminal PnL. Retail+arb components equal total edge up to summation rounding.","rms":"sqrt(sum((10000*log(estimated p/true p))^2)/own callbacks), post-callback, event weighted. No between-callback RMS.","paired":"oracle_deficit = oracle-model; gain_vs_fixed35 = model-fixed35. SE = sample SD of paired seed differences / sqrt(n). CI = mean +/-1.96 SE, no multiplicity correction.","volumes":"Gross amountY input for buys of X, amountY output for sells; exactly replica rv/av.","per_seed_precision":"Decode integers with column scales: edges and RMS .01, Y volumes 1, Brier .00001. Counts exact. Summary metrics use unrounded results. Total edge = retail_edge+arb_edge; rounding error <=.01 for decoded total."},"per_seed":{"columns":["seed","model_retail_edge","model_arb_edge","model_retail_y","model_arb_y","oracle_retail_edge","oracle_arb_edge","oracle_retail_y","oracle_arb_y","fixed35_retail_edge","fixed35_arb_edge","fixed35_retail_y","fixed35_arb_y","model_rms_bps","model_callbacks","model_brier"],"rows":[[10000,46175,5995,59921,25172,46543,1974,62676,20750,45748,17696,56637,29944,3078,8154,16192],[10001,59327,7943,85271,31915,59835,2576,88626,26003,59852,19367,81701,39289,3271,11263,14814],[10002,55464,6233,66780,28627,55545,2749,69313,23992,55491,23235,64429,34624,3066,9132,15835],[10003,59204,8208,79101,31103,59942,2577,82803,25936,60063,22100,76714,38056,3307,10498,14724],[10004,54045,7721,69931,28312,54756,2298,73739,23809,54182,19939,68425,34492,3331,9339,15661],[10005,54836,7236,70449,28365,55098,2325,73537,23415,55367,21173,68161,35378,3251,9532,15871],[10006,50351,5189,72123,27084,51014,2251,75295,22988,50533,16273,69549,33721,2979,9795,15240],[10007,54615,6925,74300,28865,55118,2397,77242,23735,54639,19400,71613,34766,3228,10057,15714],[10008,68377,9634,92288,34025,69207,2796,96183,27361,68587,24899,88943,42955,3370,11372,14744],[10009,67648,7681,89302,33306,68156,2783,92582,27195,68688,25542,86463,42947,3254,11473,14745],[10010,49036,4965,72914,27267,50159,2204,76559,22846,49520,15230,70013,34185,3048,10268,15005],[10011,38321,4185,56571,22259,38894,1741,58837,18499,38390,11774,54557,27122,2980,8020,16510],[10012,47284,5099,71872,27223,48125,2224,75283,22752,47778,14521,68511,33384,3053,9913,15449],[10013,41717,6073,55423,22651,42048,1764,58204,18876,41936,15409,53199,27322,3208,7933,16325],[10014,73230,14937,84208,32026,73524,3239,87673,26631,73499,32810,81111,40179,3634,10648,15284],[10015,64570,8397,88848,32826,66094,2859,93503,27734,65200,23555,85750,41231,3280,11133,14458],[10016,63415,18122,68587,28762,63545,6612,71951,23389,63391,30256,66433,33853,4429,9206,15014],[10017,51502,5491,69836,28155,51883,2433,73103,23875,51808,18412,67617,35188,3034,9684,15625],[10018,49961,4877,67048,27418,50476,2259,70468,23390,50131,17559,64985,33841,3033,8972,15675],[10019,47135,6877,59207,24724,47496,1949,62125,20407,46975,18751,57063,29555,3206,8080,16509],[10020,51023,6653,65309,27458,52104,2289,68459,23206,51334,19756,63343,32655,3208,8870,15655],[10021,42546,4458,54545,22873,43132,1790,57695,19503,42761,17092,52305,26874,2896,7982,16059],[10022,45389,5858,59069,24057,46187,1982,61812,20259,45665,17518,57126,29516,3146,8347,16017],[10023,66005,6081,84486,31491,66430,2900,87929,26226,66665,26275,81262,39414,2992,10457,14523],[10024,49817,6668,70346,28418,50696,2329,73872,23743,49740,16736,67353,33705,3207,9996,15319],[10025,46201,4727,60105,24104,46813,2047,62443,20480,46390,18339,57560,28940,3000,8872,16042],[10026,35690,3668,52130,21423,36463,1724,54624,18425,35682,11411,49668,25399,2845,8102,16440],[10027,56763,8312,70961,28948,57439,2469,73912,24197,57553,22839,68490,36129,3482,9663,15754],[10028,55469,10674,66283,27606,55483,2706,68636,23007,55759,23390,64249,34104,3533,8798,15987],[10029,45844,4703,69681,25548,46482,2023,72760,21296,45258,13037,66710,30476,3033,9818,15529],[10030,61358,6446,86283,32155,62556,2774,89760,27047,61630,21045,83322,40268,3192,11124,14671],[10031,35280,3705,54928,22867,36174,1818,58012,19671,35021,10015,52775,26386,2930,8232,15887],[10032,66382,9078,82602,32232,66471,2677,86665,26072,66713,26319,81578,40803,3544,10235,15138],[10033,55502,5794,79371,30364,56137,2491,82155,25100,55554,17517,77059,37553,3063,10564,14995],[10034,58104,7973,80975,29977,59085,2432,84708,24619,58545,20149,78120,36310,3333,10850,15028],[10035,65807,7207,91213,33972,66460,2845,95096,27580,66889,23764,87641,42782,3158,11689,14164],[10036,56671,7298,78773,30412,57113,2451,82296,24462,56820,19526,76377,36564,3263,10502,15036],[10037,45901,5229,64084,26151,46613,2094,67464,21411,46383,15750,61552,31753,3098,8989,15722],[10038,64152,8151,89017,33351,64759,2699,92527,26775,64633,22002,86096,41297,3230,11899,14010],[10039,61287,5830,75801,29231,61996,2938,79367,24324,61690,25377,72914,36594,3070,10291,15382],[10040,62713,6119,87889,32299,63692,2695,91584,27150,64256,21722,85106,41457,3124,11598,14480],[10041,65328,7179,83706,31691,65778,2551,86754,25890,65930,24949,81447,39985,3178,10858,14813],[10042,73640,11576,90849,35374,74097,2976,94008,28685,74579,30300,88308,44462,3413,11597,14734],[10043,65798,9811,85496,32000,66680,2754,89318,26457,66368,25310,82396,40297,3678,10981,15054],[10044,43267,5769,59095,24099,44149,1960,61837,20568,43984,15522,57081,29692,3015,8088,15845],[10045,39977,4384,58977,24268,40824,2014,61898,21025,40212,12507,56342,28964,3006,8632,16267],[10046,44862,5192,66561,27721,45745,2326,69989,23412,45157,14036,63816,32888,3033,9629,15300],[10047,61893,7167,88716,33298,62758,2795,92298,27513,62753,20135,86104,42191,3134,11496,14265],[10048,51080,5068,68844,26639,51967,2246,71937,22579,51661,19060,66398,33341,2946,9600,15645],[10049,39817,5513,55449,22077,40330,1738,57914,18882,39862,13553,53413,26904,3054,8105,15720],[10050,38955,5061,55686,23057,39726,1871,58404,19888,38810,12806,53566,26813,3054,8399,16400],[10051,43906,6081,58844,23829,44466,1993,61020,20861,43815,15685,56648,29503,3239,8107,16401],[10052,44541,5257,66149,25676,45252,2098,69599,22038,44434,14107,63198,30494,3010,9586,15238],[10053,55990,6031,70850,28731,56155,2354,74075,23256,56269,22614,67892,34651,3191,9587,15647],[10054,46515,8054,62393,25390,46833,2401,64443,21140,46645,17637,59227,30041,3211,8815,15387],[10055,73465,7685,92596,35621,74136,3062,96634,29556,74500,29242,89944,44630,3210,11799,14663],[10056,60562,6352,81468,31020,60856,2510,84401,25291,61423,21659,79321,39597,3156,10389,15078],[10057,52725,7067,67063,27063,53281,2198,69677,22302,53033,20861,64241,33169,3059,9263,15513],[10058,45386,5419,56574,23176,45960,1953,59355,20169,45670,18764,54009,28579,3079,8442,16540],[10059,53085,8571,69873,29506,53418,2474,72848,24404,52995,19712,67405,35008,3516,9471,15687],[10060,209081,125333,89071,35979,209779,116901,92365,30249,208880,166944,85905,43947,3429,11205,14844],[10061,57890,6671,80014,29289,58703,2413,83912,24669,58040,20146,77150,37136,3016,10684,14787],[10062,62980,6402,87493,31665,63667,2570,90987,26017,63324,21712,84357,39871,3169,11247,14913],[10063,44109,6636,61896,24714,44866,1932,64900,20338,44605,15480,59099,29615,3249,8791,15802],[10064,68679,7178,91867,34024,69176,2965,95375,27644,69530,25271,89153,43780,3167,11455,14374],[10065,60728,7638,79853,29840,61199,2565,83054,25086,61834,23616,76601,38050,3189,10411,15049],[10066,50241,5510,71733,27055,50871,2251,74210,22714,50735,17204,68484,34123,3052,9537,15231],[10067,66034,9354,77918,31110,66220,2719,80613,25592,66745,28196,75537,39160,3445,9997,15446],[10068,51728,7205,57471,25881,52702,2206,61435,22259,52585,24024,56364,31392,3298,8015,16263],[10069,64419,11126,78405,31127,64963,2646,81739,25254,64603,26688,76169,37837,3498,10367,14811],[10070,43031,6480,56935,25065,43448,2084,59110,21204,43038,16108,54363,29412,3176,8036,16260],[10071,45101,6624,60765,24932,45718,1986,63530,20212,45277,16896,58035,29920,3311,8597,15841],[10072,64422,15188,74843,28261,65122,4534,78127,23887,64588,28889,72267,34999,3657,9944,15715],[10073,58711,8436,78604,30769,59259,2486,81978,25489,58999,21117,76104,37560,3300,10255,15258],[10074,55345,8518,72566,28764,55680,2372,74945,23395,55582,21450,69477,34812,3444,9677,15121],[10075,58012,8155,76628,30320,58722,2480,80848,24748,58558,21821,74004,37200,3376,10582,15002],[10076,54848,6220,75890,29477,55545,2459,79544,24536,56112,19818,73002,36429,3094,10233,15084],[10077,44295,5899,64322,25040,45009,1975,67501,20810,44463,14321,61995,29781,3158,9273,15811],[10078,64185,6073,86700,31169,64953,2745,90459,25916,65609,23917,83678,40338,3077,10956,14649],[10079,68103,7948,86861,33900,67976,2915,89866,27639,68259,26461,83966,42674,3252,11112,14543],[10080,50624,7150,67253,28258,51178,2371,70169,23522,51036,19091,65200,33656,3355,9199,15727],[10081,59483,10997,74286,30965,59350,2608,76711,24566,59622,23655,71278,36424,3530,9810,14963],[10082,58391,7579,73871,28956,59176,2502,76932,24102,59293,23402,72028,36997,3294,9896,15275],[10083,48466,4780,70796,27151,48965,2243,73591,23243,48559,14796,68428,33351,2893,9879,15122],[10084,49271,5624,66398,26515,49738,2117,69539,21897,49947,18129,64307,32591,3135,8802,15729],[10085,47240,6065,61268,26059,47649,2078,63971,21521,47297,18125,58767,30378,3138,8684,15404],[10086,59533,7565,81998,31907,59991,2607,84818,25517,59913,20994,78969,39253,3280,10896,14692],[10087,58976,5359,83818,29800,59654,2457,87790,24983,59196,19717,80838,37374,3028,11225,14591],[10088,45822,4944,64254,26249,46467,2219,67514,22278,46021,15478,61918,32009,3084,8856,16037],[10089,42270,5351,57592,24230,43516,2026,61437,20855,42892,15166,55953,29086,3038,8041,15931],[10090,60924,7724,84439,32206,61569,2801,88385,26948,61800,21825,81230,39945,3271,11331,14794],[10091,50120,5280,65626,27180,51075,2389,68349,22956,50757,19865,63126,32608,3010,9213,15380],[10092,58095,8356,73124,29417,58148,2374,75795,23933,58243,23190,70186,36026,3367,9636,15743],[10093,68706,7546,90438,33148,69915,3576,93751,27633,70170,27195,86986,42762,3135,11559,14602],[10094,50051,6964,66657,28159,50436,2373,69560,23973,50280,18165,64522,33409,3282,9141,15785],[10095,61608,7499,82679,31961,62498,2704,86225,26286,62237,22691,79814,40018,3293,10725,14650],[10096,51225,5248,65024,25825,51359,2150,67389,22189,51661,19809,62969,32690,3075,8816,15364],[10097,53011,6494,70362,26891,53444,2166,73627,21850,53486,19879,67948,33496,3191,9641,15598],[10098,52109,5982,74022,28048,52588,2262,77057,23409,52004,16974,70853,34214,3074,10380,14902],[10099,48306,5085,69255,25850,49143,2097,72537,22151,48712,15272,67213,32606,2912,9250,15601],[10100,46654,5345,59591,25757,46917,2506,62528,21210,46606,18223,57357,30818,3048,8494,16339],[10101,55303,5578,73119,28399,56053,2358,76583,23933,55776,20545,71017,34971,3052,9758,15157],[10102,76475,10918,95181,35589,77158,3436,98773,29531,77783,31121,93075,45918,3616,11945,14155],[10103,77104,10891,90974,34900,77089,2934,93945,27808,77822,33489,88092,44488,3433,11342,15053],[10104,73436,9101,94680,36644,73345,3029,97837,29156,73499,27478,91809,45363,3268,11771,14378],[10105,48700,7135,61013,25598,49369,2144,63972,22505,48631,19268,58569,31030,3245,8680,15823],[10106,45023,8948,56939,24271,45028,2073,59645,19830,44903,17678,55022,29145,3620,8004,16702],[10107,51064,6121,70035,28267,51542,2345,72704,23672,51556,18086,67025,34119,3075,9669,15141],[10108,55795,9494,72950,29470,56194,2646,76029,24763,55668,21495,69724,34820,3265,10099,15302],[10109,77795,9711,92915,34579,78521,4637,97074,28432,78898,34268,89896,44484,3317,11452,14905],[10110,59568,7279,86772,31777,59891,2594,89949,25753,60052,19523,82738,39131,3139,11777,14268],[10111,42327,5585,59481,25949,42779,2149,61770,21909,42440,13991,56925,30752,3116,8499,16291],[10112,48360,6378,63799,26929,48623,2217,65699,22299,48076,17670,61205,31765,3168,8605,15997],[10113,45354,6870,60431,24633,45617,1964,62787,20343,45266,16760,57689,29278,3254,8599,16302],[10114,55374,6547,79137,30175,55896,2387,82134,24579,56011,18469,75976,36594,3208,10941,14804],[10115,68802,9295,90278,34109,69240,2924,94158,28539,69425,25360,88071,43556,3380,11383,14202],[10116,54277,6673,72214,28165,54964,2277,75363,23337,54254,19504,70191,34804,3164,9243,15744],[10117,42937,4713,59736,24460,43302,1997,62164,20894,43055,14617,57638,30125,2979,8298,16268],[10118,43908,4843,59243,25362,44583,2131,62259,21920,44420,16056,57306,30519,2937,8223,16088],[10119,43090,5009,60940,25558,43795,2100,63497,21587,43235,14619,58094,30232,3008,8342,15867],[10120,57054,6578,80780,31388,57901,2557,84471,25697,57728,19108,78289,38282,3214,10759,14927],[10121,55560,7130,77040,30443,56180,2511,81215,25202,55845,18688,74402,36444,3265,10584,15091],[10122,61315,7309,84262,32529,61496,2703,87701,25884,61666,21435,81627,39829,3210,11068,14485],[10123,52466,5908,69553,28463,53057,2386,72650,24285,52675,19631,66812,34876,3034,9111,15526],[10124,54662,7413,71078,29474,55850,2466,75113,24610,55517,21384,69660,35678,3272,9629,15222],[10125,46602,5224,68665,26497,47765,2233,72282,23039,46807,14816,65955,33042,3008,9258,15688],[10126,47300,5152,62964,24468,48121,2051,66048,20326,47516,17934,60349,29772,3054,8924,16229],[10127,50827,5611,70092,27342,51880,2304,73636,23522,51851,18579,67902,33734,3049,9905,15027],[10128,75997,8028,94611,35144,76939,3686,98182,29572,76968,30695,92522,46165,3247,11799,14417],[10129,54916,6971,74940,29762,55990,2460,78740,24589,56060,19938,73283,36433,3233,9959,15519],[10130,47935,5471,66090,26495,48333,2162,69078,22131,48209,16746,63741,31856,3197,9309,15588],[10131,51848,7730,65952,26654,52259,2291,68306,22362,51636,20232,63141,32356,3356,8979,15751],[10132,52419,8724,63758,26616,52556,2196,66053,21957,52513,21483,61114,32246,3198,8728,15994],[10133,65123,10725,83054,31594,65709,2559,86473,25991,65729,25778,80413,38826,3520,10761,15032],[10134,55310,7035,74751,30965,56246,2623,78212,25530,55697,19999,72211,37287,3159,10307,15160],[10135,47920,6001,67510,27199,48207,2253,70066,22997,48082,15849,64990,33055,3048,9480,15805],[10136,63959,8809,86831,31841,64697,2664,90949,25917,65019,23614,83991,40729,3354,11305,15075],[10137,64084,8403,84097,31986,64867,2598,87950,26091,65126,24719,81076,40625,3374,10585,14807],[10138,51896,6359,65652,27326,52473,2337,68392,23183,52078,20964,62751,32779,3114,9142,15857],[10139,48361,5909,66189,26166,48901,2145,69184,22078,48572,17119,64019,32143,3083,9053,15588],[10140,57624,8476,77114,29670,57640,2355,79959,24331,58082,20969,74324,36886,3248,10123,14889],[10141,60810,7227,76705,29663,61356,3290,79716,24308,61005,24095,73905,36135,3133,10119,15382],[10142,65123,7186,90215,34027,65700,2875,93782,28066,66109,22980,87232,42934,3161,11506,14766],[10143,49055,7530,63834,25369,49200,2055,66033,21128,49166,18702,61053,31620,3275,8355,15571],[10144,45413,5298,64176,25615,46201,2120,67258,21702,45669,14882,61992,30818,3088,9035,15902],[10145,50009,7652,64854,26098,50359,2199,68117,22496,50100,18807,62600,31886,3240,9208,16105],[10146,102627,44293,84119,34195,103039,26460,87524,28423,103275,62195,81982,42204,6075,10964,14953],[10147,48789,5297,66620,27352,49165,2206,69300,22773,48972,16828,64464,33444,3079,9223,15664],[10148,71636,9727,86914,33536,72096,2861,90018,27081,72241,29534,84337,41863,3327,10522,15005],[10149,54117,5828,74351,30044,55250,2887,77920,25708,54711,19797,71824,36483,3052,10035,15162],[10150,60324,6145,81291,31581,61502,2577,84704,25602,60855,22332,78329,37716,3088,10946,14497],[10151,49444,7162,66758,26685,49579,2124,69775,22187,49196,17697,64018,31869,3272,9343,16171],[10152,42986,5394,58847,25443,43822,2011,61647,21430,42763,14788,56190,29899,3023,8306,16184],[10153,57210,8716,78242,30339,57966,2373,82124,24365,57561,20547,75119,36378,3430,10581,15097],[10154,50919,6618,69191,26465,51199,2105,72437,22046,50922,18253,66485,32034,3189,9524,14915],[10155,49089,7824,65841,25349,49914,2057,69513,21127,49399,17893,63785,30778,3320,9374,15755],[10156,55828,5819,66681,26762,56542,3131,69940,22959,56171,24394,64285,32853,2998,9228,15757],[10157,55076,8118,72944,27689,55943,2144,76479,22667,55141,20132,70752,33870,3329,9377,15681],[10158,45578,5919,60094,26181,45949,2163,62653,22146,46113,17409,58067,31630,3177,8127,16318],[10159,45814,5115,61894,26622,46122,2182,64757,22390,45642,16004,59615,31392,3044,8900,15694],[10160,44107,6307,59976,25991,44391,2130,62739,22033,43995,15518,57643,30425,3091,8411,15898],[10161,47828,6825,64500,27704,48119,2257,66903,23046,47973,17340,61635,33101,3237,8926,16315],[10162,74421,9042,95826,34703,75071,2899,99413,28287,75953,29557,93297,45870,3345,11452,14178],[10163,68702,7593,92689,33893,69812,2898,96491,28434,69855,25583,89466,43895,3181,11703,14439],[10164,79606,16849,82205,33007,79790,11365,84637,27140,79701,40759,78551,40241,3272,10637,14848],[10165,45305,4666,65427,25436,46338,2159,69230,21618,45819,14423,64096,31749,3073,9234,16151],[10166,43635,5640,57882,25539,43955,2002,60229,20327,43683,16083,55485,29812,3100,8292,16107],[10167,51253,5769,65438,27102,51832,2408,68553,22548,51528,20149,63012,32226,3163,9352,15365],[10168,73696,17447,69043,29517,74347,11623,72373,25180,73873,40902,66401,35371,3447,9334,16022],[10169,59270,6264,82302,30131,59662,2374,86227,24857,59598,20257,79586,38354,3148,10584,14917],[10170,40348,4094,60847,23845,40969,1999,63580,20750,40655,12330,58067,28925,2909,8800,15651],[10171,59252,9590,71287,30683,59295,2453,73966,24505,59602,24931,68930,36337,3454,9442,15403],[10172,71017,7219,92750,34149,71827,3133,96021,27825,72497,27945,89564,44345,3130,11492,14836],[10173,41040,6007,54406,22634,41684,1836,57173,19102,41241,15373,52342,27162,3158,7995,16668],[10174,56270,6265,80654,31018,56915,2510,84193,25323,56620,18410,77112,37344,3171,10804,14823],[10175,53039,8563,70251,27090,52759,2241,73421,22900,52594,18865,68161,33742,3262,9383,15436],[10176,46395,5555,64530,26585,47067,2152,68039,22221,46742,15847,63152,31440,3171,8970,15864],[10177,71971,11418,81153,31534,72355,6740,84007,25567,72314,33274,79024,38670,3313,10653,14954],[10178,68999,7794,88388,33185,69364,2943,92440,26773,69470,27418,85336,41811,3258,10967,14724],[10179,39703,5813,55759,24381,40256,2013,58040,20551,39722,13491,53484,28595,3162,8125,16426],[10180,60751,6816,79435,32457,61376,2801,82864,27032,61887,23773,77159,39671,3176,10422,15444],[10181,47821,5915,67589,27777,48657,2259,71358,23215,48045,16185,65059,32559,3079,9648,15689],[10182,59077,5517,81656,31888,60124,2607,85531,26443,60001,20393,79420,39849,3019,10554,15294],[10183,65865,11035,83495,32470,66419,3109,86635,26557,66470,26336,80689,40857,3469,10858,14817],[10184,54987,12180,63917,27120,55468,3211,66433,22992,55103,24527,61622,32395,3503,8663,16345],[10185,57034,9306,75057,29978,57564,3001,78506,24521,56628,21601,72278,34875,3441,10230,15262],[10186,59781,7582,69984,29496,60164,2618,73215,24722,59571,25804,67549,35767,3219,9601,15927],[10187,58786,12050,74089,28392,58727,3561,76597,23534,58722,23544,71820,34667,3464,9558,15599],[10188,55235,7030,76498,29994,55775,2435,79826,24323,55419,18890,74180,37239,3184,10144,15064],[10189,74656,9462,91616,34360,74915,3158,94951,28257,75727,31696,88996,43697,3341,11605,14583],[10190,68241,13261,83415,32940,69101,2932,86593,26388,69490,29232,81128,40644,3595,10831,14887],[10191,69332,9369,85932,32038,69480,3233,89216,26095,70214,28633,83371,40868,3446,11152,14669],[10192,69444,8435,90193,34320,69375,2788,93250,26495,70045,27273,86509,42304,3321,11613,14698],[10193,60569,7665,83029,31476,60868,2534,86070,26115,60518,21050,79808,38975,3084,11180,14854],[10194,53279,5445,77231,30256,53752,2539,80970,25249,53188,17069,74223,36208,3061,10438,14843],[10195,57929,8485,77882,30502,58004,2552,81176,25364,58190,20911,75073,37388,3273,10509,15092],[10196,60722,7452,82714,31806,61476,2763,86662,26572,61263,21950,80233,39824,3274,11108,15013],[10197,45599,6263,61990,26380,46441,2105,65132,21998,45942,16312,59588,31450,3163,8404,16463],[10198,58213,9773,71867,29260,58583,2743,75027,24608,58419,23774,69687,35321,3625,9994,15252],[10199,51155,11283,61702,26673,51140,2771,64109,21491,50874,21311,59192,30921,3508,8539,16377],[10200,58234,8218,79757,30431,58822,2514,82791,24875,58347,20327,77101,37012,3332,10684,15190],[10201,49945,6832,71464,27044,50345,2104,74911,22273,50073,15843,68893,33258,3215,9596,15605],[10202,59028,6913,77797,30386,59630,2618,81157,24139,58925,21826,75617,37293,3296,10364,15449],[10203,64050,8833,84233,32720,64618,2772,87694,27106,64383,24232,81002,40141,3246,10621,14690],[10204,47864,5597,65217,27464,47965,2295,67522,23083,47586,16268,62647,32597,3061,8968,15610],[10205,43329,5902,61713,24586,44052,1988,64878,20969,43297,14520,59112,29089,3250,8977,15993],[10206,54329,5495,75482,28361,54625,2262,78877,23134,54904,18443,73439,35637,3003,9899,15040],[10207,66120,7287,85829,34007,66689,2956,88922,27905,67094,25572,83248,42831,3235,10877,14927],[10208,69376,17516,67320,27912,70263,7304,70364,23760,69550,37264,65399,33868,3767,9073,15872],[10209,57572,11435,71745,27955,58035,2630,74508,23714,57913,23125,69306,35400,3542,9320,15445],[10210,44209,5919,60713,24751,44654,1939,63716,20521,44796,15534,58780,30199,3115,8268,16313],[10211,45266,5908,59865,23911,46113,1944,63041,20305,45266,16787,57751,28976,3114,8611,15852],[10212,64384,6967,84835,32521,65774,2752,90156,26896,66104,24201,83897,41580,3187,10711,14950],[10213,59644,8027,80991,30614,60932,2544,84550,25221,60788,22320,78220,37817,3255,11024,14995],[10214,59910,6174,87612,31692,60525,2667,91528,26328,60102,18874,84371,39905,3079,11375,14420],[10215,47701,5892,63129,26369,47955,2214,65390,22097,48017,17771,60700,32165,3164,9219,15793],[10216,47177,5768,58150,26219,47659,2172,60782,21466,47743,19548,56153,31274,3072,8226,16043],[10217,69762,9281,90643,35828,69964,3105,93444,28922,69995,26727,87702,44801,3297,11511,14680],[10218,65708,8388,87111,33507,66131,2764,90199,27477,66742,24652,84372,41512,3206,11698,14523],[10219,54476,5769,79834,30612,54981,2487,83955,24903,54716,17002,76588,37161,3119,10751,15056],[10220,55007,14712,60858,27494,55103,3256,63406,21918,54911,25542,58518,32104,3914,8216,16520],[10221,56424,12927,64302,29038,56710,3013,66802,24014,57146,25810,62560,34804,3741,8582,16187],[10222,64222,9162,79712,32153,64879,2707,83210,26171,64627,26469,77034,40012,3333,10050,15409],[10223,68616,7200,82906,31418,69575,3171,86475,26605,69244,29453,80259,39569,3167,11155,14965],[10224,44926,4490,61941,24385,45902,2213,65273,20352,45164,16160,59507,29044,2992,8912,15734],[10225,50036,6875,69939,28014,50679,2269,73050,23003,50119,17036,67418,33332,3203,9986,15630],[10226,72836,7389,89106,32682,73749,2971,92627,27723,73915,30697,86442,41952,3113,10998,14368],[10227,44909,4474,61164,23938,46657,1980,64908,20656,45969,16823,59134,29431,2984,8592,16016],[10228,55600,6015,80328,28828,56620,2395,83534,24072,55963,18151,77504,36402,3151,10764,14738],[10229,44362,4670,67132,25021,45429,2061,70285,21562,44274,13576,63798,30748,2892,9406,15459],[10230,65674,8527,89921,33535,66257,2861,93846,27758,66558,23269,87536,43048,3340,11075,14842],[10231,72071,8096,87516,34386,72670,2995,90642,28098,73137,30374,85486,43364,3304,11139,14562],[10232,51629,7563,68000,26940,52577,2315,72285,22898,52479,19644,66921,33425,3405,9528,15667],[10233,46588,4917,64632,26719,47040,2167,67777,22529,46624,15093,63125,32166,3006,8813,16250],[10234,56418,9065,71224,29068,56620,2630,74716,24415,57109,21979,69393,35677,3563,9679,15341],[10235,69739,9760,82504,32536,69317,3004,85023,25803,70276,30790,79650,40523,3403,10244,15218],[10236,46214,5282,67737,25974,46633,2069,70210,21228,46694,14857,64918,31569,3040,9617,15741],[10237,67265,9291,84041,34159,67389,2819,87369,27179,68276,27024,81928,42688,3323,11084,14804],[10238,48107,10682,56512,26169,48158,2676,58865,21767,47772,20573,54799,30492,3464,8092,16114],[10239,62330,7435,80323,31961,63129,2740,83419,26226,62934,24570,77535,38833,3258,10772,15190],[10240,63137,11932,79834,31192,63954,3559,83499,25211,63284,26081,76249,37092,3459,10803,15078],[10241,42063,5090,57615,23864,42762,2083,60363,19996,41994,15171,55028,27512,2979,8494,15991],[10242,44380,8264,57604,24790,44478,1927,59468,19573,44117,16729,55176,29145,3464,8265,16547],[10243,67941,15046,70743,30111,68769,6633,73657,24733,67901,33948,68132,35410,3511,9518,15949],[10244,45631,6315,61601,26063,46219,2134,64500,21799,45946,16407,59275,31081,3187,8899,16043],[10245,61949,8357,80471,31063,62635,2624,84022,25643,63015,24171,78443,39383,3335,10498,14804],[10246,57906,9081,79295,30875,58890,2556,83030,25591,58871,21697,76191,37350,3233,10748,15042],[10247,51891,6011,73949,28349,52863,2371,77279,23846,52302,17296,71052,35391,3169,9920,15099],[10248,51341,5521,75216,28316,52288,2338,79583,23742,51751,16080,73207,35339,3137,9937,15503],[10249,55697,7742,74315,29570,56125,2428,77630,24632,56655,20790,72130,36422,3232,9982,15600],[10250,41708,4149,58267,23471,42617,1912,61403,19933,41503,14298,55996,27237,2979,8574,15825],[10251,40078,4795,56891,24511,40606,1984,59863,20963,39840,13171,54936,28122,3004,8507,16281],[10252,41331,5309,57622,24020,41962,1985,60196,20226,40881,14237,55149,28424,3070,8265,16083],[10253,59416,6767,85250,30540,60678,2525,89485,25797,59853,19780,82205,38391,3193,11379,14866],[10254,52091,9873,63792,28480,52721,2474,66520,23957,52245,21651,61502,33380,3467,8605,15863],[10255,62297,6943,83642,31081,62780,2599,87228,26135,63180,22829,81124,39774,3188,10677,14966]],"scales":[1,0.01,-0.01,1,1,0.01,-0.01,1,1,0.01,-0.01,1,1,0.01,1,1e-05],"encoding":"Decoded value = integer * column scale. Seed values are literal seeds."},"ablation":{"intervention":"Before every callback, set only the six recurrent hidden values to zero; keep all learned weights, price/history scalars, fee policy and every constant frozen. No retraining.","metrics":{"score":{"n":64,"mean":467.32601574508027,"se":11.669891941491318,"ci95":[444.4530275397573,490.19900395040327]},"main_minus_reset":{"n":64,"mean":7.7157326964393,"se":0.9894790755776128,"ci95":[5.7763537083071785,9.655111684571422]},"rms_bps":45.60642121584348},"interpretation":"Positive main-minus-reset means recurrent history helps this fitted policy; other stored price/history remains in both arms.","per_seed":{"columns":["seed","retail_edge","arb_edge","retail_y","arb_y","rms_bps","callbacks","brier"],"rows":[[10000,44897,5927,56844,22216,4611,7835,14453],[10001,57606,6646,80334,26320,4503,10643,13013],[10002,52989,5142,62555,24133,4255,8552,14101],[10003,58435,8013,76737,27730,4650,10241,12846],[10004,52679,6977,65634,23940,4604,8738,13600],[10005,53462,6049,66812,24033,4472,9010,13975],[10006,49384,4988,69756,23994,4429,9466,13261],[10007,53262,5896,71307,25397,4388,9735,13559],[10008,67194,8372,86631,28522,4698,10743,12576],[10009,64644,7030,79716,26224,4784,10327,12586],[10010,47407,4239,68917,23040,4521,9664,13277],[10011,37543,3258,54560,19037,4093,7908,14879],[10012,46329,4548,69915,23921,4366,9744,13559],[10013,40431,4631,52969,19590,4401,7753,14817],[10014,70291,14492,75265,24980,4962,9332,13199],[10015,63946,8027,85704,29305,4673,10819,12410],[10016,63174,17276,67199,25363,5566,9084,13647],[10017,50074,4325,66670,24208,4270,9394,13977],[10018,48362,4295,63220,22467,4394,8481,14006],[10019,45746,5551,56670,21585,4453,7885,14791],[10020,49964,6897,62359,23718,4690,8413,13931],[10021,40272,2908,49047,18024,4606,7064,14444],[10022,44726,5133,56955,21382,4442,8185,14683],[10023,63788,6328,77643,25394,4742,9418,12588],[10024,48893,6100,68634,25567,4470,9950,13514],[10025,45137,6105,58172,21569,4400,8634,14356],[10026,34826,3940,50749,19194,4323,7942,14953],[10027,55846,8104,67550,24878,4613,9312,13842],[10028,54390,10038,63598,24672,4719,8544,14297],[10029,44075,3469,65130,20480,4301,9306,13429],[10030,60191,6697,81745,27755,4419,10640,12861],[10031,34262,2880,52555,20078,4532,8013,14527],[10032,63356,7689,75850,26012,4762,9493,13031],[10033,54163,5114,75605,25078,4482,9926,13013],[10034,56771,6908,77211,25581,4603,10318,12847],[10035,64502,6398,85677,27844,4573,10870,12352],[10036,55236,6061,74382,24684,4543,9926,13015],[10037,44837,4789,61501,22628,4488,8748,14120],[10038,62651,7449,84987,28257,4706,11321,12302],[10039,58134,4787,69429,22779,4400,9319,13625],[10040,61586,4963,83059,26959,4446,10999,12369],[10041,64290,7806,79719,26870,4596,10325,12923],[10042,71600,10305,84120,28279,4672,10588,12769],[10043,65025,10097,81512,26896,5062,10353,12810],[10044,42009,3926,55724,20463,4421,7638,14160],[10045,39031,4070,56429,21561,4299,8407,14460],[10046,43921,4297,64712,24312,4411,9353,13642],[10047,60527,6340,83965,28344,4665,10871,12304],[10048,50556,4887,67023,23834,4360,9573,13845],[10049,39069,5467,53057,19449,4587,7817,14193],[10050,37392,4896,53033,19980,4370,8173,14881],[10051,42661,5854,56017,21480,4490,7930,14894],[10052,43155,4850,62816,22194,4583,9160,13393],[10053,53852,5876,66392,23425,4547,8953,13840],[10054,45886,7868,61183,23510,4601,8795,14041],[10055,71993,8477,87710,29621,4578,11089,12620],[10056,58897,5420,76063,24875,4443,9687,13279],[10057,51961,6969,64351,24062,4596,8869,14044],[10058,43605,5588,51803,19613,4525,7770,15082],[10059,51369,5363,64435,23512,4734,8650,14183],[10060,206854,124121,82571,30411,4786,10298,13057],[10061,55915,5787,75878,24127,4532,10054,12879],[10062,61125,5968,80973,26499,4497,10426,12675],[10063,43211,5808,59753,21835,4517,8591,14165]],"scales":[1,0.01,-0.01,1,1,0.01,1,1e-05]}},"leakage_tests":{"commands":["python3 experiment.py leakage --model model.json --table oracle_table.json","Parse experiment.py with ast; inspect Recurrent names and signature; assert no arb,p,s2,sigma,lam,size_mean,seed identifiers in inference class.","python3 -S experiment.py eval --model model.json --table oracle_table.json --lo 10000 --hi 10004 --out offline-check.json"],"poison_test_result":{"passed":true,"replayed_callbacks":1000,"hidden_init_values_ignored":true,"hidden_callback_values_ignored":true,"exact_fee_state_equality":true,"signature":"(self, is_buy, ax, ay, t, x, y)"},"static_inference_identifiers_test":"passed","offline_handoff_replay":{"passed":true,"site_packages_disabled":true,"seeds":[10000,10001,10002,10003],"steps_per_seed":10000,"all_19_raw_columns_exact":true,"model_hash_unchanged":true},"seed_split":"Training and test sets disjoint; no qualification seeds executed. Model SHA256 checked unchanged after all evaluation.","scope":"Hidden truth enters simulator/scoring/supervision only. Poison replay holds observed histories fixed.","training_fallback_check":{"passed":true,"command":"Block numpy import; compare sufficient() and solve() on first 256 callbacks from training seed20200.","max_statistics_difference":2.2737367544323206e-13,"max_weight_difference":3.668176873361517e-13}},"runtime":{"started_utc":"2026-11-09T15:56:56Z","training_stable_seconds":187.87835038732737,"training_discarded_seconds":78.81587653234601,"evaluation_segment_seconds":[15.09912003017962,15.225108603946865,15.192842409014702,15.129876362159848,15.552449812181294,15.885701545048505,15.982944010291249,15.443691383115947],"ablation_seconds":24.999539491720498,"max_measured_run_command_seconds":61.60036895191297,"parallelism":"Evaluation: four separate Python processes per wave (plus ablation in wave2); no command approached 480 seconds.","training_acceleration":"Optional numpy 2.5.4 for sufficient statistics only; pure standard-library fallback, simulator and inference included.","finished_utc":"2026-11-09T16:17:59Z","elapsed_wall_seconds":1263.844173},"port_state_cost_estimate":{"trained_readout_coefficients":75,"reservoir_and_readout_constants":201,"table_constants":35,"neural_state_scalars":6,"necessary_total_persistent_scalars":13,"python_diagnostic_state_extra":"sd and q retained for scoring; z and lc retained for training. Not required persistent contract state.","operations_per_callback":"Dense implementation: 189 multiply-accumulates, six tanh, five logarithms/log1p, two exp, one sqrt; interpolation and bounds. Sparse recurrence can save 24 MACs.","storage_unpacked_bytes":416,"gas_measured":null,"gas_estimate":"No defensible numeric gas estimate without implementation. A fixed-point port would need bounded log/exp/tanh approximations and measured storage costs.","port_complete":false,"gas_lt_245k_verified":false,"solidity_fee_parity_verified":false},"real_engine":{"evaluated":false,"score":null,"rs2_paired_gain":null,"gas_counters":null,"out_of_gas_count":null,"reason":"Pinned run_batch consumes EVM bytecode, not Python callbacks. This item is the Python structural screen; no Solidity port or engine score was fabricated.","qualification":"Not qualified: no +4.6 paired RS2 test on 4000 fresh real-engine seeds; prohibited qualification seeds untouched."},"limitations_and_dead_ends":[{"finding":"Unbounded learned price feedback destabilized when fee distributions changed; discarded before evaluation.","training_reports":{"columns":["stage","count","behavior_score_mean","behavior_rms_bps","behavior_brier","seconds"],"rows":[[0,1264720,351.13253550836276,42.42235600476843,0.1767768505076745,49.9034754736349],[1,145366,291.73678363190305,200.92322119211065,0.6042701869378584,9.9409324307926],[2,357511,315.6218503078984,177.2286646064989,0.19449715934975703,18.97146862791851]]}},"On-policy training scores 407.459,482.472,457.233 were nonmonotone; final stage3 fit was predeclared, never selected on test scores.","Only readouts were trained. This result does not reject learned GRUs or neural policy optimization.","Oracle gap54.174, price RMS32.475bps; excess arb loss accounts for48.386 points. Nominal95% uncertainty coverage is only41.748%.","Repeats retain p, losing retail information. No exact silent-step/no-arb posterior.","Supplied oracle table was not retuned. All new fitting used only20200..20327.","No real-engine calibration, Solidity port, board conversion or qualification. CIs cover seed variation, not simulator transfer."],"runnable_source":{"experiment.py":"import argparse, hashlib, json, math, random, time, pathlib, statistics\nimport replica\nNORM = 0.003\nH = 6\nD = 13\nM = 1 + D + H + 5\nRIDGE = 0.001\nALPHA = [1.0, 0.7, 0.45, 0.25, 0.12, 0.05]\n\ndef clip(x, a, b):\n return min(b, max(a, x))\n\ndef dot(a, b):\n return sum((x * y for x, y in zip(a, b)))\n\ndef load(path):\n return json.loads(pathlib.Path(path).read_text())\n\ndef dump(path, x):\n pathlib.Path(path).write_text(json.dumps(x, separators=(',', ':'), allow_nan=False))\n\ndef fresh():\n r = random.Random(62871)\n return dict(version=1, inputs=D, hidden=H, readout=M, input_weights=[[r.uniform(-0.6, 0.6) for _ in range(D)] for _ in range(H)], hidden_bias=[r.uniform(-0.2, 0.2) for _ in range(H)], recurrent_weights=[[0.45 if i == j else 0.15 if j == (i + 1) % H else 0.0 for j in range(H)] for i in range(H)], alpha=ALPHA, weights=None)\n\nclass Recurrent:\n\n def __init__(self, model, table, reset=False):\n  self.m = model\n  self.table = table\n  self.reset = reset\n\n def initialize(self, x, y):\n  self.lp = math.log(y / x)\n  self.ls = self.lp\n  self.t = -1\n  self.sd = 0.0015\n  self.q = 0.5\n  self.h = [0.0] * H\n  self.fb = self.fa = 0.0035\n  self.last_move = 0.0\n  self.last_side = 0.0\n  self.z = [0.0] * M\n  return (self.fb, self.fa)\n\n def after_swap(self, is_buy, ax, ay, t, x, y):\n  ls = math.log(y / x)\n  dt = t - self.t\n  same = float(dt == 0)\n  side = 1.0 if is_buy else -1.0\n  lc = ls + math.log1p(-self.fb) if is_buy else ls - math.log1p(-self.fa)\n  inv = (lc - self.lp) / NORM\n  move = (ls - self.ls) / NORM\n  exe = (math.log(ay / ax) - self.lp) / NORM\n  u = [side, clip(move, -8, 8), clip(inv, -8, 8), clip((ls - self.lp) / NORM, -8, 8), min(math.log1p(dt), 3.0) / 2.0, same, min(math.log1p(ay / 20.0), 4.0), min(self.fb / NORM, 8.0), min(self.fa / NORM, 8.0), clip(exe, -8, 8), self.last_move, self.last_side, min(abs(inv), 8.0)]\n  old = [0.0] * H if self.reset else self.h\n  self.h = [(1.0 - a) * old[i] + a * math.tanh(dot(self.m['input_weights'][i], u) + dot(self.m['recurrent_weights'][i], old) + self.m['hidden_bias'][i]) for i, a in enumerate(self.m['alpha'])]\n  z = [1.0] + u + self.h + [same * u[2], side * u[6], u[2] * min(abs(u[2]), 3.0), side * u[4], same * u[9]]\n  self.z = z\n  self.lc = lc\n  w = self.m['weights']\n  if w is None:\n   q = 0.0 if same else 1.0 / (1.0 + math.exp(clip(-1.5 + 0.5 * u[6] + 0.6 * abs(inv), -20.0, 20.0)))\n   residual = (1.0 - q) * -inv\n   sd = 0.0015\n  else:\n   residual = clip(dot(w[0], z), -8.0, 8.0)\n   q = 0.0 if same else clip(dot(w[1], z), 0.0, 1.0)\n   second = max(0.0, dot(w[2], z))\n   sd = NORM * math.sqrt(max(0.0025, min(9.0, second - residual * residual)))\n  residual = -inv if same else clip(residual, min(0.0, -inv) - 0.1, max(0.0, -inv) + 0.1)\n  self.lp = lc + NORM * residual\n  self.q = q\n  self.sd = sd\n  self.last_move = clip(move, -8.0, 8.0)\n  self.last_side = side\n  self.ls = ls\n  self.t = t\n  self.fb, self.fa = quote(ls - self.lp, q, self.table)\n  return (self.fb, self.fa)\n\ndef quote(log_displacement, q, table):\n k = clip(log_displacement / NORM, -8.0, 8.0) + 8.0\n i = min(15, int(k))\n a = k - i\n ask = (1 - a) * table['ask'][i] + a * table['ask'][i + 1] + table['arb_flag'] * q\n bid = (1 - a) * table['bid'][i] + a * table['bid'][i + 1] + table['arb_flag'] * q\n return (clip(1.0 - math.exp(-bid * NORM - log_displacement), 0.0, 0.1), clip(1.0 - math.exp(log_displacement - ask * NORM), 0.0, 0.1))\n\nclass Adapter:\n\n def __init__(self, model, table, collect=False, behavior='model', reset=False):\n  self.policy = Recurrent(model, table, reset)\n  self.collect = collect\n  self.behavior = behavior\n  self.rows = []\n  self.targets = []\n  self.sse = 0.0\n  self.n = 0\n  self.brier = 0.0\n  self.first_n = 0\n  self.first_arb = 0\n  self.same_n = 0\n  self.same_arb = 0\n  self.first_brier = 0.0\n  self.cover = 0\n  self.sd_sum = 0.0\n\n def init(self, *hidden):\n  return self.policy.initialize(100.0, 10000.0)\n\n def on_trade(self, is_buy, ax, ay, t, x, y, arb, p, s2):\n  prior_t = self.policy.t\n  fees = self.policy.after_swap(is_buy, ax, ay, t, x, y)\n  err = (self.policy.lp - math.log(p)) * 10000.0\n  self.sse += err * err\n  self.n += 1\n  self.brier += (self.policy.q - float(arb)) ** 2\n  self.cover += int(abs(err) <= 1.96 * self.policy.sd * 10000.0)\n  self.sd_sum += self.policy.sd * 10000.0\n  if prior_t != t:\n   self.first_n += 1\n   self.first_arb += int(arb)\n   self.first_brier += (self.policy.q - float(arb)) ** 2\n  else:\n   self.same_n += 1\n   self.same_arb += int(arb)\n  if self.collect:\n   target = (math.log(p) - self.policy.lc) / NORM\n   self.rows.append(self.policy.z)\n   self.targets.append([target, float(arb), target * target])\n  if self.behavior == 'fixed':\n   self.policy.fb = self.policy.fa = 0.0035\n   return (0.0035, 0.0035)\n  return fees\n\nclass Oracle:\n\n def __init__(self, table):\n  self.table = table\n\n def init(self, *a):\n  return (0.0035, 0.0035)\n\n def on_trade(self, is_buy, ax, ay, t, x, y, arb, p, s2):\n  return quote(math.log(y / x / p), float(arb), self.table)\n\ndef zeros(n, m):\n return [[0.0] * m for _ in range(n)]\n\ndef sufficient(rows, targets):\n try:\n  import numpy as np\n except ImportError:\n  A = zeros(M, M)\n  B = zeros(M, 3)\n  for z, ys in zip(rows, targets):\n   for i, zi in enumerate(z):\n    for j in range(i + 1):\n     A[i][j] += zi * z[j]\n    for j in range(3):\n     B[i][j] += zi * ys[j]\n  for i in range(M):\n   for j in range(i):\n    A[j][i] = A[i][j]\n  return (A, B)\n x = np.asarray(rows, dtype=np.float64)\n y = np.asarray(targets, dtype=np.float64)\n return ((x.T @ x).tolist(), (x.T @ y).tolist())\n\ndef solve(A, B, n):\n C = [a[:] + b[:] for a, b in zip(A, B)]\n for i in range(M):\n  C[i][i] += RIDGE * n\n for i in range(M):\n  k = max(range(i, M), key=lambda j: abs(C[j][i]))\n  C[i], C[k] = (C[k], C[i])\n  v = C[i][i]\n  if abs(v) < 1e-15:\n   raise ArithmeticError('singular ridge')\n  C[i] = [x / v for x in C[i]]\n  for j in range(M):\n   if i == j:\n    continue\n   v = C[j][i]\n   C[j] = [x - v * y for x, y in zip(C[j], C[i])]\n return [[C[i][M + j] for i in range(M)] for j in range(3)]\n\ndef train_stage(stage, out, table):\n start = time.monotonic()\n op = pathlib.Path(out)\n op.mkdir(parents=True, exist_ok=True)\n model = fresh() if stage == 0 else load(op / ('stage%d.json' % (stage - 1)))['model']\n A = zeros(M, M)\n B = zeros(M, 3)\n n = 0\n score = []\n sse = 0.0\n br = 0.0\n for seed in range(20200, 20328):\n  adapter = Adapter(model, table, True, 'fixed' if stage == 0 else 'model')\n  result = replica.run(seed, adapter, 10000)\n  a, b = sufficient(adapter.rows, adapter.targets)\n  n += adapter.n\n  sse += adapter.sse\n  br += adapter.brier\n  score.append(result['edge'])\n  for i in range(M):\n   for j in range(M):\n    A[i][j] += a[i][j]\n   for j in range(3):\n    B[i][j] += b[i][j]\n  if (seed - 20199) % 16 == 0:\n   print(json.dumps({'stage': stage, 'completed': seed - 20199, 'seconds': time.monotonic() - start}), flush=True)\n model['weights'] = solve(A, B, n)\n report = dict(stage=stage, model=model, training_seeds=[20200, 20327], n_steps=10000, count=n, behavior_score_mean=statistics.mean(score), behavior_rms_bps=math.sqrt(sse / n), behavior_brier=br / n, seconds=time.monotonic() - start)\n dump(op / ('stage%d.json' % stage), report)\n dump(op / 'model.json', model)\n print(json.dumps({k: v for k, v in report.items() if k != 'model'}), flush=True)\nCOLUMNS = ['seed', 'model_edge', 'model_retail_edge', 'model_arb_edge', 'model_retail_y', 'model_arb_y', 'oracle_edge', 'oracle_retail_edge', 'oracle_arb_edge', 'oracle_retail_y', 'oracle_arb_y', 'fixed_edge', 'fixed_retail_edge', 'fixed_arb_edge', 'fixed_retail_y', 'fixed_arb_y', 'model_rms_bps', 'model_n', 'model_brier']\n\ndef evaluate(model, table, lo, hi, out, ablation=False):\n assert 10000 <= lo < hi <= 10256\n start = time.monotonic()\n rows = []\n extra = []\n for seed in range(lo, hi):\n  adapter = Adapter(model, table, reset=ablation)\n  a = replica.run(seed, adapter, 10000)\n  row = [seed] + [a[k] for k in ('edge', 'retail', 'arb', 'rv', 'av')]\n  if not ablation:\n   for policy in (Oracle(table), replica.Fixed(0.0035)):\n    b = replica.run(seed, policy, 10000)\n    row += [b[k] for k in ('edge', 'retail', 'arb', 'rv', 'av')]\n  row += [math.sqrt(adapter.sse / adapter.n), adapter.n, adapter.brier / adapter.n]\n  rows.append(row)\n  extra.append([adapter.first_n, adapter.first_arb, adapter.same_n, adapter.same_arb, adapter.first_brier, adapter.cover, adapter.sd_sum])\n  if len(rows) % 16 == 0:\n   print(json.dumps({'completed': len(rows), 'seconds': time.monotonic() - start}), flush=True)\n  dump(out, dict(rows=rows, counts=extra, seconds=time.monotonic() - start, ablation=ablation))\n return rows\n\ndef leakage(model, table):\n import inspect\n\n class Bomb:\n\n  def __float__(self):\n   raise AssertionError('hidden float')\n\n  def __bool__(self):\n   raise AssertionError('hidden bool')\n\n  def __iter__(self):\n   raise AssertionError('hidden iter')\n\n class Blind:\n\n  def __init__(self):\n   self.p = Recurrent(model, table)\n\n  def init(self, *args):\n   return self.p.initialize(100.0, 10000.0)\n\n  def on_trade(self, b, ax, ay, t, x, y, *hidden):\n   return self.p.after_swap(b, ax, ay, t, x, y)\n a, b = (Blind(), Blind())\n assert a.init(Bomb(), Bomb(), Bomb()) == b.init(2.0, 3.0, 4.0)\n r = random.Random(23)\n x = 100.0\n y = 10000.0\n t = 0\n n = 1000\n for i in range(n):\n  if i % 3:\n   t += r.randrange(1, 4)\n  side = r.random() < 0.5\n  ax = 0.001 + r.random() * 0.1\n  if side:\n   nx = x + ax * (1 - a.p.fb)\n   ny = 1000000.0 / nx\n   ay = y - ny\n  else:\n   nx = x - ax\n   ny = 1000000.0 / nx\n   ay = (ny - y) / (1 - a.p.fa)\n  z = (side, ax, ay, t, nx, ny)\n  assert a.on_trade(*z, Bomb(), Bomb(), Bomb()) == b.on_trade(*z, False, 12345.0, 99999.0)\n  assert a.p.lp == b.p.lp and a.p.h == b.p.h\n  x, y = (nx, ny)\n sig = str(inspect.signature(Recurrent.after_swap))\n assert sig == '(self, is_buy, ax, ay, t, x, y)'\n assert set(range(20200, 20328)).isdisjoint(range(10000, 10256))\n assert set(range(20200, 20328)).isdisjoint(range(5148000, 5152000))\n return dict(passed=True, replayed_callbacks=n, hidden_init_values_ignored=True, hidden_callback_values_ignored=True, exact_fee_state_equality=True, signature=sig)\nif __name__ == '__main__':\n p = argparse.ArgumentParser()\n p.add_argument('command', choices=['train', 'eval', 'ablate', 'leakage'])\n p.add_argument('--table', default='oracle_table.json')\n p.add_argument('--model', default='model.json')\n p.add_argument('--out', default='run.json')\n p.add_argument('--stage', type=int, default=0)\n p.add_argument('--lo', type=int, default=10000)\n p.add_argument('--hi', type=int, default=10016)\n args = p.parse_args()\n table = load(args.table)\n if args.command == 'train':\n  assert 0 <= args.stage <= 3\n  train_stage(args.stage, args.out, table)\n else:\n  model = load(args.model)\n  if args.command == 'leakage':\n   print(json.dumps(leakage(model, table)))\n  else:\n   evaluate(model, table, args.lo, args.hi, args.out, args.command == 'ablate')\n","replica.py":"import math, random\nK = 100.0 * 10000.0\nMAXF = 0.1\nNF = 0.003\n\ndef clampf(f):\n return 0.0 if f < 0.0 else MAXF if f > MAXF else f\n\ndef run(seed, policy, n_steps=10000, cfg=None):\n cr = random.Random(10000000 + seed)\n size_mean = cr.uniform(19.0, 21.0)\n lam = cr.uniform(0.6, 1.0)\n sigma = cr.uniform(0.000882, 0.001008)\n if cfg:\n  size_mean, lam, sigma = cfg\n pr = random.Random(seed)\n rr = random.Random(seed + 1)\n drift = -0.5 * sigma * sigma\n mu_ln = math.log(size_mean) - 0.5 * 1.2 * 1.2\n emlam = math.exp(-lam)\n p = 100.0\n x1, y1 = (100.0, 10000.0)\n x2, y2 = (100.0, 10000.0)\n fb, fa = policy.init(sigma, lam, size_mean)\n fb, fa = (clampf(fb), clampf(fa))\n e1 = e2 = 0.0\n ret1 = arb1 = 0.0\n rv1 = av1 = 0.0\n sum_fb = sum_fa = 0.0\n g2 = 1.0 - NF\n sqrt = math.sqrt\n for t in range(n_steps):\n  p *= math.exp(drift + sigma * pr.gauss(0.0, 1.0))\n  s2 = y2 / x2\n  if s2 < p:\n   nx = sqrt(K / (g2 * p))\n   ax = x2 - nx\n   if ax > 0:\n    ax = min(ax, x2 * 0.99)\n    nrx = x2 - ax\n    nry = K / nrx\n    net_y = nry - y2\n    ty = net_y / g2\n    prof = ax * p - ty\n    if prof > 0:\n     x2, y2 = (nrx, nry)\n     e2 -= prof\n  elif s2 > p:\n   xv = sqrt(K * g2 / p)\n   ax = (xv - x2) / g2\n   if ax > 0:\n    nrx = x2 + ax * g2\n    nry = K / nrx\n    yo = y2 - nry\n    prof = yo - ax * p\n    if yo > 0 and prof > 0:\n     x2, y2 = (nrx, nry)\n     e2 -= prof\n  s1 = y1 / x1\n  if s1 < p:\n   g = 1.0 - fa\n   if g > 0:\n    nx = sqrt(K / (g * p))\n    ax = x1 - nx\n    if ax > 0:\n     ax = min(ax, x1 * 0.99)\n     nrx = x1 - ax\n     nry = K / nrx\n     net_y = nry - y1\n     ty = net_y / g\n     prof = ax * p - ty\n     if prof > 0:\n      x1, y1 = (nrx, nry)\n      e1 -= prof\n      arb1 -= prof\n      av1 += ty\n      fb, fa = policy.on_trade(False, ax, ty, t, x1, y1, True, p, y2 / x2)\n      fb, fa = (clampf(fb), clampf(fa))\n  elif s1 > p:\n   g = 1.0 - fb\n   if g > 0:\n    xv = sqrt(K * g / p)\n    ax = (xv - x1) / g\n    if ax > 0:\n     nrx = x1 + ax * g\n     nry = K / nrx\n     yo = y1 - nry\n     prof = yo - ax * p\n     if yo > 0 and prof > 0:\n      x1, y1 = (nrx, nry)\n      e1 -= prof\n      arb1 -= prof\n      av1 += yo\n      fb, fa = policy.on_trade(True, ax, yo, t, x1, y1, True, p, y2 / x2)\n      fb, fa = (clampf(fb), clampf(fa))\n  n = 0\n  q = rr.random()\n  while q > emlam:\n   n += 1\n   q *= rr.random()\n  for _ in range(n):\n   size = rr.lognormvariate(mu_ln, 1.2)\n   buy = rr.random() < 0.5\n   if buy:\n    ga = 1.0 - fa\n    a1 = sqrt(x1 * ga * y1)\n    a2 = sqrt(x2 * g2 * y2)\n    r = a1 / a2\n    d = ga + r * g2\n    u1 = (r * (y2 + g2 * size) - y1) / d if d != 0 else size / 2\n    u1 = 0.0 if u1 < 0 else size if u1 > size else u1\n    u2 = size - u1\n    if u2 > 0.0001:\n     nry = y2 + u2 * g2\n     nrx = K / nry\n     xo = x2 - nrx\n     if xo > 0:\n      e2 += u2 - xo * p\n      x2, y2 = (nrx, nry)\n    if u1 > 0.0001:\n     nry = y1 + u1 * ga\n     nrx = K / nry\n     xo = x1 - nrx\n     if xo > 0:\n      ed = u1 - xo * p\n      e1 += ed\n      ret1 += ed\n      rv1 += u1\n      x1, y1 = (nrx, nry)\n      fb, fa = policy.on_trade(False, xo, u1, t, x1, y1, False, p, y2 / x2)\n      fb, fa = (clampf(fb), clampf(fa))\n   else:\n    tx = size / p\n    gb = 1.0 - fb\n    b1 = sqrt(y1 * gb * x1)\n    b2 = sqrt(y2 * g2 * x2)\n    r = b1 / b2\n    d = gb + r * g2\n    v1 = (r * (x2 + g2 * tx) - x1) / d if d != 0 else tx / 2\n    v1 = 0.0 if v1 < 0 else tx if v1 > tx else v1\n    v2 = tx - v1\n    if v2 > 0.0001:\n     nrx = x2 + v2 * g2\n     nry = K / nrx\n     yo = y2 - nry\n     if yo > 0:\n      e2 += v2 * p - yo\n      x2, y2 = (nrx, nry)\n    if v1 > 0.0001:\n     nrx = x1 + v1 * gb\n     nry = K / nrx\n     yo = y1 - nry\n     if yo > 0:\n      ed = v1 * p - yo\n      e1 += ed\n      ret1 += ed\n      rv1 += yo\n      x1, y1 = (nrx, nry)\n      fb, fa = policy.on_trade(True, v1, yo, t, x1, y1, False, p, y2 / x2)\n      fb, fa = (clampf(fb), clampf(fa))\n  sum_fb += fb\n  sum_fa += fa\n return dict(edge=e1, norm=e2, retail=ret1, arb=arb1, rv=rv1, av=av1, fb=sum_fb / n_steps * 10000.0, fa=sum_fa / n_steps * 10000.0, sigma=sigma, lam=lam, size=size_mean)\n\nclass Fixed:\n\n def __init__(self, f):\n  self.f = f\n\n def init(self, *a):\n  return (self.f, self.f)\n\n def on_trade(self, *a):\n  return (self.f, self.f)\n","oracle_table.json":"{\n \"units\": \"offset from the true price p in units of 30 bps; ask above p, bid below p; knots at own displacement ln(spot/p) = -8..+8 x 30 bps; add arb_flag to both offsets right after an own arb trade\",\n \"fees\": \"askFee = 1 - exp(ln(spot/p) - ask*0.003); bidFee = 1 - exp(-bid*0.003 - ln(spot/p)); clamp to [0, 0.10]\",\n \"ask\": [\n  -0.8836,\n  -0.9345,\n  -0.8159,\n  -0.7282,\n  -0.6342,\n  -0.5652,\n  -0.2453,\n  0.7252,\n  1.1735,\n  1.4444,\n  1.6154,\n  2.7552,\n  2.9767,\n  3.3159,\n  4.4695,\n  5.071,\n  5.7838\n ],\n \"bid\": [\n  5.6921,\n  5.1279,\n  4.4766,\n  4.0233,\n  3.3293,\n  2.4659,\n  1.7209,\n  1.4329,\n  1.2125,\n  0.7478,\n  -0.2275,\n  -0.5564,\n  -0.6444,\n  -0.7169,\n  -0.7926,\n  -0.8617,\n  -0.8452\n ],\n \"arb_flag\": 0.1463,\n \"replica_score_1000_seeds\": 532.45,\n \"same_table_p_from_own_arbs_only\": 507.61,\n \"retrained_for_p_from_own_arbs\": 519.24\n}","summarize.py":"import json, math, statistics, sys\n\ndef stat(x):\n mean = statistics.mean(x)\n se = statistics.stdev(x) / math.sqrt(len(x))\n return dict(n=len(x), mean=mean, se=se, ci95=[mean - 1.96 * se, mean + 1.96 * se])\n\ndef summarize(rows, abl=None):\n out = {name: stat([r[k] for r in rows]) for name, k in [('model', 1), ('oracle', 6), ('fixed35', 11)]}\n out['oracle_deficit'] = stat([r[6] - r[1] for r in rows])\n out['gain_vs_fixed35'] = stat([r[1] - r[11] for r in rows])\n n = sum((r[17] for r in rows))\n out['event_rms_bps'] = math.sqrt(sum((r[16] ** 2 * r[17] for r in rows)) / n)\n out['event_brier'] = sum((r[18] * r[17] for r in rows)) / n\n out['own_callbacks'] = n\n out['split_means'] = {name: dict(zip(['retail_edge', 'arb_edge', 'retail_y', 'arb_y'], [statistics.mean((r[k + j] for r in rows)) for j in range(1, 5)])) for name, k in [('model', 1), ('oracle', 6), ('fixed35', 11)]}\n if abl:\n  original = {r[0]: r for r in rows}\n  out['ablation'] = {'score': stat([r[1] for r in abl]), 'main_minus_reset': stat([original[r[0]][1] - r[1] for r in abl]), 'rms_bps': math.sqrt(sum((r[6] ** 2 * r[7] for r in abl)) / sum((r[7] for r in abl)))}\n return out\nif __name__ == '__main__':\n rows = []\n for path in sys.argv[1:]:\n  rows += json.load(open(path))['rows']\n print(json.dumps(summarize(rows), indent=2))\n"},"run_instructions":{"extract":"python3 -c 'import json,pathlib; r=json.load(open(\"result.json\")); [pathlib.Path(k).write_text(v) for k,v in r[\"runnable_source\"].items()]; pathlib.Path(\"model.json\").write_text(json.dumps(r[\"model\"][\"parameters\"],separators=(\",\",\":\")))'","train":"python3 experiment.py train --stage N --out checkpoints (run N=0,1,2,3 in order; each writes checkpoint; model.json in checkpoints is the trained artifact)","evaluate":"python3 experiment.py eval --lo 10000 --hi 10256 --model model.json --table oracle_table.json --out eval.json","ablate":"python3 experiment.py ablate --lo 10000 --hi 10064 --model model.json --table oracle_table.json --out ablation.json","summarize":"python3 summarize.py eval.json; for paired ablation import summarize and call summarize(eval_rows, ablation_rows)","requirements":"Python3.12 standard library; optional numpy speeds fitting. No network required."},"completed_sample_size":{"evaluation":256,"ablation":64,"steps_per_seed":10000,"remaining_item_work":[]}}