How It Works
From a raw forecast to a settled, reflected-upon bet. This page walks the full pipeline at a technical level. The pick structure is described in full; the exact tuned thresholds and calibration coefficients — the actual edge — stay private.
The loop & its cadences
The engine runs continuously. Different stages refresh on different clocks so it reacts to price moves quickly while only re-pulling expensive forecast data when new model runs land.
| Stage | Cadence |
|---|---|
| Re-poll Polymarket prices | ~every 60 seconds |
| Re-pull weather forecast ensemble | ~every 30 minutes (around NWP runs) |
| Resolve closed markets | ~every 15 minutes |
| Self-healing sweep | every resolution sweep |
| Daily self-test + on-chain anchor | once per UTC day |
1. Data ingestion
Polymarket resolves each weather market against a specific Weather Underground (WU) airport station, so the agent’s real job is to predict that exact station’s number. For each of the 26 covered cities it pulls: the WU forecast and recorded high (the resolution source), hourly METAR observations from the same airport sensors as a real-time same-day cross-check, a three-model forecast ensemble (ECMWF, GFS, ICON) via Open-Meteo for the probability distribution, and the open brackets from the Polymarket Gamma API. NOAA/NWS is the fallback when Open-Meteo is rate-limited, and a stale-cache is the last resort — so the agent never goes blind.
2. Modelling the outcome
The three forecasts are summarised into a mean (μ) and spread (σ), where σ is the larger of the model disagreement and a baseline horizon uncertainty. That defines a Normal distribution over the day’s high — tight when models agree, wide when they don’t.
3. Pricing each bracket
The probability that the outcome lands in a bracket [a, b] is P = Φ((b−μ)/σ) − Φ((a−μ)/σ) using the standard normal CDF. The parser classifies each market as ceiling, floor, range or single-value and handles open intervals correctly (an “above X” ceiling runs to +∞, a “below X” floor to −∞) so the probabilities stay internally consistent.
4. Finding edge & the seven gates
Edge is the model probability minus the live market price. Candidates must clear seven independent quality gates — failing any one drops the signal entirely rather than weakening it.
| Gate | Checks |
|---|---|
| G1 — Edge floor | The mispricing is large enough to be real, not noise. |
| G2 — Confidence floor | Model probability sits in a sane band, not at the extremes. |
| G3 — Entry-price band | The market price is in a tradable range. |
| G4 — Volume floor | The bracket has enough 24h volume to fill. |
| G5 — Model-count floor | At least two forecast models are present. |
| G6 — Directional block | Skip already-expensive contracts with asymmetric payoff. |
| G7 — Sigma sanity | The spread is within plausible physical bounds. |
The keystone gate. Beyond G1–G7, a WU resolution-source gate compares the agent’s prediction to the Weather Underground forecast that will settle the market — if they disagree too far, the bet is blocked outright, because betting against the resolver is betting to lose. Additional intelligence gates run alongside: a consensus gate (the forecast models, WU and METAR must agree within tolerance), an expected-value gate (rejects any pick that is negative after Polymarket fees), a zone filter that blocks already-expensive “widow-maker” price zones, a per-city dedupe cap, and a final news veto.
5. Strength & sizing
Survivors are tiered strong / moderate / soft by edge size, model agreement and spread. Funded picks are sized with a half-Kelly rule scaled by tier, bounded by a per-bet min and max and capped by the daily budget. Conviction buys size — within hard limits the agent cannot exceed.
6. Funded vs display signals
Picks that clear every gate are funded — signed, published and staked. Strong near-misses may be published as display-only signals: a real strength tier, shown on the board for breadth, but zero stake and never counted in performance. This is how the board shows 20–40 signals a day without a single fabricated number entering the track record.
Published win rate and P&L are computed on funded signals only.
7. Risk guards
Before any funded bet is placed it passes the risk layer — anti-revenge city pause, global drawdown stop-loss, per-detector penalties, per-event loss limiter and the daily budget cap. Open positions are auto-exited if a fresh forecast turns against them. The full mechanism is in the Whitepaper, Part V.
8. Execution: manual, copy, or autonomous
The same published pick can be acted on three ways — trade it yourself, mirror it with one-click copy, or let autonomous execution place and manage it for you on a delegated account. All three settle on Polymarket.
9. Resolution & reflection
Resolution is deliberately crash-proof: rather than guessing the daily high itself, the engine polls the Polymarket Gamma API (reading umaResolutionStatus and outcomePrices) and settles each bet the moment its own market confirms — Paris at 3pm, Miami at 5pm. It then books the win or loss and realized P&L, broadcasts wins to Telegram, and feeds every outcome into the lesson stream and the learning loop. Trusting only Polymarket’s own resolution removed a whole class of error from earlier designs that used third-party archives. See The Engine for the brain and self-healing detail.
Anatomy of a signal
| Field | What it tells you |
|---|---|
| City & market | Which Polymarket weather market the signal refers to. |
| Side & bracket | The outcome and temperature bracket the agent favours. |
| Strength tier | Strong / moderate / soft conviction. |
| Rationale | The forecast view behind the edge, in plain language. |
| Funded / display | Whether the agent is staking this pick or showing it for breadth only. |
| Signature & timestamp | Cryptographic proof of when and by whom the signal was issued. |