01The claim

Desks entering prediction markets bring a mature toolkit for price risk: fair-value models, adverse-selection guards, inventory limits. Settlement gets treated as plumbing; the event happens, the market pays. But the distance between what happened and what the contract says happened is a real, recurring source of P&L, and it is systematically mispriced because almost nobody reads the contract as carefully as they model the price.

Two consequences follow, and this piece walks both. Defense: resolution risk is a tail you must price like fees and slippage. Offense: resolution mechanics, held to a higher standard than the crowd's, are one of the few durable edges that require correctness rather than speed.

02How Polymarket settles: the UMA pipeline

[Skeleton: walk the pipeline end to end. Free-text resolution criteria on the market → an outcome is proposed to UMA's optimistic oracle against a bond → challenge window → undisputed proposals resolve; disputed ones escalate to a UMA token-holder vote → on-chain resolution → redemption at $1/$0. Diagram here.]

Working notes · from the weather book

  • The structural fact the book traded around: after an outcome is real-world decided, there is a propose → challenge window before on-chain resolution. During that lag a near-certain winner still trades at $0.93–$0.98.
  • The three failure classes we provisioned for: disputed resolution (the proposal is challenged), ambiguous resolution (the criteria genuinely under-specify the world), and surprise resolution (the market settles on a source or technicality you didn't price).
  • Anything held past its exit window rides to resolution. Paper trading marked stuck positions to mid forever; live does not: the book vanishes and you own the tail. The simulator never modeled settlement, and that gap was itemized as an unmodeled tail before go-live.
  • Live never infers resolution from prices; it reads protocol state. Inferring from "book vanished + price pinned to an extreme" was a paper-mode crutch, explicitly forbidden in production. Ambiguous books are left open, never guessed.

03The description is the contract

On Polymarket the market description is not marketing copy. It fully specifies settlement. For a weather market it pins four fields: the resolution station or source, the unit, the reading precision, and the bucket boundaries that precision implies. If you cannot parse all four, you cannot price the market. The only safe posture is to fail closed and trade no size.

Working notes · from the weather book

  • The book parses every weather description into a structured contract: { station, unit, precision, bucketing }. It is complete only when station, unit, and bucketing all parse confidently; anything ambiguous fails closed and observation-sized trading is blocked.
  • Precision is the crux. "Measures temperatures … to one decimal place (e.g., 9.1°C)" → the bucket label N is the floor of the reading: bucket = [N, N+1). "…to whole degrees Celsius (e.g., 9°C)" → the published reading is already rounded: bucket = [N−0.5, N+0.5).
  • The resolution station often hides in a Wunderground URL: the ICAO is the last four-letter path segment (…/gb/london/EGLC).
  • Parsing is deliberately conservative: the patterns target Polymarket's canonical phrasing, and novel phrasing yields "unknown" rather than a guess.

04Case studies from a live weather book

Everything below happened to our own book and was caught in live review, June 2026. Each case generalizes well beyond weather.

Case 1: 32.8 °C resolves "32", not "33"

The book assumed round-to-nearest buckets for every market. Hong Kong Observatory records to 0.1 °C, so its "32" bucket is [32.0, 33.0), floor rather than round: a 32.8 reading resolves "32". Under the wrong convention every open-ended above/below tail was off by half to a full degree, in every market on the book.

Lesson: bucket boundaries are a settlement fact, not a modeling choice. A half-degree of boundary error is routinely the entire edge in a temperature market.

Case 2: A name match is not a station match

"Verified station" originally checked the city name. London was configured as EGLL (Heathrow); the market resolves at EGLC (London City). The check passed, and the model traded a thesis about the wrong thermometer. The fix requires the parsed contract to be complete and its station to equal the configured override exactly.

Lesson: a wrong source mapping is worse than a missing one: it converts your highest-conviction signal into confident noise.

Case 3: The 85-point edge that was a bug

In live review a Hong Kong market showed an 85-point gap between model fair and the book, and the "edge" survived confidence shrinking. It was the bucketing bug from Case 1. Two cheap guards came out of it, both independent of the parser: a complete outcome partition must carry raw probability mass in [0.98, 1.02], and directional entries are refused when the shrunk fair differs from the book by more than 25 points with no authoritative observation in hand.

Lesson: past some size, a divergence stops being alpha and becomes a bug detector. The market had the boundaries right; we didn't.

Case 4: Calibrating against the wrong truth

Where no station reading existed, forecast providers were scored against a weather-model grid estimate (a model graded by a model), and a grid estimate could even promote a position to "decided by observation" conviction. Post-fix, calibration scores only against the official station, and "decided" requires an authoritative reading whose station id matches the contract.

Lesson: a forecast is not a known outcome. Nothing model-derived may masquerade as ground truth.

05Where the mispricing pays

[Skeleton: the same mechanics, held to a higher standard than the crowd's, become offense. Frame as one clean edge, one graveyard, one silent killer.]

Working notes · from the weather book

  • Resolution-lag capture. Between real-world decided and on-chain resolved, winners trade $0.93–$0.98. With independent, authoritative confirmation, buying the winner below $1 is a short-duration, high-probability return: net edge = 1 − ask − fee, banked at redemption. Among the most reliable prediction-market edges that require no speed. What they require is correctness about the resolution criteria.
  • The gate that keeps it honest (the book's known-outcome core): a named source must report the result with provenance; confidence must clear a high bar; and rulesMatch (the market's criteria and source-of-truth match what we observed) must hold, or the trade is forbidden. Anything less is a forecast.
  • Weather-book tightening: favourites above $0.75 are rejected outright unless the observation has nearly decided the outcome.
  • Why the naive version is the graveyard. Naked favourite-sweeping at $0.92–$0.98 with no resolution edge: beautiful win rate, occasional −100%. Dispute and surprise resolution are exactly that tail. Same graveyard, different grave: oracle front-running (racing the oracle's data source on short-dated crypto markets), a speed race whose fee schedule exists specifically to tax it away.
  • Cross-venue relative value dies on criteria mismatch. The "same" event on two venues with different cutoff dates or sources is not the same claim. Resolution-criteria mismatch is the silent killer: require a strict rules match, and never model the pair as locked profit.

06Pricing the tail

[Skeleton: if you hold to resolution, resolution risk belongs in the same ledger as fees and slippage, an explicit cost term rather than a vibe. Show the accounting.]

Working notes · from the weather book

  • Net edge charges explicit cost terms against the trade leg: adverse selection, exit, holding, stale reference, partial fill, cancel failure, and resolution. Even with ground truth in hand, a residual dispute/surprise probability is charged against the edge, alongside hard per-position caps.
  • Event-level worst case: across all buckets of one weather event, worst-case loss is capped at 3% of bankroll, and each additional bucket entry must clear an incremental-EV gate.
  • Holding to redemption locks capital. A box (YES + NO always redeems $1) is valued at 1 − opposite ask − fee − capital-lock cost, where the lock cost scales an annualized capital rate by time-to-resolution. A dispute is, among other things, a repricing of that lock.
  • Sizing rides evidence, not conviction: directional weather size starts at a 25% probe and ramps to full only after the calibrated model beats the market out of sample (Brier + log-loss) over ≥30 market-paired resolved forecasts.

07A resolution-risk checklist

What we would institutionalize on any desk touching these venues. Every line maps to a scar above.

  1. Parse every market's resolution criteria into structured fields. Anything unparseable fails closed to no-size.
  2. Verify the resolution source by identity, not name: station id or feed id equal to the contract's, exactly.
  3. Ground truth must be independent, authoritative, and provenance-matched to the contract source. Model output never qualifies.
  4. Sanity-check the outcome partition: a complete set must price to mass ≈ 1 before any per-bucket fair is trusted.
  5. Treat a large model-vs-book divergence as a bug detector first and alpha second; refuse entries past a hard bound unless an authoritative observation backs the gap.
  6. Keep an allowlist of resolution sources you have actually read and trust; novel phrasing goes to a human, not to a regex's best guess.
  7. Cap the resolution tail: per-position and per-event worst-case limits (ours: 3% of bankroll per event).
  8. Charge residual dispute probability in every net-edge number that survives to a trade decision.

08Open questions

  • Dispute-rate data: the historical UMA dispute base rate, and the resolutions that repriced late.
  • V2 settlement details (pUSD?) and whether redemption mechanics changed with the April 2026 CLOB migration.
  • A taxonomy of resolution sources by category (league finals, wire-service calls, government statistics) and which are safely "known outcome" grade.
  • How quickly the lag edge compresses as more desks run ground-truth feeds, and where the floor is.