{
  "approach": "Blind engine-audit mechanism: the simulator submits passive orders before advancing the latent process, but scores every fill against the post-advance probability and lets arbitrage sweep stale favorable quotes first. S0 quotes around the visible competitor midpoint. S1 applies the one rule: widen both passive quotes by one tick to require one tick of post-step edge before accepting flow.",
  "tried": [
    {"variant":"S0-0 offsets 1/1 size 4","total_edge":-2.8330629429048,"retail_edge":1.3996690198258,"arb_edge":-4.232731962725801},
    {"variant":"S0-1 offsets 2/2 size 4","total_edge":-1.7339111209926,"retail_edge":0.7118649149064,"arb_edge":-2.4457760359},
    {"variant":"S0-2 offsets 1/2 size 5","total_edge":-1.8058036085946,"retail_edge":1.3035725326848,"arb_edge":-3.1093761412802},
    {"variant":"S0-3 offsets 2/1 size 5 (selected)","total_edge":-0.6713914693962,"retail_edge":0.43331553480060003,"arb_edge":-1.1047070041962},
    {"variant":"S1-0 S0-0 plus one tick","total_edge":-1.7339111209926,"retail_edge":0.7118649149064,"arb_edge":-2.4457760359},
    {"variant":"S1-1 S0-1 plus one tick","total_edge":-1.545374994754,"retail_edge":0.3087833179858,"arb_edge":-1.8541583127399999},
    {"variant":"S1-2 S0-2 plus one tick","total_edge":-2.1572997706402,"retail_edge":0.7743268592856,"arb_edge":-2.9316266299272002},
    {"variant":"S1-3 S0-3 plus one tick (selected)","total_edge":-0.49238818100660003,"retail_edge":0.39992654053500004,"arb_edge":-0.8923147215418}
  ],
  "next": "The mechanism improved the paired holdout but remains far below the supplied B reference; test it only as an arbitrage-loss reduction graft and retain the reference strategy as incumbent.",
  "code": "from orderbook_pm_challenge.types import CancelAll, PlaceOrder, Side\n\n\nclass Strategy:\n    def on_step(self, state):\n        bid = state.competitor_best_bid_ticks\n        ask = state.competitor_best_ask_ticks\n        if bid is None or ask is None:\n            return [CancelAll()]\n        center = (bid + ask) // 2\n        boff, aoff = 2, 1\n        # Edge is scored at the post-step probability; leave one tick for that move.\n        boff += 1\n        aoff += 1\n        actions = [CancelAll()]\n        q = min(5.00, max(0.01, 12.0 - abs(state.yes_inventory - state.no_inventory) * 0.10))\n        if state.free_cash >= (center - boff) * q / 100.0 and center - boff >= 1:\n            actions.append(PlaceOrder(Side.BUY, center - boff, q))\n        if state.yes_inventory + state.no_inventory < 200 and center + aoff <= 99:\n            actions.append(PlaceOrder(Side.SELL, center + aoff, q))\n        return actions\n",
  "code_sha256": "182eaf12a25643c1823430f0e1473b928507ae64e813bfe5caa0e4838c7cd5f3",
  "code_s0": "from orderbook_pm_challenge.types import CancelAll, PlaceOrder, Side\n\n\nclass Strategy:\n    def on_step(self, state):\n        bid = state.competitor_best_bid_ticks\n        ask = state.competitor_best_ask_ticks\n        if bid is None or ask is None:\n            return [CancelAll()]\n        center = (bid + ask) // 2\n        boff, aoff = 2, 1\n        actions = [CancelAll()]\n        q = min(5.00, max(0.01, 12.0 - abs(state.yes_inventory - state.no_inventory) * 0.10))\n        if state.free_cash >= (center - boff) * q / 100.0 and center - boff >= 1:\n            actions.append(PlaceOrder(Side.BUY, center - boff, q))\n        if state.yes_inventory + state.no_inventory < 200 and center + aoff <= 99:\n            actions.append(PlaceOrder(Side.SELL, center + aoff, q))\n        return actions\n",
  "tuning_score": {"seeds":"115000..115499","n":500,"s1_mean":-0.49238818100660003,"s0_mean":-0.6713914693962},
  "paired": {"seeds":"200000..200999","n":1000,"complete":true,"mechanism_diff":0.0811321440683,"mechanism_se":0.03710700637513639,"mechanism_retail_diff":-0.04052142033609999,"mechanism_arb_diff":0.1216535644041,"reference_diff":-100.2574288960915,"reference_se":5.731347603240803,"s1_mean":-0.5615507437092,"s0_mean":-0.6426828877775,"b_mean":99.53422961247875,"failures":[]},
  "graft": "After computing the other strategy's passive bid and ask ticks, add one tick to each distance from its probability estimate (or midpoint proxy), preserving its sizing and inventory guards. This sacrifices some retail fills to avoid fills whose post-step score edge is erased by the process move.",
  "seconds_per_simulation": 0.25
}
