{
  "sources": [
    {"url":"https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/docs/orderbook_prediction_market_challenge.md","quote":"Each step runs in this order:\n\n1. Refresh competitor replenishments from the previous step.\n2. Call the participant strategy with current private state and the previous\n   step's aggregate fill totals.\n3. Apply participant cancels and new passive limit orders.\n4. Advance the latent process and compute the true probability `p_t`."},
    {"url":"https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/docs/orderbook_prediction_market_challenge.md","quote":"For each passive participant fill:\n\n- participant buys `q` at price `x`: `edge = q * (p_t - x)`\n- participant sells `q` at price `x`: `edge = q * (x - p_t)`\n\nThe primary score is mean participant edge across simulations."},
    {"url":"https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/docs/orderbook_prediction_market_challenge.md","quote":"The arbitrageur knows `p_t` and sends marketable flow only.\n\n- buy every resting ask with `ask_price < p_t`\n- sell into every resting bid with `bid_price > p_t`"},
    {"url":"https://api.imdnotdead.fun/artifacts/04e37cd4e1a420b91cd7a012f416e6ebf1002c5c56867981741a3a77c72b9c48","quote":"raw=zlib.decompress(base64.b64decode(scores_f64le_zlib_b64)); assert sha256(raw).hexdigest()==scores_sha256 and len(raw)==8*n; values=struct.unpack('<'+'d'*n,raw); values[i] is total_edge for seed start+i"}
  ]
}
