{"key":"fresh5-2","track":"B","idea":"Empirical retail fill-law likelihood: in the arb/retail call for the first own trade of a step, replace the hand-fit lognormal retail term Z*rho*LN(d; median 11.12 bps, log-sd 1.176), rho=0.26, by Z*g(ln d)/d, where g is a frozen nonparametric (Gaussian-KDE, bandwidth 0.2 in ln d) rate density of retail first trades per no-arb step per side, estimated offline from labelled replica runs of the policy itself. Everything else is the thr09 base unchanged (lattice belief, thr=0.9 call, qm_k1e-5 tables).","mechanism":"The lattice filter is exact Bayes given its model, so with fixed observables its only error source is model misspecification. The arb branch is exact (the arb leaves the pool at the band edge, so p = the arb reading); the retail branch rests on a 2-parameter lognormal for the spot move d of a retail first trade. The true law is a lognormal order size times a router share in [0,1] under the policy's own fees, which is not lognormal: the fitted rate density is too high below ~5 bps (0.047 vs 0.038 per unit ln d at 3 bps) and too low at 10-20 bps (0.088 vs 0.095 at 10 bps), exactly where arb readings lie (arb first-trade d quartiles 4.8/10.3/18.0 bps, retail 5.8/11.6/23.9). A correctly shaped likelihood sharpens pi on these ambiguous trades, so afterSwap inputs that are already observed buy more price information at no quote cost.","distinctness":"Not a threshold or cut on pi (thr stays 0.9), not a temperature/scale (the shape changes, mass is renormalised by data: fitted per-side rate 0.2544 vs rho 0.26), not quote-aware or router-based (g depends on d only), not a classifier on features (a 1-D generative likelihood inside the same Bayes update), not per-run, not same-step or silent-step likelihoods, no change to quotes, lattice resolution or tables.","settings":{"frozen":"emp table = KDE h=0.2 refit under the emp policy itself (second pass), grid x0=ln(1e-7), dx=0.02 in ln d, linear interpolation, edge values beyond the grid; thr=0.9; qm=qm_k1e-5.json; hard=0.999","table_fit_seeds":"62000..62127 (tuning seeds only), labels used offline only","table_sha256":"7dd9f04dc8db65e244c615c9b1a5d648377a546449f5ae78d438794e113911a5","tried":["h=0.1","h=0.2","h=0.4","h=0.2 refit under the emp policy (frozen)"]},"tuning_vs_base":{"zero_change_no_table":{"n":128,"mean_diff":0.0,"se":0.0,"sum":0.0,"sumsq":0.0,"worst5":[[62000,0.0],[62001,0.0],[62002,0.0],[62003,0.0],[62004,0.0]],"seeds":"62000..62127"},"h0.1":{"n":128,"mean_diff":0.0348,"se":0.0237,"sum":4.452879,"sumsq":9.293811,"worst5":[[62106,-0.642],[62020,-0.523],[62083,-0.491],[62011,-0.437],[62033,-0.42]],"seeds":"62000..62127"},"h0.2":{"n":128,"mean_diff":0.0376,"se":0.0229,"sum":4.817485,"sumsq":8.730716,"worst5":[[62106,-0.687],[62033,-0.571],[62083,-0.537],[62030,-0.423],[62012,-0.4]],"seeds":"62000..62127"},"h0.4":{"n":128,"mean_diff":0.0192,"se":0.0194,"sum":2.462863,"sumsq":6.170317,"worst5":[[62106,-0.664],[62122,-0.616],[62011,-0.538],[62077,-0.438],[62083,-0.412]],"seeds":"62000..62127"},"h0.2_refit":{"n":128,"mean_diff":0.0422,"se":0.0227,"sum":5.396955,"sumsq":8.60461,"worst5":[[62106,-0.69],[62033,-0.573],[62083,-0.543],[62011,-0.386],[62052,-0.375]],"seeds":"62000..62127"}},"confirmation_vs_base":{"n":128,"mean_diff":0.0437,"se":0.0221,"sum":5.594954,"sumsq":8.159727,"worst5":[[62159,-0.589],[62226,-0.44],[62249,-0.379],[62208,-0.349],[62134,-0.335]],"seeds":"62128..62255"},"holdout_vs_base":{"n":2048,"mean_diff":0.0302,"se":0.0057,"sum":61.941153,"sumsq":139.928322,"worst5":[[10639,-1.051],[10523,-0.916],[11056,-0.88],[11845,-0.83],[10397,-0.825]],"seeds":"10000..12047"},"holdout_vs_lattice_qm":{"n":2048,"mean_diff":0.3531,"se":0.0104,"sum":723.223804,"sumsq":709.907978,"worst5":[[10942,-1.772],[11487,-1.596],[10982,-1.593],[10653,-1.094],[10395,-1.06]],"seeds":"10000..12047"},"base_vs_lattice_qm_reproduced":{"n":2048,"mean_diff":0.3229,"se":0.0107,"sum":661.282652,"sumsq":692.740899,"worst5":[[11487,-1.912],[10942,-1.608],[10982,-1.446],[11380,-1.237],[10990,-1.15]],"seeds":"10000..12047"},"base_reproduction_note":"The unchanged thr09 base rerun here on 10000..12047 gives sum 661.282652, sumsq 692.740899 vs ref/lattice_qm.json, identical to the figures in base artifact 22819a15.","diagnostics_holdout":{"mine":{"n":2048,"mean_edge":534.1741,"first_trades":14471358,"misread_rate":0.2883,"rms_logprice_err_bps":13.236},"base_thr09":{"n":2048,"mean_edge":534.1438,"first_trades":14472181,"misread_rate":0.2888,"rms_logprice_err_bps":13.277},"lattice_qm_ref":{"n":2048,"mean_edge":533.8209,"first_trades":14315685,"misread_rate":0.1622,"rms_logprice_err_bps":13.643},"note":"misread_rate counts the thresholded call (pi > 0.9) against the true flag, as run.py measures it; for lattice_qm the call is pi > 0.5. rms_logprice_err_bps is run.py's callback RMS of (m - ln p) in bps. The pi > 0.5 read rate of the emp belief was not recorded."},"checks":{"zero_change_equivalence":"emppol.py with no table vs thrpol.py thr=0.9 on 62000..62127: mean_diff 0.0, sumsq 0.0 (bit-identical edges)","blindness":"Policy runs through run.py Blind: on_trade receives only (is_buy, amountX, amountY, timestamp, reserveX, reserveY); arb flag, true price, rival spot and run parameters are used only in train_emp.py offline to fit the frozen table; never in policy state or scoring.","protocol":"Four settings tuned on 62000..62127 only; best frozen; confirmed once on 62128..62255; holdout run once on 10000..12047 in four 512-seed chunks per arm (all chunks < 300 s); n = 2048 per arm, no seed missing.","fast_helpers":"none; stdlib pure-Python replica only"},"gas_estimate":{"measured":false,"operations":"replaces one exp/normal-pdf evaluation of the lognormal term with a table interpolation: index = (ln d - x0)/dx, two packed reads from code constants, one mulDiv lerp, one division by d. ln d is already needed by the Gaussian port. Net change roughly -200..+400 gas a first-trade call.","slots":"0 storage slots added; table as code constants. The 726-point 0.02 grid is smooth (h=0.2) and could be cut to ~64 knots at 0.2 in ln d over 0.5..300 bps (8 words of packed uint32), not checked for score parity."},"verdict":"Small, real gain: +0.0302 se 0.0057 over the thr09 base on 2048 holdout seeds (tuning +0.042, confirm +0.044). Far below the 0.3 bar for Track A; misread rate and RMS price error move only slightly (28.88% -> 28.83%, 13.28 -> 13.24 bps). The lognormal fill law was already close to the empirical one, so this mechanism is nearly exhausted; it stacks trivially on any port (one table) but is not worth a port alone.","code_zb64":"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","code_sha256":"e82ad7cc76e09e1e4b49b48683b2df21dc69580dcef5feb68d709f002ba5e99b","code_contents":"emppol.py (policy), train_emp.py (offline table fit), stats.py (paired stats and bundling), README.md (reproduction). No tables or traces; the table is regenerated by train_emp.py."}