← Back to blog

How to Hedge a Sports Bet: The Math of Locking In Profit

hedging polymarket prediction-markets bet-sizing strategy math

Hedging is the move most sports bettors get wrong in both directions. Some hedge every winning ticket out of fear and leave EV on the table. Others refuse to hedge anything and watch a +$200 winner evaporate into a -$50 loser on a fluke. The math actually tells you when to hedge and when to ride — and on prediction markets there is even a case where hedging produces guaranteed profit with zero risk.

This post walks through the formulas, the worked examples, and the structural reason hedging works better on Polymarket than on a traditional sportsbook.

What "Hedge" Actually Means

A hedge is a position that pays off if your original bet loses. You stake some amount on the opposite side so that, regardless of which side wins, you walk away with a known profit (or a known smaller loss).

Three things to keep straight:

The Math (Two-Outcome Markets)

Suppose you bought $S_A$ shares of side A at price $p_A$ (in dollars per share, so $0 < p_A < 1$ on a prediction market, or convertible from American/decimal odds on a sportsbook). The market then moves and side B is now available at price $p_B$.

If you buy $S_B$ shares of side B, your guaranteed dollar outcome at resolution is:

profit_if_A_wins  = S_A × (1 - p_A) - S_B × p_B
profit_if_B_wins  = -S_A × p_A + S_B × (1 - p_B)

To lock the same profit either way (perfect hedge), set those equal and solve for $S_B$:

S_B = (S_A × p_A + S_A × (1 - p_A) × x) / (1 - p_B)

You don't actually need to memorize that — the practical version is:

S_B = S_A   (for a perfect lock, when both sides pay $1 on win)

That's the punchline. On Polymarket and Kalshi, where each contract pays exactly $1 at resolution, a perfect hedge means buying the same number of shares on the other side. The guaranteed profit per share is:

guaranteed_profit_per_share = 1 - (p_A + p_B) - fees

If $p_A + p_B < 1$, you make money. If $p_A + p_B > 1$, you take a loss to guarantee the outcome.

Worked Example: Lock-In Profit

You bought 100 shares of the Lakers at 35¢ pregame ($35 cost). The Lakers are now up 18 with 6 minutes left and the YES contract is trading at 92¢. You don't want to give back the gain.

The opposite contract (Lakers NO) is now trading at 9¢ (since the market is mostly resolved). Buy 100 shares of NO at 9¢ ($9 cost).

Total cost: $35 + $9 = $44 for 100 paired shares. Guaranteed payout: $100 (one side wins, pays $1 per share). Guaranteed profit: $100 - $44 = $56.

You went from "+$57 if Lakers hold, -$35 if they collapse" to "+$56 guaranteed, no variance." You gave up $1 of upside in exchange for eliminating all downside. Whether that's a good trade depends on your bankroll, how confident you are in the lead, and how many similar setups you have running in parallel.

Worked Example: Free-Profit Hedge

This is the case that doesn't exist on sportsbooks but happens on prediction markets during volatile in-game swings.

Mid-game, a market moves fast in one direction and the other side spikes briefly. You see:

Buy 100 of each. Total cost: $68 + $25 + $2 fees = $95. Guaranteed payout at resolution: $100. Guaranteed profit: $5 (about 5.3% in a few minutes).

This is the engine behind ZenHodl's hedge accumulator bot and the WP hedge overlay. The overlay watches every open position from the other ZenHodl bots and automatically buys the opposite side when the pair cost drops below $1 minus a profit threshold.

On a sportsbook this would be called an arbitrage opportunity — and it's vanishingly rare because sportsbook vig keeps the two-sided sum above 100% almost always. Prediction markets have no vig (only an explicit, small taker fee), so sub-100% pair sums happen multiple times per game during volatile windows.

When You Should Hedge

Hedging is good when:

When You Should NOT Hedge

Hedging is bad when:

The Sportsbook Hedge

On a sportsbook, hedging works the same way but the vig makes it worse.

Say you bet $100 on the Patriots at +400 (decimal 5.00, implied 20%). You're in line for $400 profit if they win. They're up 21 at halftime and the live line on the Patriots is now -300 (decimal 1.33, implied 75%, but with vig pushing the no-vig fair to roughly 78-80%).

To lock the result, you bet on the other side — the Bills moneyline — at whatever it's currently offered. Let's say that's +280 (decimal 3.80, implied 26%, post-vig).

Stake to lock: you want your total profit identical either way.

If Patriots win:  +$400 - hedge_stake
If Bills win:     -$100 + hedge_stake × 2.80

Setting equal: $400 - x = -100 + 2.80x → x = $131.58.

Hedge stake $131.58 at +280. If Patriots win, +$400 - $131.58 = $268.42. If Bills win, -$100 + $131.58 × 2.80 = $268.42. Locked profit either way.

But notice: total stake is now $231.58 for a guaranteed $268.42 profit. The sportsbook is paying you a small premium to remove the variance because the vig built into both lines means the bookmaker collects a tax on each transaction. The same setup on a prediction market would yield meaningfully more profit because there is no vig — only a small explicit fee.

How to Decide in 60 Seconds

Quick mental algorithm:

  1. What is the current opposite price? If you can't see it, you can't hedge.
  2. What does my model say the opposite probability is? If the opposite price is higher than my model's fair probability, the hedge is EV-positive — consider taking it.
  3. What is the pair cost? If it's less than $1 (minus fees), buy both — guaranteed profit.
  4. Is the position oversized for my bankroll? If yes, hedge even at a small EV cost. If no, only hedge when the opposite side has actually overshot.

If you do this often, write the math down once and reuse it:

def lock_profit_hedge(shares_a, price_a, price_b, fee_per_share=0.02):
    """For two-outcome prediction markets where each side pays $1."""
    # Perfect lock: buy equal shares on the other side.
    shares_b = shares_a
    cost = shares_a * price_a + shares_b * price_b + (shares_a + shares_b) * fee_per_share
    payout = shares_a  # exactly one side wins, pays $1 per share
    return payout - cost

def is_free_profit(price_a, price_b, fee_per_share=0.02):
    """True if buying both sides locks guaranteed profit."""
    return (price_a + price_b + 2 * fee_per_share) < 1.0

Twelve lines of Python cover most hedging decisions.

The Bottom Line

Hedging is a tool, not a strategy. The bad version is fear-driven and gives away EV. The good version is math-driven and either locks rational profit on oversized positions or captures genuine free money during volatile mid-game swings.

The structural advantage of prediction markets here is huge. On a sportsbook every hedge pays a small tax to the bookmaker. On Polymarket and Kalshi the only friction is the explicit taker fee — usually around 2% — which means sub-$1 pair costs happen often enough to be worth watching for systematically. ZenHodl's overlay bot does this automatically across every open position and locks small guaranteed profits during in-game volatility.

If you bet sized properly with Kelly Criterion, you'll need to hedge less often than you think. When you do hedge, do it because the math says yes — not because you're nervous.


Free interactive hedge calculator — paste your position and the current opposite price, see guaranteed P&L instantly. Pair with the Kelly Criterion calculator, the odds converter, and the fair value calculator. Full course on building prediction market bots at zenhodl.net/course.

Related reading

Get ZenHodl Weekly

One weekly email with live results, one model insight, and product updates.

Tuesday mornings. No spam.

Want to build this yourself?

The ZenHodl course teaches you to build a complete prediction market bot in 6 notebooks.

Join the community

Discuss strategies, share results, get help.

Join Discord