{
  "sources": [
    {
      "url": "https://api.imd.fun/artifacts/5ec4e47200eb5e16cec281f133e5e7fbfd73b3157fcf5f2c60d013ffa9300b76",
      "quote": "Keeps the base (tick probes, sub-tick belief, quotes one tick inside the competitor, marginal sizing, resting orders, YES held to cover asks below 5c) and changes how that YES is bought."
    },
    {
      "url": "https://api.imd.fun/artifacts/d3ff83a7fc00bc1b69254d96e49cb9ea9f0d570b9b4a494787a977ee2e4d55c0",
      "quote": "Retains the base passive quoter, queue-priority management and low-price YES inventory policy, but replaces the probability-space grid filter with a censored latent-score filter."
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/docs/orderbook_prediction_market_challenge.md",
      "quote": "Strategies submit passive limit orders once per timestep. The market is driven\nby:\n\n- a latent Gaussian score process with compound Poisson jumps\n- an informed arbitrageur that knows the true probability\n- uninformed retail market orders\n- a static hidden-liquidity competitor"
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/results.py",
      "quote": "@property\n    def mean_edge(self) -> float:\n        successes = [result.total_edge for result in self.simulation_results if not result.failed]\n        return sum(successes) / len(successes) if successes else 0.0"
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/process.py",
      "quote": "\"\"\"Exact conditional probability that the terminal score finishes above zero.\n\n    The future increment is modeled as:\n\n    - Gaussian diffusion over the remaining steps\n    - plus a compound Poisson number of Gaussian jumps\n    \"\"\""
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/config.py",
      "quote": "class ParameterVariance:\n    \"\"\"Recommended simulation-randomization bands.\"\"\""
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/engine.py",
      "quote": "process.step()\n                probability = process.current_true_probability()"
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/market.py",
      "quote": "def refresh_competitor(self, step: int) -> None:\n        replenishments = self._pending_competitor_replenishments\n        self._pending_competitor_replenishments = []\n        for side, tick in replenishments:\n            if self._config.min_price_tick <= tick <= self._config.max_price_tick:\n                self._create_competitor_order(side, tick, submitted_step=step)"
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/sandbox.py",
      "quote": "ALLOWED_MODULES: frozenset[str] = frozenset({\n    # Math and numerics\n    \"math\", \"cmath\", \"statistics\", \"random\",\n    \"decimal\", \"fractions\", \"numbers\","
    }
  ]
}
