How it works
This site answers one question: where is this bet cheapest? Everything below is how that answer is arrived at.
What a cent means
Every price on this site is shown in cents on the dollar. A price of 38¢ means you pay 38 cents for something that returns a dollar if it wins. Lower is cheaper.
Sportsbooks quote in American odds and prediction markets quote in dollars per contract, which makes them hard to compare by eye. Both are converted to the same number the moment they arrive, and the original is kept beside it — the small figure under each price is what that source actually sent. A price of −110 becomes 52.38¢; a contract at $0.38 becomes 38¢.
That number is also the implied probability. A 38¢ price implies a 38% chance. It includes the operator's margin, which is why the two sides of a market add up to more than 100¢ — the surplus is the hold, and the no-vig calculator takes it back out.
Prices here are all-in
A sportsbook price already includes the book's margin: −110 is what you pay. A prediction-market price does not — the exchange charges a taker fee on top of the ask. Comparing the two directly would flatter every prediction market on this site, so every price is compared, ranked and totalled all-in: the quote plus its fee.
Where a fee applies, the cell shows the arithmetic — the quote, the fee, and the all-in figure as the big number. The two exchanges charge differently, and both formulas are the platform's own:
Kalshi: fee = 0.07 × multiplier × P × (1 − P), rounded up to the cent
Polymarket (sports): fee = 0.05 × P × (1 − P), to five decimal places
P is the price as a fraction of a dollar. Both curves peak at 50¢ and fall away toward either end, so the fee bites hardest exactly where the board is closest and a cent decides which source is cheapest. Kalshi's multiplier differs by sport and is read from their own API every time prices are collected, so it stays current rather than being assumed.
All-in means the standard taker fee, before any rebate. Exchanges run volume and market-maker rebate programmes that can reduce what an active trader actually pays. We quote the price a reader gets by taking the offer today, not the one a high-volume account might end up with.
How far each fee is trusted
A fee we have guessed at is worse than no comparison, so every source carries how well its fee is established, and one of the three states keeps it out of the arithmetic entirely.
- Verified — checked against the source's own page, or against a real order. Polymarket: their published sports rate, 0.05, read from their own documentation. Novig: they publish no schedule, so this was checked by placing one. A $10 take order at 52.0% on a college football spread paid out $19.23 — exactly 10 ÷ 0.52, with nothing deducted. The claim is deliberately narrow: no fee on a take order at the quoted ask, which is the only kind of price this site shows. Observed 10 September 2026. Sportsbooks are verified for a duller reason — their margin is already inside the price they quote, so there is nothing on top.
- Published — a schedule exists and independent sources agree on it, but we could not read it first-hand. Kalshi's per-series multiplier comes from their own API and is exact; the base rate is their published figure, and their site refuses automated requests including for its own fee schedule. ProphetX's 2% of net winnings is cited from their help centre, which sits behind a bot check. Both are compared, and both are on a quarterly re-check.
- Unknown — we do not know what the source charges. Its prices still appear in the table, tagged “fee unknown”, and they are left out of the cheapest-price highlight, the gap, the savings figure, the answer at the top of a matchup page and the daily email. A price we cannot compare honestly is not going to be compared dishonestly instead.
No source is at unknown today. The state exists so that adding one without doing the fee work first cannot quietly corrupt a comparison — a source with no fee recorded is treated as unknown rather than as free.
Prices on this site were restated all-in on 10 September 2026. Before that date the comparison used raw prediction-market asks, which overstated how often and by how much those markets were the cheaper source.
How the cheapest price is chosen
It is not chosen. For each side of each market, the lowest price wins the highlighter. There is no weighting, no ranking, and no editorial input. If two sources are level, both are named.
Sources that pay us nothing are compared on exactly the same terms as sources that do, and they win often. When the cheapest price is one we earn no fee from, it is still highlighted, and the page says so.
Spreads and totals are only compared at the same number. A −3.5 spread and a −3 spread are different bets, so a source quoting a different line is shown but kept out of the comparison rather than allowed to win it on a technicality.
What “saved” means
The savings figure is a price difference, not a profit and not a result. It says nothing about whether a bet won.
saved = (dearest price − cheapest price) × $10
If the dearest source charges 41¢ for a side and the cheapest charges 38¢, the gap is 3¢, and on an assumed $10 stake that is 30 cents. It is recorded only when somebody clicks through to the highlighted price, and the stake is always assumed — we never see what anyone actually staked, or what happened next.
Where the prices come from
Sportsbook prices come from a market-data feed covering US books. Prediction-market prices come from Kalshi and Polymarket directly, and are the ask — what it costs to buy the contract now, which is the like-for-like comparison against a book's price. Prices are refreshed on a schedule and every page states when it last changed.
A price is never overwritten. Every change is stored as a new record, which is how the opening price and the movement since are known.
A matchup with fewer than 3 sources is kept out of search results until more arrive, because a comparison between two prices is not much of a comparison.
Where the tips fit
Nothing on this site generates a pick. The comparison, the highlighted price and the per-matchup note are all arithmetic on the numbers above — the note is checked against a list of things it may not say and read by a person before it appears, and none of it has a view on who wins.
The tips are the exception, and they are separate on purpose: written by a named person, every one at a flat $10 stake, graded against both the result and the closing line, with the whole record public — the losers too. A tip is somebody's opinion with their name on it, not an output of this site.
What we do not do
Availability is shown as it is: a price you cannot act on where you are is still listed, marked with why. Hiding it would make the comparison less honest, not more.
Where a source's licensing is not yet recorded, no claim is made either way — no badge saying it is unavailable, and no link out. A tag appears only when there is data behind it.
The data, as data
Everything on these pages is available as JSON from the public API: free, no key, 60 requests a minute. It is how you check any of the above without taking our word for it.