12 min read · updated September 26, 2026
Prediction markets: Kalshi and Polymarket
How an exchange turns a football game into a contract that pays a dollar: why the price in cents is a probability, what the bid, ask and spread are, how fees work, why an exchange and a sportsbook rarely show the same number, and how this site reads both.
The short version
A prediction market sells contracts on a yes-or-no question, like "Will Detroit win on Sunday?" A contract pays $1 if the answer is yes and $0 if it's no. So its price in cents reads directly as a probability: a contract trading at 60¢ means the market thinks yes is about 60% likely. Kalshi and Polymarket both run markets like this on every NFL game. Unlike a sportsbook, which sets a price and builds its cut into it, an exchange lets traders set prices against each other and charges a fee, or sometimes none. That makes exchange prices a second, independent reading of the same game, and this site reads them every 20 minutes alongside the books. The rest of this article is how to read those numbers without fooling yourself.
A contract that pays a dollar
Start with the one idea everything else rests on. If a contract pays $1 when something happens and nothing when it doesn't, then what it's worth depends only on how likely the thing is.
Suppose Detroit really has a 60% chance to win, and you buy a Detroit YES contract for 60¢. If Detroit wins, you get $1 back, a profit of 40¢. If Detroit loses, you lose your 60¢. Over many games like this one:
expected profit = chance × profit if right − (1 − chance) × loss if wrongAt 60¢ with a true 60% chance, that's 0.6 × 40¢ − 0.4 × 60¢ = 24¢ − 24¢ = 0. The price is exactly fair. Pay less than 60¢ and the bet is worth something on average; pay more and it costs you. That's why the price in cents *is* the probability: it's the only price at which neither side expects to win.
Each game gets its own market, one per team or a single market on the home team, and the prices on the two sides behave like two halves of a whole. If Detroit YES trades near 60¢, the other side of that game trades near 40¢, because between them they cover every outcome and exactly one of them pays the dollar.
If you think in sportsbook odds, the conversion is the same one covered in How betting odds work. A probability over 50% becomes −100p/(1−p), so 60¢ is −100 × 0.6 / 0.4 = −150. A probability under 50% becomes +100(1−p)/p, so 40¢ is +100 × 0.6 / 0.4 = +150. Same game, same belief, two ways of writing it.
Bid, ask and the spread
A sportsbook shows you one price per side. An exchange shows you two, because it's a marketplace with buyers and sellers:
- Bid: the best price someone is currently willing to pay for a contract.
- Ask: the best price someone is currently willing to sell one for.
- Spread: the ask minus the bid.
Say Detroit's market shows a bid of 58¢ and an ask of 60¢. If you want Detroit right now, you pay the ask, 60¢. If you already own a Detroit contract and want out right now, you get the bid, 58¢. The 2¢ in between is the spread. Nobody collects it as a fee; it's just the distance between the most eager buyer and the most eager seller. But if you buy at 60¢ and immediately sell at 58¢, you've lost 2¢, so the spread is a real cost of trading in a hurry.
The honest reading of the market's opinion is somewhere between the two. With a bid of 58¢ and an ask of 60¢, the market is saying "about 59%," not 60% and not 58%. A wide spread means the market's opinion is fuzzy; a tight one means lots of people agree on the number.
The other side of the game
On a market that asks "Will the home team win?", backing the away team means buying NO. And a NO contract costs 1 minus the home bid. With the home bid at 58¢, NO costs 100 − 58 = 42¢.
Why the bid and not the ask? Because buying NO and selling YES are the same trade seen from opposite ends. The person bidding 58¢ for home YES is offering to take the home side; if you take the other end of that, you're on the away side, and you've put up the remaining 42¢ of the dollar. If the away team wins, your NO pays $1.
Makers and takers
There are two ways to get a contract.
- Take a price that's already there. You buy at the ask, right now. That's being a taker: you took liquidity out of the market.
- Post your own price and wait. You place an order to buy at, say, 57¢, below the current ask, and it sits on the book until someone is willing to sell to you there. That's being a maker, and the resting order is a limit order: you've set the most you'll pay. You made liquidity for someone else to take.
Takers get certainty: the trade happens now at a known price. Makers get a better price, but only if someone comes to them. A resting order might fill, or the game might kick off and the market might move away before anyone sells to you at your number. Kalshi charges makers less than takers, as the next section shows; makers are the ones putting prices on the board in the first place.
Fees: what Kalshi charges
Kalshi's fee for NFL markets, checked on 2026-09-25, is a formula based on the price:
taker fee per contract = 0.07 × P × (1 − P)P is the price in dollars. A maker pays a quarter of the taker fee. Kalshi then rounds an order's total fee up to the next cent.
The shape of that formula matters. P × (1 − P) is largest at 50¢ and shrinks toward the edges, so a coin-flip contract carries the biggest fee and a heavy favorite or long shot a small one:
| Price | Taker fee | Maker fee (a quarter) |
|---|---|---|
| 10¢ or 90¢ | 0.07 × 0.1 × 0.9 = 0.63¢ | 0.16¢ |
| 30¢ or 70¢ | 0.07 × 0.3 × 0.7 = 1.47¢ | 0.37¢ |
| 40¢ or 60¢ | 0.07 × 0.4 × 0.6 = 1.68¢ | 0.42¢ |
| 50¢ | 0.07 × 0.5 × 0.5 = 1.75¢ | 0.44¢ |
(Maker fees are the taker fee divided by 4, rounded to the hundredth of a cent.)
So a taker buying Detroit at 60¢ really pays 60 + 1.68 = 61.68¢, which is to say the trade charges about 61.7%. A maker who gets filled at 60¢ pays 60 + 0.42 = 60.42¢. On the same contract, the maker is paying about a quarter of a point over the posted price and the taker nearly two.
The rounding matters mostly for small orders. Because the fee is rounded up per order, not per contract, one taker contract at 60¢ carries a fee of 1.68¢ rounded up to 2¢, and costs 62¢. A hundred contracts carry 100 × 1.68¢ = 168¢, which is already a whole cent amount, $1.68, so nothing is added. The formula is the fee; the rounding is a small tax on buying one contract at a time.
Fees: what Polymarket charges
When the site checked on 2026-09-25, Polymarket's NFL game markets reported zero fees. On those markets, the price you pay is the ask and nothing more. Fee schedules change, on both exchanges, so treat any fee figure as a reading from a date, not a permanent fact.
Why an exchange and a sportsbook show different numbers
Put the same game side by side and the numbers rarely match exactly. There are a few ordinary reasons.
The cut lives in a different place. A sportsbook quotes both sides so that together they add to more than 100%. At −110 on both sides, each side is 110 / 210 = 52.4%, the two add to 104.8%, and the extra 4.8% is the book's cut. (You'll also hear it called the vig, juice or hold; they all mean the same thing.) An exchange has no built-in cut. What stands in for it is the spread, plus the fee if there is one.
Here's the same kind of coin-flip game on an exchange, bid 50¢ and ask 51¢, bought as a taker on Kalshi. The fee at 51¢ is 0.07 × 0.51 × 0.49 = 1.75¢, so one side costs 51 + 1.75 = 52.75¢. The book at −110 charges 52.4%. Taking the price on a fee-charging exchange isn't automatically cheaper. As a maker who gets filled at 50¢, it's 50 + 0.44 = 50.44¢. On a zero-fee market, it's the ask alone. How you trade matters about as much as where.
Different people, different money. A sportsbook sets its own number and moves it as bets come in. An exchange's number is whatever its traders agree on. Two crowds with different information and different habits will sometimes land a point or two apart, and occasionally more.
Timing. A sportsbook price and an exchange price read at different moments can differ just because news arrived in between. On this site, book prices refresh every six hours and exchange prices every 20 minutes, so an exchange number can be fresher than a book number on the same page.
Thin markets. When few contracts have traded, one eager trader can leave a stale bid or ask sitting there. That's what volume and open interest help you judge.
Volume and open interest
Two numbers tell you how much weight to put on an exchange price.
- Volume is how much money has traded on the market: every time a contract changes hands, volume goes up.
- Open interest is how much is still outstanding: contracts that have been bought and not yet closed out, all of which will be settled at $1 or $0 when the game ends.
A market with heavy volume and large open interest has had many people put real money behind the price, so its number deserves more trust. A market with little of either might be one trader's opinion. Neither number tells you who's right; they tell you how many people have put money on the question.
Putting the numbers together: a worked example
Suppose the forecast you trust says Detroit has a 45% chance, and a sportsbook offers Detroit at +150. That price charges 100 / (150 + 100) = 40.0%. You'd be paying 40 for something the forecast says is worth 45, 5 points under the number.
Now the exchange. Say Polymarket's Detroit ask is 40¢ with no fee: you pay 40¢, the same 40% as the book. On Kalshi, taking 40¢ adds a 1.68¢ fee, so the trade charges 41.68%, still 3.3 points under 45, but less room than before.
Or you could rest a limit order on Kalshi and wait. What's the highest whole-cent price that still leaves you 2 points under 45 after the maker fee?
- At 42¢: maker fee 0.07 × 0.42 × 0.58 ÷ 4 = 0.43¢, total 42.43¢, which is 2.57 points under 45. Good enough.
- At 43¢: maker fee 0.07 × 0.43 × 0.57 ÷ 4 = 0.43¢, total 43.43¢, only 1.57 under. Not enough.
So the limit is 42¢. That's exactly the calculation the site's price check makes for you when it suggests a resting-order limit. It may or may not fill. None of this says the forecast is right, only what the prices charge compared with it.
A note that belongs here once: none of this is advice to trade or bet. If you do, do it only where it's legal, only if you're of age, and only with money you can afford to lose. Most people who bet lose over time, and the cut, in whatever form it takes, is the main reason.
How the site uses them
Exchanges matter to this site for two reasons: they're another independent reading of each game, and they update often.
- As part of the close. The closing number your bets are measured against is each market's last reading before kickoff, from the books, Kalshi and Polymarket, averaged, with the cut removed. Closing numbers are hard to beat: scored the way this game scores your picks over 27 seasons, the market's closing line averages 997 points a season and Elo trails it by more than 100. Why the market is so hard to beat covers why.
- On the markets page. Markets shows each game's home win percentage from the books, Kalshi and Polymarket side by side, the biggest gaps between them, line moves, and each exchange's volume and open interest.
- In the price check. The price check lists the best price across every book and both exchanges, counts the fee in what each exchange price charges, shows the away side on Kalshi as NO at 1 minus the home bid, and suggests a resting-order limit: the highest price in whole cents still 2 or more points under the number after the maker fee. A toggle shows every price as odds (+150) or as the percent it charges (40.0%), which makes an exchange price and a book price easy to compare.
- In the bet tracker. Bets measures each bet you log against that averaged close. Closing-line value explains why that comparison tells you more, sooner, than wins and losses do.
Where to see it on the site
- Markets: books, Kalshi and Polymarket side by side, gaps and line moves, volume and open interest.
- Price check: what any price charges, the best price across books and exchanges, and a suggested limit.
- Bets: your record against the close.
- Predictions: Elo next to the markets for every game.
- How it works: how the site reads prices.
- The System: the forecast you're trying to beat, which starts from the market.
A few terms
- Contract: pays $1 if the event happens, $0 if not. Its price in cents is a probability.
- YES / NO: the two sides of a contract. NO on the home team costs 1 minus the home bid.
- Bid: the best price someone will pay right now.
- Ask: the best price someone will sell for right now.
- Spread: ask minus bid. The cost of trading in a hurry.
- Taker: buys at the ask, right now.
- Maker: rests an order below the ask and waits to be filled.
- Limit order: a resting order with the most you'll pay.
- Volume: money traded on a market so far.
- Open interest: contracts still outstanding, waiting to settle.
- The cut: what a book builds into its prices so both sides add to more than 100%. Also called vig, juice or hold.