How MarketMiss computes a fair probability
MarketMiss shows one number next to every US economics contract on Kalshi and Polymarket: a fair probability. This post explains exactly where that number comes from, because a probability you cannot audit is just an opinion.
The question a contract asks#
Every contract on the board is a yes-or-no question about a scheduled data release: Will August CPI come in above 3.0% year over year? Will the Q3 GDP advance estimate print above 3.0%? The market price is what traders collectively think the chance of YES is. A YES contract trading at 39 cents means the market puts the odds around 39%.
Our job is to produce an independent estimate of the same odds, then show you the gap.
Step 1: start from a public nowcast#
For inflation we use the Cleveland Fed's inflation nowcast. For GDP we use the Atlanta Fed's GDPNow. Both are published, free, updated on business days, and built by people who do this full time. We do not try to out-forecast them. We take their current estimate as the center of our distribution.
For unemployment and payrolls there is no equivalent public nowcast, so we use the last released value as the center instead. That is a deliberately weak model, and the board says so through a lower confidence label.
Step 2: measure how wrong the nowcast has been#
A point estimate is not a probability. To turn 3.12% into "the chance CPI exceeds 3.0%" we need to know how far the nowcast usually misses.
So we pull the history: for every past release, the nowcast's final value and what the statistical agency actually printed. The differences are the residuals. For CPI that is more than a hundred months of misses; for GDP it is sixty quarters.
We fit those residuals with a Student-t distribution rather than a normal one. The t has fatter tails, which means surprise months count for more and the model is less sure of itself than a bell curve would be.
Step 3: widen the error for time#
A nowcast published eight weeks before a release is much less accurate than one published the day before. The historical residuals only capture the final miss, so we scale the error up with the days remaining until the contract resolves. A GDP contract two months out gets roughly double the error of one resolving tomorrow. That widening is recorded on every forecast so you can see it.
Step 4: read off the probability#
With a center and a distribution, the fair probability is simply the area above the contract's threshold. If the nowcast is 3.12%, the threshold is 3.0%, and the typical miss is 0.11 points, the chance of exceeding 3.0% works out to about 71%. If the market says 58%, the gap is +13 points.
We also bootstrap the residual sample to produce a fair range, so you see "71%, likely 66% to 76%" rather than a false-precision 71.4%.
What we deliberately do not do#
- No language model produces or adjusts a probability. The explanation text under each forecast is a template filled from the same inputs that produced the number, so the words can never drift from the math.
- No fair value for Fed decisions. An honest Fed model needs futures data we would have to pay for. Rather than guess, the Fed row shows the market consensus and the label "no model".
- No editing history. Every forecast is stored with its method version and inputs, and is never updated or deleted. The track record page scores every resolved event, wins and losses alike, against the market.
How to read the board#
The gap column is not a trading signal. It is where our model and the market disagree, ranked by size, confidence, and freshness. A big gap on a low-confidence row usually means the model knows less than the market. A moderate gap on a high-confidence row is the kind of thing worth reading the evidence on.
Probabilities are estimates and may be wrong. MarketMiss executes no trades and holds no funds. The track record page is the only claim we make about how good the model is, and it is public from the first resolved event.
See the board
MarketMiss lists live Kalshi and Polymarket prices for US economics contracts next to an independent fair probability computed exactly as described here, ranked by the gap. Browsing is free; an account adds a watchlist and the model's prediction log.