The 2026 FIFA World Cup has created Polymarket’s largest-ever prediction market — nearly $2 billion in volume on the outright winner. Spain trades around 16.5¢, France 16.1¢, England 10.9¢. Most traders treat these prices as gospel and click “Buy.” That’s expensive.
Real edge comes from stripping the hidden overround (vig), calculating proper expected value against your own model, sizing with Kelly, and accounting for execution costs. This post gives you the complete mathematical toolkit with live 2026 examples.
1. Raw Price → Implied Probability
Polymarket prices map directly to probability:
implied_prob = contract_price # e.g., 0.165 → 16.5%
Simple. But incomplete.
2. The Overround (Vig) Problem
In a fair market, probabilities of mutually exclusive outcomes must sum to exactly 1.0. They never do.
World Cup Winner market (48 teams + Others) typically sums to 1.05 – 1.12.
Example — Group F 2nd Place (4 outcomes, sum = 1.07):
Raw prices sum to 107% → 7% phantom probability baked in.
3. Stripping the Vig: Multiplicative Normalization
total = sum(raw_prices for all outcomes)
fair_prob_i = raw_price_i / total
Group F example after normalization:
- Japan raw 35% → fair ~32.71%
- The gap is real money.
World Cup Winner (≈10% overround):
- Spain raw 16.5% → fair ≈15.0%
- Your model says Spain has 19% → true edge is +4pp, not +2.5pp.
Formula reminder:
edge = your_prob - fair_market_prob
4. Expected Value (EV) — The Only Metric That Matters
For buying YES at price p:
EV = (your_prob * 1.0) - p
EV_percent = (your_prob / p) - 1
Spain example:
- Buy at 0.165, your_prob = 0.19
- EV = 0.19 - 0.165 = +$0.025 per dollar (15.15% expected return)
Argentina example (raw 8.9%, fair 8.09%):
- Your model = 7% → negative EV on YES
- Consider NO side instead (but capital efficiency is usually poor)
5. Kelly Criterion: Position Sizing
b = (1.0 - p) / p # net odds
edge_fraction = (your_prob * (b + 1) - 1) / b
kelly = (your_prob * b - (1 - your_prob)) / b
Spain Kelly (p=0.165, your_prob=0.19) → ~2.99% of bankroll.
Practical advice:
- Use quarter Kelly (conservative standard) → ~0.75% on $10k bankroll = $75
- Full Kelly assumes perfect model accuracy — it doesn’t exist
For multiple mutually exclusive bets, keep total allocation <15–20% or solve the simultaneous system (computationally heavier).
6. Execution Reality: Bid-Ask Spread
Displayed price = midpoint. You buy at ask.
Spain realistic spread:
- Mid 0.165 → Ask 0.167
- EV drops from +15.15% to +13.77%
In thinner markets, spreads can destroy edge entirely. Always pull the full order book before sizing.
Effective Vig from asks (multi-outcome):
effective_vig = sum(best_ask for all outcomes) - 1.0
7. Cross-Platform Arbitrage (Polymarket vs Kalshi)
Price discrepancies between platforms create directional edge. Convert payouts to implied probs and trade the mispriced side.
True risk-free arb is rare due to settlement/capital friction, but consistent 0.8–1.5pp gaps are pure alpha.
Putting It All Together (Python Sketch)
def calculate_edge(raw_price, your_prob, total_sum):
fair_prob = raw_price / total_sum
ev = your_prob - raw_price
ev_pct = (your_prob / raw_price) - 1
kelly = max(0, (your_prob * (1/raw_price - 1) - (1-your_prob)) / (1/raw_price - 1))
return {
"fair_prob": fair_prob,
"edge_pp": (your_prob - fair_prob)*100,
"ev_pct": ev_pct*100,
"kelly_frac": kelly
}
Feed this with live Gamma/CLOB data + your ELO/SPI/model probabilities.
Final Thoughts
The crowd on Polymarket is smart, but rarely does the math. Stripping vig, computing real EV, and sizing properly turns you from a spectator into a quant with measurable edge.
This framework works far beyond World Cup — any multi-outcome prediction market benefits.
Build the model. Run the numbers. Size intelligently.
If you have more questions, please feel free to contact me at any time: https://t.me/FatherSon97

Top comments (0)