{"key": "b6-joint/joint-1", "track": "B", "status": "complete_negative", "mechanism": {"name": "Persistent joint price/rival hypotheses with the exact first-fill router likelihood (jointpol:JointLattice)", "description": "Belief is up to K weighted hypotheses, each a latt.py price lattice with its own rival spot and synced flag. Silent steps multiply each hypothesis weight by the lattice mass that survives the no-arb cut. At the first own trade of a step each hypothesis branches: ARB = atom at p = post spot through the fee in force, weight w*lattice density at ln p (d ln s/d ln p = 1, so a density per unit ln s), rival clipped into [pG, p/G]; RETAIL = lattice cut to the no-arb interval, each cell reweighted by the exact router density of the observed own fill with the rival first clipped into the band of that cell price: all-own branch (rival untouched, size = own fill) or split branch (both pools end at equal marginal price, rival moves to cand, size = own + rival part, Jacobian 1+sqrt(g_own/0.997)); sell orders convert X size to Y at the cell price (Jacobian p); density per unit ln s via d ln s/d fill = 2g/reserve_post; arrival factor 0.5*(1-exp(-0.8)) and size law lognormal(ln20-0.72,1.2) at fixed midpoint constants. Retail child rival = posterior-weighted log mean of per-cell post-trade rivals. Same-step later fills reweight every hypothesis and cell by the same router density and apply the router identity to that hypothesis rival. Children below 1e-3 weight are pruned; above K, the heaviest K-1 are kept and the rest merged (stable weight sort, lattices rebinned onto the first merged child centre, log-mean rival, majority synced). Quotes: unchanged qm_k1e-5 tables and thr=0.9 action rule (is_arb iff total arb-branch weight > 0.9) on mixture mean/sd, weighted log-mean rival and weighted-majority synced flag.", "what_differs_from_base": "Base uses a fixed lognormal fill law on |ln(s/sp)| and one rival scalar clipped around the posterior mean, updated by min/max only when the call is classed retail. Candidate replaces the retail likelihood with the router density per price cell and per rival hypothesis and carries rivals per branch."}, "frozen_settings": {"policy": "jointpol:JointLattice", "qm": "qm_k1e-5.json", "pol": "pol_mid.json", "thr": 0.9, "joint": 1, "K": 1, "prune": 0.001, "needs_flag": false, "jointpol_py_sha256": "2ee860e259fd4fa474520d041ccdf430bb79a7f4fab7943b05a7946ca5e7ba4c", "selection_rule": "max paired mean vs unchanged base on 63000..63255 among exactly K in {1,2,4,8}; frozen (file hash recorded) before confirmation and holdout", "note": "K=1 was selected: it collapses branches to one hypothesis after every first trade, so the selected candidate keeps the per-step joint price/rival router likelihood but not cross-step persistence. K=2,4,8 (persistent) were flat relative to K=1."}, "tuning": {"seeds": "63000..63255", "settings_tried": 4, "vs_unchanged_base": {"K1": {"n": 256, "mean_diff": 0.0999983407253473, "se": 0.024369555014101995, "sum": 25.59957522568891, "sumsq": 41.32808885813383, "worst5": [[63163, -1.5954], [63041, -0.7675], [63123, -0.7171], [63086, -0.7084], [63119, -0.7042]]}, "K2": {"n": 256, "mean_diff": 0.09341044986288738, "se": 0.024526694390519306, "sum": 23.91307516489917, "sumsq": 41.50348550750706, "worst5": [[63163, -1.3895], [63119, -0.8351], [63041, -0.8081], [63086, -0.7916], [63118, -0.7319]]}, "K4": {"n": 256, "mean_diff": 0.08979753557710257, "se": 0.024261621514804068, "sum": 22.98816910773826, "sumsq": 40.48980439558654, "worst5": [[63163, -1.2987], [63086, -0.8064], [63123, -0.7927], [63118, -0.7459], [63041, -0.7238]]}, "K8": {"n": 256, "mean_diff": 0.09886291397818514, "se": 0.0244261927577913, "sum": 25.308905978415396, "sumsq": 41.45069910621593, "worst5": [[63163, -1.3144], [63086, -0.8889], [63119, -0.8117], [63123, -0.7828], [63118, -0.7718]]}}, "K8_vs_K1": {"n": 256, "mean_diff": -0.0011354267471621604, "se": 0.010125681811272902, "sum": -0.29066924727351307, "sumsq": 6.693451363942299, "worst5": [[63224, -0.9752], [63206, -0.6113], [63245, -0.3143], [63186, -0.2994], [63193, -0.2985]]}, "arms_K1": {"candidate": {"n": 256, "first_trades": 1798307, "misread": 501117, "misread_rate": 0.2786604289478938, "callbacks": 2798411, "price_rms_bps": 13.031669815105111}, "base": {"n": 256, "first_trades": 1800460, "misread": 520809, "misread_rate": 0.28926441020628063, "callbacks": 2803968, "price_rms_bps": 13.191877082504835}}}, "confirmation": {"seeds": "63256..63511", "vs_unchanged_base": {"n": 256, "mean_diff": 0.10167138193956715, "se": 0.02324563252952809, "sum": 26.02787377652919, "sumsq": 37.92095359704429, "worst5": [[63292, -1.168], [63297, -0.8134], [63272, -0.8122], [63400, -0.7115], [63508, -0.676]]}, "arms": {"candidate": {"n": 256, "first_trades": 1803815, "misread": 503156, "misread_rate": 0.27893991346119196, "callbacks": 2814007, "price_rms_bps": 13.104018634142948}, "base": {"n": 256, "first_trades": 1806420, "misread": 523080, "misread_rate": 0.28956721028332283, "callbacks": 2820614, "price_rms_bps": 13.271076356252479}}}, "holdout": {"seeds": "10000..12047", "scored_once": true, "runner": "unchanged run.py (Blind wrapper, six afterSwap inputs), PROCS=24, single 2048-seed command per arm", "vs_fresh_unchanged_base": {"n": 2048, "mean_diff": 0.07982774296598802, "se": 0.0088450229188323, "sum": 163.48721759434346, "sumsq": 341.029575980668, "worst5": [[11696, -2.2568], [10387, -1.8234], [11741, -1.2491], [10131, -1.2292], [10397, -1.1809]]}, "vs_ref_lattice_qm": {"n": 2048, "mean_diff": 0.4027196627764792, "se": 0.011565975438074649, "sum": 824.7698693662294, "sumsq": 892.9566238377945, "worst5": [[11696, -1.9366], [10942, -1.8758], [10971, -1.7191], [12030, -1.4287], [10578, -1.2904]]}, "fresh_base_vs_ref_lattice_qm": {"n": 2048, "mean_diff": 0.3228919198104912, "se": 0.01069159987528695, "sum": 661.282651771886, "sumsq": 692.7408990952625, "worst5": [[11487, -1.9115], [10942, -1.6077], [10982, -1.4458], [11380, -1.2365], [10990, -1.1505]]}, "arms": {"candidate": {"n": 2048, "first_trades": 14453574, "misread": 4021471, "misread_rate": 0.2782336742455534, "callbacks": 22589242, "price_rms_bps": 13.11917133830678}, "fresh_base_thr09": {"n": 2048, "first_trades": 14472181, "misread": 4180058, "misread_rate": 0.28883400504733875, "callbacks": 22636622, "price_rms_bps": 13.277152756808208}, "ref_lattice_qm": {"n": 2048, "first_trades": 14315685, "misread": 2322695, "misread_rate": 0.162248261260289, "callbacks": 22263118, "price_rms_bps": 13.64283973652866}}, "vs_HA_from_run_py": {"candidate": "+4.666 se 0.038", "fresh_base": "+4.586 se 0.038", "lattice_qm": "+4.263 se 0.039"}, "completed_n": {"candidate": 2048, "base": 2048}}, "first_trade_misread_and_price_rms": {"holdout_candidate": {"misread_rate": 0.2782336742455534, "callback_price_rms_bps": 13.11917133830678}, "holdout_fresh_base": {"misread_rate": 0.28883400504733875, "callback_price_rms_bps": 13.277152756808208}, "holdout_ref_lattice_qm": {"misread_rate": 0.162248261260289, "callback_price_rms_bps": 13.64283973652866}, "note": "misread is against the thr=0.9 decision, which by design calls fewer arbs than latt.py (0.5), so its rate is higher than lattice_qm 16.2%; the candidate lowers it about 1.1 points vs the base at the same threshold."}, "approximation_cost": {"seeds": "63000..63023 (tuning range), all four K", "per_K": {"K1": {"seeds": 24, "first_trades": 168055, "mean_hypotheses_after_call": 1.0, "merges_per_first_trade": 0.8993781797625777, "mean_weight_merged_per_first_trade": 0.8993781797625777, "rms_rival_spread_collapsed_at_merge_bps": 0.3320841515515098, "rms_within_branch_rival_spread_collapsed_bps": 0.8845601912789249}, "K2": {"seeds": 24, "first_trades": 168061, "mean_hypotheses_after_call": 1.9996002613675674, "merges_per_first_trade": 0.8891771440131857, "mean_weight_merged_per_first_trade": 0.4008650363023148, "rms_rival_spread_collapsed_at_merge_bps": 0.43497202940346663, "rms_within_branch_rival_spread_collapsed_bps": 0.8339487209835686}, "K4": {"seeds": 24, "first_trades": 168025, "mean_hypotheses_after_call": 3.996193654553004, "merges_per_first_trade": 0.877678916827853, "mean_weight_merged_per_first_trade": 0.2055228014338887, "rms_rival_spread_collapsed_at_merge_bps": 0.5221854937665896, "rms_within_branch_rival_spread_collapsed_bps": 0.7848958449905814}, "K8": {"seeds": 24, "first_trades": 168088, "mean_hypotheses_after_call": 7.979683686607606, "merges_per_first_trade": 0.8613285897863024, "mean_weight_merged_per_first_trade": 0.12420998247186323, "rms_rival_spread_collapsed_at_merge_bps": 0.5691473590685304, "rms_within_branch_rival_spread_collapsed_bps": 0.7497683023591148}}, "definitions": "merges_per_first_trade: share of first trades where pruning left more than K children; mean_weight_merged: posterior mass folded into the merged child; rms_rival_spread_collapsed_at_merge: weighted sd of ln rival among merged children; rms_within_branch_rival_spread: weighted sd of per-cell post-trade ln rival collapsed into one rival per retail child", "paired_cost_of_collapse": "K=8 vs K=1 on 63000..63255: mean_diff -0.0011 se 0.0101 (flat)", "reading": "The rival hypotheses that branching creates differ by under 1 bp (0.33-0.57 bps at merges, 0.75-0.88 bps within a branch), because every branch clips the rival into the same +-30 bps band around nearly the same price. Persistent rival correlation therefore carries almost no information on the replica; the measured gain comes from the exact router density replacing the fixed fill law."}, "checks": {"zero_change_equivalence": "joint=0 calls ThrLattice.on_trade verbatim; on 63000..63023 every edge identical to thrpol:ThrLattice thr=0.9 (paired mean_diff 0.0 se 0.0, n=24)", "hidden_input_independence": {"runs": 16, "identical_edge_runs": 16, "max_abs_edge_diff": 0.0, "note": "hidden args (arb flag, true price, rival spot, order index, run parameters) garbled and oraclearb=1 requested; JointLattice drops oraclearb, keeps needs_flag False"}, "interface": "on_trade(is_buy, amount_x, amount_y, timestamp, reserve_x, reserve_y); flag argument never read when joint=1; oraclearb option removed in __init__; needs_flag False; no seed, price, rival, order index, run parameter or future callback is read; size/order-rate constants are fixed midpoints, no labels used", "unit_inverse_routing": {"cases": 11247, "max_rel_size_error": 6.177728946398878e-12}, "unit_likelihood_normalization": {"cases": [{"side": "buy", "integral": 0.54628, "mc_fill_prob": 0.54383, "mc_se": 0.00249}, {"side": "sell", "integral": 0.99974, "mc_fill_prob": 1.0, "mc_se": 0.0}, {"side": "buy", "integral": 1.00018, "mc_fill_prob": 1.0, "mc_se": 0.0}, {"side": "sell", "integral": 0.14032, "mc_fill_prob": 0.14175, "mc_se": 0.00174}, {"side": "buy", "integral": 0.59534, "mc_fill_prob": 0.59637, "mc_se": 0.00245}, {"side": "sell", "integral": 0.99902, "mc_fill_prob": 1.0, "mc_se": 0.0}, {"side": "buy", "integral": 0.41798, "mc_fill_prob": 0.41568, "mc_se": 0.00246}, {"side": "sell", "integral": 0.80146, "mc_fill_prob": 0.80007, "mc_se": 0.002}, {"side": "buy", "integral": 1.00069, "mc_fill_prob": 1.0, "mc_se": 0.0}, {"side": "sell", "integral": 0.73056, "mc_fill_prob": 0.73042, "mc_se": 0.00222}, {"side": "buy", "integral": 0.56037, "mc_fill_prob": 0.55748, "mc_se": 0.00248}, {"side": "sell", "integral": 0.64859, "mc_fill_prob": 0.64677, "mc_se": 0.00239}], "reading": "integral of the router density over ln(own post spot) equals the Monte Carlo probability of a positive own fill for one order of that side, within MC error, in all 12 cases (all-own and split regimes)"}, "unit_arb_atom": {"arb_branch_density_integral_over_ln_s": 1.0, "reading": "arb is an atom in price (deterministic observation), its likelihood is the price density at the arb reading per unit ln s; retail is a density over ln s for each price; both are in the same units"}, "commands_under_470s": "longest single command about 175 s"}, "limitations": ["Selected K=1 does not carry hypotheses across steps; persistence (K=2,4,8) was measured on tuning only, where it was flat vs K=1.", "Rival-only retail orders (invisible to us) and intra-step rival moves are not modelled; rival band clip is applied once at the observing step, not along the silent path.", "Arrival factor and size law use fixed midpoint run parameters (lam 0.8, mean size 20).", "Holdout gain +0.080 se 0.009 over the fresh base is below the +0.3 promotion bar: not promoted.", "Replica only; no engine run, no Solidity, gas not measured."], "gas_estimate": {"measured": false, "label": "ESTIMATE ONLY, unmeasured, incremental over the (already over-budget) 121-cell lattice base", "incremental_operations_first_trade": "per nonzero cell of the retail branch (typically 20-60, max 121): 1 exp for cell price (replaceable by multiplicative recurrence), 2 compares for the rival clip, up to 2 sqrt, 1 ln + 1 exp for the size density, 1 ln for the rival mean; plus one arb-branch density read", "incremental_operations_same_step": "per nonzero cell: 1 ln + 1 exp (sell sizes depend on price); buys need one evaluation per hypothesis", "incremental_gas_range_estimate": [60000, 400000], "incremental_storage_slots": {"K1": 0, "K_general": "about (K-1) x (lattice ~121 packed cells + centre + rival + weight) i.e. the lattice state multiplied by K"}, "promotion": "not promoted, so no port is proposed"}, "conclusion": {"incremental_gain_over_unchanged_base_holdout": 0.07982774296598802, "se": 0.0088450229188323, "promotion_bar": 0.3, "promote_to_track_A": false, "inherited_base_gain_note": "base thr0.9 is +0.3229 over lattice_qm on the holdout (inherited, not new gain); the candidate is +0.4027 over lattice_qm in total, of which +0.0798 is this item."}, "code_zb64": "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", "code_sha256_uncompressed_tar": "828a0e3f84827743422ab524e83dc6335c5b8a637585b2bc1e48ba564f4092c9", "code_files": ["REPRODUCE.md", "jointpol.py", "thrpol.py (unchanged base, sha256 663965707d4f20f81ab0ade8ed510742a330605fd9e889d426db1d920abc8958)", "unit_check.py", "diag.py", "pairstats.py"], "code_encoding": "base64(zlib(tar)), no tables or traces", "provenance": {"solved_folder": "https://raw.githubusercontent.com/gtmcknight/amm-sim/e65314f88de945f6d055bfc2aab01c482ab6570e/research/solved (26 files, sha256 checked)", "base_artifact": "https://api.imdnotdead.fun/artifacts/c9d678abb0ed0ee3a31b13a8203b6ee993896db0b6a3875c5c4f52a369bf0434 (thrpol.py only; its rival-policy modification ignored)"}}