Original research / September 2026 / 9 min read
What a prediction market actually charges
Prediction markets are sold on not charging vig. We snapshotted every quotable contract on Kalshi and priced the two-way cost the way a sportsbook's hold is priced. On 78,119 markets the median came to 9.9c per dollar of payout, against 4.8c at a standard sportsbook line. On the markets people actually trade, the answer flips.
Written and reviewed by Alexander Korsager · last reviewed September 16, 2026 · corrections
The finding
9.9c
median two-way cost per dollar of payout across 78,119 quotable Kalshi markets
- Median quotable Kalshi market
- 9.9c
- Standard −110/−110 sportsbook line
- 4.8c
The median listed contract costs a little over twice the price a sportsbook is criticized for charging.
Both bars are drawn on the same scale, running from zero to 9.9c.
The numbers behind it
- 78,119
- Quotable contracts priced, one snapshot
- 10%
- Of the busiest markets sit above a sportsbook line
- 3.7c
- Paid by the average traded contract
What we found
The findings, in 5 sentences
- 61,694 of 78,119 quotable Kalshi markets, 79% of the exchange, cost a two-way buyer more than a standard −110/−110 sportsbook line.
- The advertised comparison is about the fee schedule, not the trade. The fee tops out at 3.5c on both legs, but the bid-ask spread is the larger cost on most of the exchange, and no fee page mentions it.
- Cost falls at every step up in traded volume, from 10.5c on markets that did not trade at all to 3.6c on the 551 busiest. The busiest tier genuinely is cheaper than a sportsbook, and only 10% of it sits above the line.
- Weighted by contracts traded, the average contract paid 3.7c. Both readings are true at once: the exchange is dearer than a sportsbook market by market, and cheaper trade by trade.
- Contracts priced between 40 and 60 cents are the most expensive on the exchange at 12.5c, with 91% above the sportsbook line. The published fee peaks at 50 cents by design and the spread does not narrow to offset it.
For journalists and researchers
Every figure on this page is read from a published result set rather than typed, and the data behind it is yours to download. Republish what you find, including commercially, with credit.
- Download the datasetCSV, 24 rows
- How this was measuredThe method, the sample, what it cannot show
- Sources and how to cite itReleased under Creative Commons Attribution 4.0 International
Found an error, or need a figure this page does not print? We would rather hear about it than not: how we handle corrections.
Prediction markets have spent the last year being described as the honest alternative to a sportsbook. The pitch is simple and it is mostly about a number: an exchange charges a small fee per contract rather than building a margin into the price, so there is no vig. Sportsbooks price two-way markets at −110 a side and keep the difference. Exchanges, the argument goes, do not.
That comparison sets a fee schedule against a price. It is the wrong pairing. What a sportsbook's vig measures is the gap between what you pay and what you can win, and on an exchange that gap is mostly the bid-ask spread, which no fee page mentions. So we measured it.
On 2026-09-16 we snapshotted every market open on Kalshi through its public API: 119,424 active binary contracts, of which 78,119 had a live price on both sides. For each one we priced the same trade a sportsbook's hold prices, buying both outcomes at the offer, and added the exchange's own published fee. Every figure below comes out of that one capture, and the capture is published alongside this page.
The answer is not the one either side of the argument wants. Most of the exchange is more expensive than a sportsbook. The part of it people actually trade is cheaper. Both of those are the same dataset.
The method
A spread and a vig are the same number
The comparison only works if both sides are measured identically, so here is the arithmetic in full, once.
A sportsbook offering −110 on both sides of a two-way market asks for $110 a side. Back both and you have staked $220 to be returned $210 whichever way it lands. You paid 220 for a guaranteed 210, which is 104.76 cents per dollar of payout. The 4.76 cents is the hold.
A Kalshi binary contract settles at $1.00, and YES and NO share one order book: a resting bid for YES at 44 cents is the same order as an offer of NO at 56. So buying both sides at the offer costs the YES ask plus (100 minus the YES bid), which is 100 plus the spread, for a position that settles to exactly $1.00. The excess over 100 cents is the spread, and it is also the overround.
That identity is what lets the two numbers sit beside each other. A spread of 4.8c is arithmetically a −110/−110 line. Anything wider costs more than the price sportsbooks are criticized for.
On top of that sits Kalshi's published taker fee, which its filed schedule sets at 0.07 multiplied by the contract count, the price in dollars, and one minus that price. It is largest at 50 cents, where it reaches 1.8c a contract, or 3.5c across both legs of a two-way position. We add it at scale and without the schedule's round-up to the next cent, which understates what a small order pays and cannot overstate it.
A spread of 4.8c is arithmetically a −110/−110 line. Anything wider costs more than the price sportsbooks are criticized for.
Finding 1
Four markets in five cost more than a sportsbook line
Across the 78,119 contracts with a live two-sided price, the median all-in cost of a two-way position was 9.9c per dollar of payout. The standard sportsbook line is 4.8c. 61,694 markets, 79% of the exchange, sat above it.
The distribution matters more than the median, because it is very long on the expensive side. A quarter of the exchange costs more than a dime on the dollar, and the 90th percentile is past 40 cents. Those are not prices anyone would knowingly pay, which is a clue about who is trading them: mostly nobody.
| Cut | Markets | 10th pct | 25th pct | Median | 75th pct | 90th pct | Above a standard sportsbook line |
|---|---|---|---|---|---|---|---|
| Every quotable market | 78,119 | 3.3c | 5.5c | 9.9c | 12.5c | 42.1c | 79% (61,694) |
| Traded in the last 24 hours | 16,224 | 2.0c | 3.4c | 4.9c | 8.3c | 15.3c | 51% (8,228) |
| Sports, all | 38,316 | 3.1c | 4.8c | 9.5c | 18.2c | 73.3c | 75% (28,823) |
| Sports, traded in the last 24 hours | 10,212 | 2.0c | 3.5c | 4.5c | 7.4c | 14.0c | 47% (4,845) |
A standard two-way sportsbook line at −110 on both sides costs 4.8c per dollar of payout. The last column counts markets in each cut that cost more than that.
Read the second row against the first. Restrict the same snapshot to contracts that traded at all in the previous 24 hours and the median halves, and the share above the sportsbook line falls from about four in five to about one in two. The exchange has two populations and they are priced differently.
Finding 2
The more a market trades, the cheaper it gets, and the crossover is real
Cutting the same snapshot by trailing 24-hour volume produces a clean gradient with no exceptions: every step up in activity is a step down in cost.
The exchange is dearer than a sportsbook market by market and cheaper trade by trade, and neither of those is the misleading one.
| Contracts traded in 24h | Median cost | Markets | Above the sportsbook line |
|---|---|---|---|
| No trades in 24h | 10.5c | 61,895 | 86% |
| 1 to 99 contracts | 6.3c | 7,426 | 65% |
| 100 to 999 contracts | 4.5c | 5,668 | 47% |
| 1,000 to 9,999 contracts | 4.0c | 2,579 | 26% |
| 10,000+ contracts | 3.6c | 551 | 10% |
The upright line on each bar is A standard −110/−110 sportsbook line, 4.8c.
Cost falls at every step up in traded volume, and crosses the sportsbook line between the two busiest tiers. The 551 markets trading 10,000 contracts or more are genuinely cheaper than a sportsbook. The 61,895 that did not trade at all are roughly three times dearer.
Source: actfap.com, original analysis
This is the finding that stops the study being a complaint. The 551 markets trading 10,000 contracts or more have a median all-in cost of 3.6c, comfortably inside the sportsbook line, and only 10% of them sit above it. If you trade the contracts a prediction market is famous for, the headline claim holds up.
Weighting by contracts rather than by markets says the same thing from the other end. The average contract traded in that 24-hour window paid 3.7c all in, below the sportsbook line. The exchange is dearer than a sportsbook market by market and cheaper trade by trade, and neither of those is the misleading one. They answer different questions.
The question a reader should take from this is which population their own trade lands in. A headline contract is cheap. The 61,895 contracts that did not trade at all in a day are listed at a median of 10.5c, and an exchange with tens of thousands of markets is mostly made of those.
Finding 3
The coin flip is the most expensive contract on the board
Kalshi's fee formula is a published curve that peaks at 50 cents, because a contract's price multiplied by one minus its price is largest there. That is a design choice and the schedule states it plainly. What the schedule cannot tell you is what the spread is doing at the same time.
It is not narrowing to compensate. Across the middle of the price range the median spread sits flat at 8 to 9 cents, falling only at the two extremes where a contract is nearly settled. So the fee curve and the spread stack rather than offset.
| Contract price | Median cost | Of which fee | Markets |
|---|---|---|---|
| 1 to 10 cents | 5.5c | 0.7c | 14,345 |
| 10 to 25 cents | 10.1c | 1.9c | 15,587 |
| 25 to 40 cents | 11.2c | 3.0c | 10,661 |
| 40 to 60 cents | 12.5c | 3.5c | 16,299 |
| 60 to 75 cents | 11.7c | 3.1c | 7,516 |
| 75 to 90 cents | 10.4c | 2.0c | 7,771 |
| 90 to 99 cents | 6.7c | 0.8c | 5,940 |
The upright line on each bar is A standard −110/−110 sportsbook line, 4.8c.
The published fee is largest at 50 cents by design, and the spread does not narrow to offset it. The two costs stack where most sports contracts are priced.
Source: actfap.com, original analysis
Contracts priced between 40 and 60 cents, 16,299 of them, carry a median all-in cost of 12.5c and 91% of them sit above the sportsbook line. That is the single worst bucket on the exchange, and it is where a genuinely uncertain event sits: a close game, a tight race, anything worth having an opinion about.
The practical reading is unglamorous. The cheapest contracts to trade on cost are the ones whose outcome is close to already decided, and those are the ones with the least to say.
Finding 4
Sports is the exchange's biggest category, and its pricing is the argument in miniature
Sports is by some distance the largest category in the snapshot at 38,316 quotable contracts, just under half the exchange. It is also the category the comparison with sportsbooks is actually about.
Taken as a whole it looks expensive: a median of 9.5c and 75% of contracts above the sportsbook line. Restricted to the 10,212 that traded in the previous 24 hours, the median falls to 4.5c, which is just inside 4.8c, and the share above the line falls to 47%.
So on the sports contracts people are actually trading, a prediction market is cheaper than a standard sportsbook line, by about a quarter of a cent on the dollar. That is a real edge and it is a much smaller one than the marketing implies. It is not the difference between paying vig and not paying vig. It is the difference between paying 4.5 and paying 4.8.
| Category | Median cost | Markets | Above the sportsbook line |
|---|---|---|---|
| Sports | 9.5c | 38,316 | 75% |
| Elections | 10.4c | 18,874 | 91% |
| Financials | 10.4c | 5,887 | 85% |
| Entertainment | 8.9c | 5,491 | 76% |
| Economics | 9.0c | 3,408 | 70% |
| Politics | 6.7c | 2,065 | 68% |
| Mentions | 9.4c | 802 | 70% |
| Commodities | 6.3c | 760 | 63% |
The upright line on each bar is A standard −110/−110 sportsbook line, 4.8c.
Every category large enough to report sits above the sportsbook line at the median. Sports is the exchange's largest category and close to its cheapest.
Source: actfap.com, original analysis
Every category large enough to report sits above the sportsbook line at the median, which is a fact about how many thinly quoted contracts an exchange lists rather than a fact about any one of them. Sports and Crypto are the cheapest of the large categories; Elections is the dearest, at a median above 10 cents with more than nine contracts in ten above the line.
What this does not say
This is one snapshot of one exchange, taken at one instant. It is not a study of prediction markets in general and it is not a time series.
It prices the trade a sportsbook's hold prices, which is buying both sides. Most people buy one side and hold it to settlement, and that trade costs roughly half the spread plus one leg's fee rather than the full amount reported here. The two-way figure is the right one for comparing venues, because it is the only construction that means the same thing at a sportsbook and on an exchange. It is not what a single directional bet costs.
It reads the top of the book only. A large order walks into worse prices than the best one resting on the book, so for size the real cost is higher than reported here, on both venues.
The sportsbook side of the comparison is a standard published price, not a measurement. Real sportsbook hold varies by sport, market and book, and is often wider than −110 on the props and parlays an exchange has no equivalent of. We had no licensed odds feed to measure it with, so we compared against the reference price the industry quotes rather than estimating one.
Polymarket is deliberately absent. Its public API caps enumeration at roughly 2,100 markets ordered by prominence, so the comparable figure would have been its most visible contracts against Kalshi's entire tail. That is a flattering comparison rather than a fair one, and we would rather report one exchange completely.
Nothing here says whether a prediction market is a better or worse place to take a position than a sportsbook. Cost is one input, and the legal status, settlement rules and protections attached to each are different in ways this study does not touch.
How we know
Methodology
Written to be read by someone trying to find a hole in it. Where a limit cuts against the study, it is stated here rather than left for a reader to discover.
The capture
Every open event on Kalshi was walked through the documented public REST API at api.elections.kalshi.com, with nested markets, starting at 2026-09-16T08:04:29.856Z. No account, no authentication and no page of the consumer website were involved; kalshi.com itself sits behind a bot challenge, which we did not attempt to work around.
The walk returned 119,424 active binary markets after excluding Kalshi's auto-generated multivariate combination contracts. Those are excluded by construction rather than filtered later: a probe of the flat markets endpoint the same morning returned 40,000 rows of which 39,887 were combination shards, and including them would have measured the parlay generator rather than the exchange.
Of those, 78,119 carried a live bid and a live offer below $1.00 and form this study's universe. The rest have no two-way price to measure and are excluded rather than scored as infinitely expensive, which makes every distribution here better than the exchange's true one, never worse.
What was computed
For each market: the bid-ask spread in whole cents, which is the two-way overround by the identity set out above; the midpoint, taken as the market's own estimate of fair value; and the exchange fee on both legs at that midpoint, using Kalshi's published formula.
The fee is computed per contract at scale, omitting the schedule's round-up to the next cent on an order. The round-up depends on order size and roughly doubles the fee near 50 cents on a single-contract order, so leaving it out understates cost. An unmodeled term in a study whose finding is that costs run higher than advertised should err in that direction.
The all-in figure reported throughout is the spread plus both legs' fees, in cents per dollar of payout. The sportsbook reference is held at 4.7619 rather than rounded to 4.8c, because every count of markets above and below it would move if it were rounded.
Validation
The overround identity is asserted over every market in the committed snapshot rather than argued for in a comment: for each row, the YES offer plus the implied NO offer minus 100 cents must equal the spread.
The fee function is checked against the three points Kalshi's own schedule quotes, including its 1.75 cent maximum, and for the symmetry that makes both legs of a two-way position cost the same.
Every published aggregate is recomputed from the snapshot in the test suite, cut by cut: the whole exchange, the traded subset, both sports cuts, all five liquidity tiers, all twelve categories and all seven price buckets. The headline claims are then re-derived from the snapshot independently of the results file, so a figure that survives regeneration while meaning something different still fails.
The price buckets are asserted to partition the universe exactly, so no market is double counted or dropped between them.
Reproducing it
The snapshot is committed, so every figure on this page can be recomputed without a network call and without depending on where the order book has moved since. The run script takes an offline flag that does exactly that.
Re-running the capture live will not reproduce these numbers and is not meant to. An order book is a live object; the point of committing the snapshot is that the published figures are anchored to a stated instant rather than to whatever the exchange looked like when a reader checked.
Sources, data and license
What was computed, the data it came from, and what you may do with it. Everything below is here so this study can be checked rather than taken on trust.
How the figures were produced
A measurement, not a model. One snapshot of 119,424 active binary Kalshi contracts taken at 2026-09-16T08:04:29.856Z, reduced to the 78,119 quoted on both sides, with each one's bid-ask spread read as a two-way overround and the exchange's published fee added at the midpoint. There is no simulation, no seed and no randomness: the input is a fixed capture and every figure is arithmetic over it, so the same results come out byte for byte on any machine. The capture, the model, the run and a suite that re-derives every published figure from the capture are the study's working files.
The data
One reported cut of the exchange (a liquidity tier, a category or a price bucket), with its cost distribution. The file carries all 24 rows, including those this write-up had no room to show.
Download the full result setCSV, 24 rows
What is in each column
- cut_type
- Which cut this row belongs to: liquidity, category or price.
- cut
- The cut's own label.
- markets
- Markets in the cut, all quotable on both sides.
- spread_median_cents
- Median bid-ask spread, whole cents.
- spread_mean_cents
- Mean bid-ask spread, cents.
- all_in_p10_cents
- 10th percentile all-in two-way cost, cents per dollar of payout.
- all_in_p25_cents
- 25th percentile all-in two-way cost, cents per dollar of payout.
- all_in_median_cents
- Median all-in two-way cost, cents per dollar of payout.
- all_in_p75_cents
- 75th percentile all-in two-way cost, cents per dollar of payout.
- all_in_p90_cents
- 90th percentile all-in two-way cost, cents per dollar of payout.
- all_in_mean_cents
- Mean all-in two-way cost, cents per dollar of payout.
- count_over_sportsbook
- Markets in the cut costing more than a −110/−110 sportsbook line.
- share_over_sportsbook
- The same as a share of the cut, 0 to 1.
Where the prices and the fee schedule came from
One public exchange API behind every price on this page, and the exchange's own fee schedule as filed with its regulator. actfap has no relationship with Kalshi, with any sportsbook, or with any operator, and takes no fee, commission or placement from any of them. A citation here is provenance, not endorsement.
The exchange's consumer website is cited without a link because it refuses automated access, which we did not attempt to work around. That is why the fee arithmetic is taken from the regulator's copy of the filing rather than from the marketing page, and it is the stronger source in any case.
Kalshi · Trade API v2, events and markets endpoints
The public REST interface every price, volume and open-interest figure in this study was read from, unauthenticated, as documented.
https://api.elections.kalshi.com/trade-api/v2/events
Read directly from the publisher · retrieved 2026-09-16
The exact capture is committed with the study's working files. The exchange is live, so a later read will not match it.
Commodity Futures Trading Commission · KalshiEX LLC rule certification, fee schedule filing
The filed fee schedule this study computes from, including the formula and its round-up to the next cent.
https://www.cftc.gov/sites/default/files/filings/orgrules/22/09/rule091222kexdcm003.pdf
Read directly from the publisher · retrieved 2026-09-16
A regulator-hosted copy of the exchange's own filing, used in preference to any secondary description of the fee.
Kalshi · kalshi.com
The consumer site carrying the exchange's own fee and product marketing, which this study did not read.
Third-party reported, not operator-verified · retrieved 2026-09-16
Not linked: The site returns a bot challenge to automated access, including on robots.txt. We do not work around access controls, so the fee schedule was taken from the regulator's copy of the exchange's filing instead and the marketing claims are described in general terms rather than quoted.
Last reviewed
September 16, 2026
Next expected update
The fee arithmetic holds until the exchange files a new schedule. The spread figures are a snapshot and do not update: they describe one instant, which is what the committed capture pins them to.
Follows Kalshi, whose fee schedule changes only by a filing with the CFTC.
Reuse and license
You may copy, republish, adapt and build on this study's data and findings, including commercially, as long as you credit actfap and link back to this page.
Released under the Creative Commons Attribution 4.0 International license. If you find an error in the data, we would rather hear about it than not.
How to cite this
Korsager, A. (2026). What a prediction market actually charges. actfap. https://actfap.com/research/prediction-market-cost-2026
Questions this study answers
- Do prediction markets charge vig?
- Not as a posted margin, but the cost is there. On a Kalshi contract the gap between what you pay and what you can win is the bid-ask spread plus the exchange's fee, and that gap is the same quantity a sportsbook's vig measures. Across 78,119 quotable contracts in our 2026-09-16 snapshot the median came to 9.9c per dollar of payout, against 4.8c for a standard −110/−110 sportsbook line.
- Is Kalshi cheaper than a sportsbook?
- On its busiest markets, yes. The 551 contracts trading 10,000 or more in a day had a median all-in cost of 3.6c, and weighted by contracts traded the average was 3.7c, both inside the 4.8c sportsbook line. Across the exchange as a whole it is the other way round: 79% of quotable contracts cost more than that line.
- Why is the 50 cent contract the most expensive one?
- Two costs peak in the same place. Kalshi's published fee is proportional to the price multiplied by one minus the price, which is largest at 50 cents, reaching 3.5c across both legs. The bid-ask spread does not narrow to offset it: in our snapshot it sits flat at 8 to 9 cents across the middle of the price range. Contracts priced 40 to 60 cents had a median all-in cost of 12.5c.
- How is this different from just quoting the fee?
- A fee schedule describes what the venue charges. It does not describe what the trade costs, because on an order book most of the cost is the spread you cross, and no fee page reports that. Measuring the spread as a two-way overround is what makes the number comparable to a sportsbook's hold rather than to another venue's fee.
- Does this mean I should trade on a prediction market instead of a sportsbook?
- No. This study measures one thing, the cost of taking a two-way position, and cost is only one input. Legal status, settlement rules, what happens in a dispute and the protections attached to each venue all differ, and none of that is measured here. A lower cost of entry is not itself a reason to take a position, and event contracts can lose their full value.
Put it to work
Run your own numbers through it
- No-Vig Fair Odds Calculator Strip the bookmaker's margin out of a market to see the fair price behind every outcome.
- Odds Converter Convert odds to any format
- Arbitrage Calculator Check whether two or more prices on the same event lock in a profit, and get the stake for each side.
- Expected Value Calculator Check if a price has value
More original research
See every study- 0 of 10price buckets where the mispricing was bigger than what it cost to reach it
Oct 2026 · 11 min read
The longshot gap, and the spread that swallows it The academic literature reports that prediction-market longshots are mispriced. We checked it on 12,755 settled Kalshi contracts, priced a day before they closed, and then did the part nobody had done: measured what reaching the mispricing would have cost at the same price, at the same moment, out of the same rows. In 10 price buckets out of 10, the cost was larger than the gap. - +1.35 pointsof the +1.38 points rise in Nevada's slot hold is the same machines getting more expensive, not players moving to worse ones
Sep 2026 · 12 min read
Hold is not the house edge Nevada publishes what its casinos actually keep, every month, and has since 2004. We read all 269 reports as one dataset. Two of the numbers in them look alike and measure different things, and almost everything people get wrong about this data starts there. - 4.2 timesmore per dollar staked at a title's lowest published setting than at its advertised one, at the median
Sep 2026 · 10 min read
The number on the box One of the two studios in our reference publishes five return settings for almost every game it ships. The other publishes one number. The numbers themselves look identical, and that is the problem.
21+. Available only where regulated.
This is research about what it costs to take a position on a prediction-market contract, not a view on whether any position should be taken. A cheaper price is not a reason to trade, and a lower cost of entry does not make an event contract a sound wager or a safe one. Event contracts can lose their full value, and nothing here is financial or betting advice. actfap carries no affiliate links, no ads, no paid placements and no operator relationships of any kind.
Gambling can cause serious harm. If it is affecting you or someone you know, the National Problem Gambling Helpline is free, confidential and open 24/7, call or text 1-800-MY-RESET (1-800-697-3738), or chat at ncpgambling.org/chat. More on staying in control.