How to Price Prediction Markets as Fixed Odds (2026 Sportsbook Guide)
An exchange's last trade is not a bookmaker's price. How a sportsbook turns a market probability into fixed odds: risk shaping, overround, liability and failure modes.

TL;DR
A prediction exchange publishes a trade price, not a bookmaker's price. On Polymarket the displayed number is the bid–ask midpoint, or the last trade when the spread is wider than $0.10; Kalshi's API hands over the best YES bid, the best YES ask and the last traded YES price as three separate fields. None of them carries a margin, a view of the liability already on the book, or protection against a thin or stale source. A fixed-odds operator needs three steps: a probability it trusts, a risk-shaping layer (order-flow weighting, liability on each side, staleness, circuit breakers) and an overround formula per market type. This guide shows the arithmetic end to end and lists the failure modes a trading desk has to catch.
Key takeaways
- An exchange price is a fact about an order book, not about the event. Polymarket's documentation defines its display as the bid–ask midpoint, falling back to the last traded price when the spread exceeds $0.10; Kalshi's API returns bid, ask and last trade as separate fields.
- Thin books are common outside the top markets: a pre-registered study of 600 Polymarket markets (first version 27 April 2026) describes a tail of thin or niche markets dominated by one to three wallets, and found a median quoted spread of about 400 basis points in the 0.4–0.6 price range and 1,300–1,800 basis points below 0.10.
- Overround is a formula. The two-way book is the sum of 1 divided by each decimal price; 1.926 and 2.020 make a 101.43% book, a 1.43% margin. Bookmakers load more of it on the longshot.
- Late news is the most expensive failure. In a case InGame reported (last updated 4 March 2026), a Kalshi market kept trading for hours after air strikes on Iran began, was settled at the pre-strike price, and the exchange reimbursed every contract bought after the strikes, at a loss its chief executive put at $2.2 million.
- Adkuu Pulse delivers an AI probability shaped by a risk model (flow-weighting, liability, staleness, circuit breakers), then ready-to-use fixed odds priced with a margin formula the operator controls.
What an exchange price actually is
Polymarket runs a central limit order book. Its trading overview says that "Trading connects signed orders on the CLOB with settlement on Polygon" and that "The Exchange operator can match orders and enforce their ordering" but cannot set prices. The number most feeds scrape is defined on its learn pages: "The prices displayed on Polymarket are the midpoint of the bid-ask spread in the orderbook," "unless that spread is over $0.10, in which case the last traded price is used." The page's example is a 34-cent bid and a 40-cent ask displayed as 37%; a buyer who lifts that ask pays 40 cents, not 37.
Kalshi's help centre says the same thing in probability language: the price is a "market-assigned probability" "ranging from 0% (certain to not happen) to 100% (certain to happen)", so a 70% consensus puts "Yes" at 70 cents and "No" at 30 cents. Its API keeps the three numbers apart. In the market object, yes_bid_dollars is the "Price for the highest YES buy offer on this market in dollars", yes_ask_dollars the "Price for the lowest YES sell offer on this market in dollars", and last_price_dollars the "Price for the last traded YES contract on this market in dollars".
| Number the exchange gives you | What it is | What it is not |
|---|---|---|
| Last traded price | The price of the most recent match, however long ago and for however few contracts | A current probability, or a price anyone will trade at now |
| Best bid and best ask | The highest resting buy and the lowest resting sell, each for a stated size | A fair value; the depth behind each can be a handful of contracts |
| Midpoint | The average of best bid and best ask, which Polymarket displays when the spread is $0.10 or less | A tradeable price; when the spread is wider, the display reverts to the last trade |
Adkuu's reading: each of these measures the book. A bookmaker's price has to be a statement about the event plus a view on risk, and no field in either API provides that.
Why the exchange number is not a probability you can quote
Spreads are wide where it matters. A pre-registered microstructure study by Philipp D. Dubach (arXiv, 27 April 2026, revised 14 May 2026) joined 30.3 billion order-book events recorded over 52 days, from 21 February to 15 April 2026, to 255 million on-chain fills and analysed a panel of 600 markets. Its first stylized fact is a longshot spread premium: a median quoted spread of about 400 basis points in the 0.4–0.6 price range and about 1,300–1,800 basis points for markets trading below 0.10. The midpoint of a 15-point spread is an interpolation, not a price.
Liquidity is concentrated. The same study finds that the top of book holds a median 13.6% of cumulative top-ten depth, that about 9% of markets are strongly top-heavy, and that some thin markets are dominated by one to three wallets. Risk.net's report of 11 June 2026 on Kalshi and Polymarket carried the standfirst "Patchy trade flows cause outsize market impact for financial events".
The display can be stale by design. Polymarket's $0.10 rule means that in a wide market the display reverts to the last trade, which may be hours old. Kalshi returns the last trade as its own field because it is neither the bid nor the ask. A feed that copies a display price copies a stale number without knowing it. Why depth matters more than volume is covered on the answer page on liquidity in prediction markets.
From probability to price: four stages
- A probability the operator can defend, with exchange prices as one input weighted by the depth and age behind them.
- Risk shaping: move the probability for order flow, for the liability already on each side, for the staleness of every source, and for circuit breakers that suspend the market when a source moves too far or too fast.
- A margin formula per market type, written down with its favourite–longshot split.
- Two-sided prices with limits, recomputed on every accepted ticket.
Adkuu Pulse is built around this separation. For every market it delivers an AI probability shaped by a risk model (flow-weighting, liability, staleness, circuit breakers), then ready-to-use fixed odds priced with a margin formula the operator controls, over a real-time API (REST, WebSocket and gRPC). The operator keeps the margin decision; the feed carries the probability and the risk shaping. See Adkuu Pulse and the answer page on how fixed-odds prediction markets work for sportsbooks.
Overround, in the terms a trading desk uses
Pinnacle's educational page on margins (published 15 August 2016) gives the two-way formula as (1/Decimal Odds Option A)*100 + (1/Decimal Odds Option B)*100. Its example prices one side at 1.926 and the other at 2.020: (1/1.926)*100 + (1/2.02*100) = 51.92 + 49.51 = 101.43% Market, which "is a margin of 1.43%". A book that sums to exactly 100% has zero margin, and "The amount by which the market percentage rises above 100% is the size of the margin the bookmaker holds over the bettor".
Margin is not spread evenly. Pinnacle's page on the favourite–longshot bias starts from a fair 1.20 favourite and 6.00 underdog, notes that an even split would give 1.17 and 5.85, and says "we are more likely to see odds that look like 1.19 and 5.41". "In terms of margin percentage, the underdog has a margin of 11%, whilst the favourite has a margin of just 1%," and "Bookmakers with larger margins typically have stronger biases, with the extra margin loaded chiefly on to the underdog." an event contract can trade far from 50%, so this split moves more money than it does on a tennis match.
The worked pricing table
Three probabilities, three market shapes, one margin target: a 106% book, six points above fair. "Proportional" multiplies each side's probability by 1.06. "Longshot-weighted" adds 5 points to whichever side is below 50% and 1 point to the other. Quoted odds are 1 divided by the margined probability, rounded to two decimals; the book check adds the margined probabilities back up.
| Step | Market A, p = 0.62 | Market B, p = 0.20 | Market C, p = 0.50 |
|---|---|---|---|
| Fair YES odds, 1 ÷ p | 1 ÷ 0.62 = 1.61 | 1 ÷ 0.20 = 5.00 | 1 ÷ 0.50 = 2.00 |
| Fair NO odds, 1 ÷ (1 − p) | 1 ÷ 0.38 = 2.63 | 1 ÷ 0.80 = 1.25 | 1 ÷ 0.50 = 2.00 |
| Margined probabilities, proportional (× 1.06) | YES 0.657, NO 0.403 | YES 0.212, NO 0.848 | YES 0.530, NO 0.530 |
| Quoted odds, proportional | YES 1.52, NO 2.48 | YES 4.72, NO 1.18 | YES 1.89, NO 1.89 |
| Margined probabilities, longshot-weighted | YES 0.630 (+1 pt), NO 0.430 (+5 pts) | YES 0.250 (+5 pts), NO 0.810 (+1 pt) | YES 0.530, NO 0.530 (at exactly 50% the extra margin is split evenly) |
| Quoted odds, longshot-weighted | YES 1.59, NO 2.33 | YES 4.00, NO 1.23 | YES 1.89, NO 1.89 |
| Book check, both splits | 0.657 + 0.403 = 1.06; 0.630 + 0.430 = 1.06 | 0.212 + 0.848 = 1.06; 0.250 + 0.810 = 1.06 | 0.530 + 0.530 = 1.06 |
Read across Market B: the proportional split quotes the 20% outcome at 4.72 and the longshot-weighted split at 4.00, on the same probability and the same total margin. That is the favourite–longshot choice made explicit.
Liability adjustment. Suppose Market A opens at 1.52 / 2.48 and takes €8,000 on YES and €2,000 on NO. If YES wins, the book pays €8,000 × 1.52 = €12,160 against €10,000 collected: a loss of €2,160. If NO wins, it pays €2,000 × 2.48 = €4,960: a profit of €5,040. The exposure sits on YES. A two-point shade moves the margined YES probability from 0.657 to 0.677 and the NO probability from 0.403 to 0.383, keeping the 106% book; the quoted odds become YES 1 ÷ 0.677 = 1.48 and NO 1 ÷ 0.383 = 2.61. New money on NO now closes the gap at a better price. The size of the shade is policy; its position is not: after the margin, before publication, recomputed on every ticket.
Staleness and breakers. Two further inputs belong in the same calculation: the age and depth of the source price behind the probability (a last trade from hours ago in a 15-point-wide book deserves a wider margin or a suspension, not a copy), and a breaker rule, for instance a suspension when the modelled probability moves by more than a set number of points inside a set number of minutes, until a trader or an automated check confirms the move.
Time decay, correlated markets and late news
Time decay. As the resolution date approaches, a binary probability drifts toward 0 or 1 and the weight of old evidence should decay with it. The Polymarket study adds a caution: raw correlations suggest markets nearer resolution are shallower, but after controlling for duration, price level and volume the time-to-close effect is essentially zero (a coefficient of 0.008). Adkuu's reading is that thinness near close is mostly a property of short, low-volume markets, so the staleness rule should key on depth and age, not on days to go.
Correlated outcomes. Polymarket's documentation describes "negative risk" as "a mechanism for multi-outcome events where only one outcome can win", in which "A No share in any market can be converted into 1 Yes share in every other market". The exchange encodes the correlation structurally. A fixed-odds operator pricing each outcome from a separate book has to impose the same constraint itself: the margined probabilities across a mutually exclusive set must sum to the intended book, and a move in one outcome must reprice the others. Parlays across linked events carry the same problem, because a product-of-legs payout assumes an independence that event contracts rarely have.
Late news. The Kalshi case reported by InGame is the clearest published example. Kalshi had listed a contract titled "Ali Khamenei out as Supreme Leader?" in January 2026, with terms stating that the market would settle at the last traded price before his death. When air strikes on Iran began shortly after midnight Eastern time and unconfirmed reports of his death circulated, trading continued through the following morning and the exchange posted that the odds of his removal had surged to 68%. Two clarifications and roughly 19 hours later the market was settled at the price before the strikes began; Kalshi reimbursed every contract bought after the strikes and the fees on them, and its chief executive, Tarek Mansour, said the business took a $2.2 million loss. A source price that keeps printing after the decisive event is the most expensive stale price there is, and only a breaker tied to news and to abnormal flow catches it in time.
Failure-mode checklist
| Failure mode | What it looks like in the data | What the pricing layer must do |
|---|---|---|
| Thin book | Spread above ten points; a few contracts at the top of book; one to three makers | Widen the margin with the spread; cap stakes; never quote from the midpoint alone |
| Stale source | Last trade minutes or hours old; a display that has reverted to the last trade under the $0.10 rule | Age-weight every source; suspend past a staleness limit; never copy a display price |
| Correlated outcomes | A multi-outcome set whose margined probabilities drift apart; parlays across linked events | Price the set jointly; reprice siblings on every move; restrict or reprice correlated parlays |
| Late news | A jump of tens of points inside minutes; one-sided flow; the source itself halts | Breaker on move size and flow; trader confirmation before reopening; a void policy decided in advance |
| Liability build-up | Net exposure concentrated on one side | Shade the exposed side after the margin; publish per-market limits |
A price is only as good as the resolution rule behind it; the companion post covers how prediction markets settle and why disputes happen, and the answer page on managing risk in prediction markets covers limits and exposure.
FAQ
Is a prediction market price the same as the probability of the event? No. It is a measurement of an order book: on Polymarket the bid–ask midpoint, or the last trade when the spread is wider than $0.10; on Kalshi the market-assigned probability, with bid, ask and last trade exposed as separate fields. It carries no margin, no liability view and no guarantee of freshness.
What overround should a sportsbook use on prediction markets? The formula is fixed: the sum of 1 divided by each decimal price, minus 100%. The level is commercial; Pinnacle's published example is a 101.43% two-way book. because an event contract can trade far from 50%, the split between favourite and longshot matters more than the headline percentage.
Why not copy Polymarket or Kalshi prices and add a margin? Because the copied number may be a stale last trade or the midpoint of a 15-point spread, carries no view of the operator's own liability, and keeps printing after late news, as the Kalshi case of early 2026 showed. A margin on a wrong probability is still a wrong price.
How does Adkuu Pulse price a market? For every market it delivers an AI probability shaped by a risk model (flow-weighting, liability, staleness, circuit breakers), then ready-to-use fixed odds priced with a margin formula the operator controls, in real time over REST, WebSocket and gRPC.
Sources
- How Are Prices Calculated? — Polymarket Documentation
- Overview (Trading) — Polymarket Documentation
- Negative Risk Markets — Polymarket Documentation
- How are prices determined? — Kalshi Help Center
- Get Market — Kalshi API Documentation
- How to calculate betting margins — Pinnacle Betting Resources
- What is the favourite–longshot bias? — Pinnacle Betting Resources
- The Anatomy of a Decentralized Prediction Market: Microstructure Evidence from the Polymarket Order Book — arXiv
- Liquidity on Kalshi, Polymarket 'too thin' for institutional use — Risk.net
- Kalshi's Botched Khamenei Market Could Be A Problem For Its Wall Street Ambitions — InGame
Last verified: October 10, 2026.