01The claim
Trading teams usually arrive with good tools for price risk. They estimate what a share should be worth, protect themselves from traders with better information, and cap the size of their positions. Settlement is easier to dismiss as plumbing: the event happens, the market pays. In practice, there can be a meaningful gap between what happened and what the contract says happened. That gap shows up in P&L (profit and loss), yet many traders spend far more time modeling the price than reading the contract.
For risk control, resolution risk is a low-probability cost that belongs beside fees and slippage (the difference between the price you expect and the price you actually get). Careful reading can also create a durable trading advantage. It rewards being correct more than being fast.
02How Polymarket settles through UMA
Polymarket writes the market rules and operates the adapter, but final settlement runs through UMA's oracle process. When a question is created, its rules are stored on-chain (on the blockchain) as ancillary data, UMA's term for the text attached to a resolution request. UMA uses an optimistic oracle, a system that accepts a proposed answer unless someone challenges it. A proposer submits an outcome and posts a bond (a deposit returned if the proposal succeeds and forfeited if it loses). A two-hour challenge window follows. If nobody disputes the proposal, the market settles and winning shares can be redeemed for $1 through the Conditional Tokens Framework (CTF), the smart contracts that create and redeem the outcome tokens.
Since Polymarket's April 28, 2026 exchange upgrade, winning positions have been redeemable for pUSD (Polymarket USD), a dollar token backed by USDC (USD Coin). The undisputed route takes about two hours from the proposal. A dispute takes a different route. The first one does not trigger a vote: Polymarket's adapter contract (the code connecting Polymarket to UMA) resets the question and starts another proposal round. If that second proposal is also disputed, the question goes to UMA's DVM (Data Verification Mechanism). UMA token holders who lock up their UMA can vote. Voting has a 24-hour commit period followed by a 24-hour reveal period; voters lock in their choices first and disclose them later. A fully disputed resolution usually takes four to six days, but it can take longer if a vote rolls into another round.
I checked these parameters against the live settlement contracts in July 2026. On newly created markets, the default proposal bond was $500 in USDC.e (the bridged version of USD Coin used on Polygon, the blockchain network Polymarket runs on). High-profile markets required $25,000 to $50,000. Polymarket funded a small proposer reward—$2 on an ordinary market. The challenge window was 7,200 seconds, or two hours, although it can be configured per question.
Two versions of the resolution system still run side by side. Markets created before August 2025 use version 2 of UMA's Optimistic Oracle; newer markets use a Polymarket-managed variant. Two operational details are easy to miss. First, new markets have accepted proposals only from an approved list of historically accurate proposers since September 2025, while anyone can still dispute by posting a matching bond. Second, the loser of a dispute does not hand the entire bond to the winner: half goes to the winner and half to the UMA protocol's treasury. Polymarket's documentation still quotes a $750 default bond, while the live market metadata we queried showed $500. When they disagree, I use the current value recorded in the live contracts.
The final vote has four possible answers, not two: Yes, No, 50/50 (every share pays $0.50), and "too early" (the question resets without resolving). A market presented as having two outcomes can therefore settle at half value. Once UMA's result is written to the settlement contracts, Polymarket cannot reverse it. In July 2025, a market with more than $200 million in volume asked whether Volodymyr Zelenskyy would wear a suit. It resolved No even though many viewers thought the photographs showed him wearing one. Disputes are not a procedural formality; they can change the payout.
From a trading perspective, there are two clocks. The real-world event ends first; the market settles on-chain hours or days later. During that gap, a likely winner may still trade at $0.93–$0.98. Section 05 covers that trade. We budget separately for three ways it can go wrong: disputed resolution, which extends the timeline and may change the outcome; ambiguous resolution, where the written rules do not fully cover what happened; and surprise resolution, where a source or technical detail produces an outcome we did not price.
Working notes · from the weather system
- If we cannot sell a position before trading closes, we have to hold it through resolution. Our paper-trading simulator kept valuing stuck positions at the market's midpoint (halfway between the best buy and sell prices) forever. Live markets do not work that way: the order book disappears and the final payout is all that matters. We logged this missing settlement model as a risk before going live.
- The live system never infers a result from market prices; it reads the on-chain resolution status. In paper mode we sometimes assumed that "the order book vanished and the price was near zero or one" meant the market had resolved. That shortcut is forbidden in live trading. If the status is unclear, we leave the position open rather than guess.
03The rules are the contract
On Polymarket, the title tells you the topic; the resolution rules determine the payout. For a weather market, those rules need to identify four things: the station or data source, the unit, the reading precision, and the bucket boundaries implied by that precision. If our system cannot identify all four, it fails closed—in other words, it refuses to trade rather than fill in the blanks. We also account for any official clarification that Polymarket publishes after launch.
Working notes · from the weather system
-
Our weather system converts every description into four structured fields:
{ station, unit, precision, bucketing }. It iscompleteonly when the station, unit, and bucket definition—including the stated precision—parse confidently. If any part is ambiguous, the system cannot treat an observed temperature as decisive. - Precision is where many mistakes start. If the rule says "measures temperatures … to one decimal place (e.g., 9.1°C)", the bucket label N is the floor (the greatest whole number no higher than the reading). The interval [N, N+1) includes N but excludes N+1. If the source rounds readings to the nearest whole degree using half-degree boundaries, the corresponding interval is [N−0.5, N+0.5).
- The resolution station is often buried in a Weather Underground web address. The final four-letter path segment is its ICAO (International Civil Aviation Organization) station code: …/gb/london/EGLC.
- The parser is deliberately conservative. It recognizes Polymarket's standard wording; unfamiliar wording returns "unknown" instead of a guess.
04Cases from live weather trading
We found each of the following problems in our live system during a June 2026 review. The lessons apply well beyond weather.
Case 1: 32.8 °C resolves "32", not "33"
Our system assumed every market rounded to the nearest degree. The Hong Kong Observatory publishes readings to 0.1 °C, so its "32" bucket covers [32.0, 33.0): a reading of 32.8 resolves as "32", not "33". With the wrong convention, the top and bottom catch-all buckets in every affected market were off by half a degree or more.
Lesson: bucket boundaries are a settlement fact, not a modeling choice. A half-degree boundary error can wipe out the entire expected advantage in a temperature market.
Case 2: A name match is not a station match
Our first "verified station" check compared only the city name. We had London configured as EGLL (Heathrow), while the market resolved at EGLC (London City). The check passed, so we priced and traded the wrong thermometer. Now the parsed rules must be complete and the station code must exactly match the one configured in our system.
Lesson: a wrong source mapping is worse than a missing one because it makes a bad signal look trustworthy.
Case 3: The 85-percentage-point gap that was a bug
During the review, one Hong Kong market showed a gap of 85 percentage points between our fair-value estimate and the market price. The gap survived our uncertainty adjustment, which makes aggressive estimates more conservative. It turned out to be the bucketing bug from Case 1. We added two simple checks that do not depend on the parser. First, probabilities across a complete set of outcomes must add up to between 0.98 and 1.02. Second, the system rejects a one-sided trade when its adjusted estimate differs from the market by more than 25 percentage points unless we have an authoritative observation.
Lesson: when a gap is this large, I assume the model is broken before calling it a genuine advantage. The market had the boundaries right; we didn't.
Case 4: Calibrating against the wrong truth
When no station reading was available, we scored forecast providers against a weather model's estimate for a map cell—effectively, a model graded by another model. Worse, that estimate could cause us to mark a position as "decided by observation." We now evaluate forecasts only against the official station reading. A position is marked "decided" only when an authoritative observation carries the same station identifier (ID) as the contract.
Lesson: a forecast is not a known outcome. We never treat model output as ground truth (the authoritative observed result).
05Where the mispricing pays
These checks stop bad trades, but they can also identify good ones. When other traders focus on the event and skim the rules, understanding the contract properly can create a trading edge—an expected advantage over the market. The important part is separating that trade from a similar-looking one with much worse downside.
A workable trade: buying during the resolution lag
The process in section 02 creates a window between the real-world result and formal settlement. During that window, a winning share can still trade at $0.93–$0.98. If the authoritative source named in the rules has already published the result, buying below $1 can offer a short-duration return. Before capital and resolution costs, the edge is the maximum $1 payout minus the ask (the lowest available selling price) and trading fees. This trade usually depends less on speed than on reading the criteria correctly. You have to be willing to hold through settlement if there is no exit.
Our system allows this trade only when the named source reports the result with clear
provenance (a traceable record of where the observation came from), the observation
passes our high-confidence check, and rulesMatch is true. That internal
check means the market's criteria and named source match the observation we received.
If any part fails, the system treats the input as a forecast and does not trade. It
also rejects favorites priced above $0.75 unless an authoritative observation has all
but decided the result.
What goes wrong without the source check
Remove that check and the strategy becomes simple: buy $0.92–$0.98 "sure things" because the price makes them look nearly certain. It wins often, but one loss can erase many wins. Before fees, a full loss at $0.95 wipes out nineteen five-cent wins. Disputed and surprising resolutions are exactly the cases that the price may not warn you about. Trying to trade before an oracle update has a similar problem: it means racing dedicated infrastructure to read a source and trade very short-lived crypto markets, while fees consume much of the possible edge.
The cross-venue trap: same event, different rules
Buying the cheaper version of a market on one venue and selling the more expensive version on another can look low-risk because one position should offset the other. That works only if both positions settle on the same claim. If the cutoff dates, data sources, or tie rules differ, the two venues are offering different contracts even when their titles describe the same event. That mismatch may not appear in the price history. It appears at settlement, when both positions can lose together. We require an exact rules match and never record the pair as guaranteed profit.
06Putting a price on resolution risk
When we may have to hold through resolution, we treat resolution risk as an explicit
cost per share, just like fees and slippage. For every possible trade, we subtract
seven expected costs from its gross edge (expected profit before costs):
adverseSelection, exit, holding,
staleReference, resolution, partialFill, and
cancelFailure. Together, they cover losses from trading against
better-informed participants, closing a position, tying up capital, using stale data,
unexpected settlement outcomes, incomplete orders, and failed cancellations. We
place the order only if the expected profit remains positive after all seven
deductions.
The resolution cost is never zero. Even with authoritative ground truth in hand, we still allow for a small chance of a dispute, ambiguity, or unexpected interpretation. The arithmetic gets uncomfortable at high prices. Buying an apparent winner at $0.97 leaves three cents of gross profit. A 1% chance of a zero payout lowers the expected redemption value from $1.00 to $0.99, cutting that edge to two cents before any other costs. These trades can look good for a long time because the missing cost is small on most days. One rare loss can still wipe out months of gains.
We charge for time as well. Holding through redemption ties up capital, so the system applies an annualized capital rate (the yearly opportunity cost of that money) to the expected time until settlement. The simplest example is a boxed position: one YES and one NO share, which together are worth $1 and can normally be merged—combined and converted back into $1—before resolution. If we hold YES, buying NO completes the pair; its value is $1 minus the NO ask and trading fees. The same works in reverse. We add a capital-lock cost only when the pair cannot be merged immediately and must wait for redemption. A dispute can extend that wait from hours to days.
We also use two portfolio-level controls. First, the worst possible loss across all temperature buckets for one event is capped at 3% of bankroll (the capital set aside for trading). Each additional bucket must also pass an incremental EV (expected value) test: adding the bucket must increase expected profit after its extra costs and risk. That prevents related exposure from building up unnoticed. Second, we increase size only when the evidence improves. A one-sided weather position starts at 25% of maximum size. It reaches full size only after calibration checks show, for example, that outcomes given a 70% probability happen roughly 70% of the time, and the model beats the market on data that was not used to build it. Our internal minimum is 30 resolved forecasts paired with market prices, measured by both Brier score (the average squared error of probability forecasts) and log loss (a score that heavily penalizes confident, wrong forecasts).
These cost estimates will never be exact. Their job is to reject trades that look profitable before costs but lose money once resolution risk is included.
07A resolution-risk checklist
These are the rules I would put in place on any trading team working on these venues. Each one comes from a failure described above.
- Parse every market's resolution criteria into structured fields. If the rules cannot be parsed, do not trade.
- Verify the resolution source by its exact identity, not a display name. The station or feed ID must match the contract.
- Ground truth must be independent, authoritative, and traceable to the source named in the contract. Model output never qualifies.
- Check the full set of outcomes. Their probabilities should add up to roughly 1.0 (100%) before trusting any individual estimate.
- Treat a large gap between the model and the market as a possible bug before calling it an opportunity. Reject trades beyond a fixed limit unless an authoritative observation supports the difference.
- Keep an approved list of resolution sources you have actually read and trust; novel wording goes to a human, not to a text-matching parser's best guess.
- Set worst-case resolution-loss limits for each position and event. Our event limit is 3% of bankroll.
- Include the remaining chance of a dispute in every net-edge estimate (expected profit after costs) used to make a trade decision.
08Open questions
- How often are UMA proposals disputed, and which markets changed price late in the resolution process?
- Which resolution sources—league results, reports from news agencies such as Reuters or the Associated Press, government statistics—are reliable enough to treat an outcome as known?
- How quickly does the resolution-lag edge shrink as more trading teams build automated feeds from official sources, and how much opportunity will remain?