New to these reports? Start here
- Dotted-underlined words have a plain-English definition — hover or tap them. Every term is also on the glossary page.
- "Null" means we found nothing, not that something broke. Most reports here are negative results, on purpose — knowing an idea doesn't work is the point.
- Two questions get asked separately. First, is the effect real? Second, is it already priced into the betting odds? An effect can be completely real and still useless to bet on.
- A "calibration" row is a self-check. It runs the same method on something already known to be true. If that fails, the whole report is unreliable — so it's reported alongside the findings.
- If a confidence interval includes zero, the real effect might be nothing at all, so no claim gets made.
Is Kalshi's NFL book soft? (2026 weeks 1-5, run 2026-10-10)
Data: every settled Kalshi market in 8 NFL series for the 65 games of weeks 1-5,
22,947 markets, with 1-minute bid/ask for the 3 hours before kickoff
(scripts/odds/kalshi_nfl_backfill.py -> [redacted]; Kalshi's public
API, no key, no Odds API credits). Test: softness.py; output in softness_output.txt.
1. Against sportsbooks at the same moment (2,024 markets)
Only rungs where a sportsbook had a two-way line at the exact Kalshi strike (Pinnacle, else a median of at least two other books). Kalshi quote = last 1-minute candle at or before Pinnacle's last pre-kickoff snapshot.
- Kalshi is as accurate as Pinnacle. Log losslog lossA score for probability forecasts that punishes confident wrong answers harshly. Lower is better. of Kalshi's mid 0.6456 vs the reference 0.6456 (difference SE 0.0010). The average gap is 1.4 points, and the bid-ask spread is 1 cent.
- Betting the disagreements, at the ask and after the 0.07·p(1−p) taker fee, breaks even: EV ≥ 0: 518 bets, ROIreturn on investmentProfit as a percentage of the money wagered. +2% means $2 profit per $100 bet. −0.6% ± 8.3%; EV ≥ 5%: 138 bets, +16.9% ± 20.3%.
- Anytime TD is the only systematic gap. Kalshi's "1+ TD" Yes is cheaper than Pinnacle's devigged Yes in 328 of 330 flagged bets. EV ≥ 5%: 123 bets, +19.7% ± 22.2%. That is noise at this n. It is probably a devigdevigRemoving the bookmaker's cut from odds to recover the market's actual implied probability. artifact: multiplicative devigging leaves too little of the margin on the longshot side, overstating Pinnacle's Yes. Log loss on TDs: Kalshi 0.5583 vs Pinnacle 0.5580.
2. Every rung, with no sportsbook reference (20,037 markets)
Quote 5 minutes before kickoff, by price band. Kalshi is well calibrated everywhere. There is no favorite-longshot biasbiasWhether the misses lean consistently one way. A projection can have a good average error size but still be biased if it is almost always too high. Bias is often the more fixable problem. to sell: cheap rungs hit slightly MORE often than priced (5-10¢: hit 7.9% vs mid 7.1%). After the spread and fee, no band is profitable on either side: buying Yes at 10-20¢ is the best, at −0.4% ± 5.9%.
Verdict
Not soft. Kalshi's NFL prices track Pinnacle to about a point, so it adds volume but no edge. History stays available after settlement, so no live polling is needed to keep testing it.
Arbitrage (arbitrage.py, run 2026-10-10)
Inside Kalshi: none. In every minute of the 3 hours before kickoff: - Moneyline: the two teams' asks never summed below $1.00 (the minimum, and the median, was exactly 1.00), so fees make every pair a loss. - Ladders: a higher rung's bid never exceeded a lower rung's ask (max difference 0.0 on rushing yards; zero hits on all ladders).
The market makers keep the book internally consistent to the cent.
Kalshi against a sportsbook at the same strike: 54,026 quote pairs, checked only at our Odds API snapshot times (open, close, checkpoints), with the Kalshi quote at most 2 minutes old. - Profit > 0 after the fee: 104 arbs, median 0.4¢ per $1. - ≥ 1¢: 23 arbs, median 1.8¢. - ≥ 2¢: 10 arbs. - Almost all were props against Bovada, BetMGM or Fanatics.
The two biggest (14.7%, NE @ JAX moneyline, Sep 27) were a feed error. BetMGM's prices were swapped, with JAX +135 and NE −160 while every other book had JAX about −160. A book voids those as palpable errors. Excluding them leaves about 21 at ≥1¢ over 5 weeks, or ~4 a week, worth ~$9 each at $500 stakes.
Caveats: - Our snapshots are 30+ minutes apart, so we can't measure how long an arb lasts or how many we missed. - Candles carry no order size. - A player-prop arb only holds if both venues settle an inactive player the same way. Books void the bet; check Kalshi's rules for that market. - Sportsbooks limit accounts that arb (see the 2026-08 +ROI study).
Verdict: not worth building.