2026-05-20 · bankroll bet sizing kelly

The Kelly criterion for sports betting: when to use it, when to half it, when to skip it

The Kelly criterion is the bet-sizing formula that maximizes long-run logarithmic growth of your bankroll. It is mathematically optimal under specific conditions, and on average exactly nobody bets it at full size. The reason isn't that bettors are dumb; it's that the conditions Kelly assumes don't quite hold in sports betting. This post is about what Kelly actually says, why fractional Kelly is the working default, and the four ways that estimating-your-edge goes wrong in practice.

What Kelly actually says

For a binary bet at decimal odds d with your estimated win probability p:

fraction_of_bankroll = (b * p - q) / b

where:
  b = d - 1        # net payout per $1 staked
  p = your estimated win probability
  q = 1 - p        # your estimated loss probability

Worked example. You estimate Yankees -145 has a 60% win probability. -145 is decimal 1.69 (1.69 - 1 = 0.69 net payout per $1).

b = 0.69
p = 0.60
q = 0.40
fraction = (0.69 * 0.60 - 0.40) / 0.69
        = (0.414 - 0.40) / 0.69
        = 0.014 / 0.69
        = 0.0203
        = 2.03% of bankroll

For a $10,000 bankroll, full Kelly says stake $203 on this bet. Across thousands of bets at this same edge, this stake-size maximizes the rate of geometric growth. The proof is in Kelly's 1956 paper "A New Interpretation of Information Rate"; the intuition is that bigger stakes win more on the upside but the downside risk grows faster (you can't bet 100% on a 60-40 because one loss zeros you).

Why nobody bets full Kelly

Three reasons, each individually fatal:

1. Your edge estimate is noisy

Kelly assumes you know p exactly. You don't. You have an estimate. If your estimate is even slightly off, full Kelly is no longer optimal; it's actually heavily over-sized. Specifically: if your estimated edge is twice your true edge, full Kelly is roughly equivalent to two times Kelly on the true edge, which has the same expected log-growth as betting NOTHING (it's the breakeven point of the variance-vs-expectation tradeoff). If your estimate is more than 2x off, full Kelly actually loses money.

In sports betting, edge estimates are noisy. CLV studies suggest that a +EV scanner's estimated edge correlates with realized edge at maybe 0.6 to 0.8. That sounds high, but at 0.6 correlation a 2% estimated edge is consistent with a true edge anywhere from -1% to +5%. Sizing full Kelly on the 2% estimate, when the true edge is 0%, is catastrophic.

2. Variance is brutal

Full Kelly has unbounded downside variance over short horizons. A 50% drawdown from peak is roughly a 1-in-3 event over 1000 bets at full Kelly with a true 2% edge. Most bettors can't psychologically survive that, even if the math says they should.

Fractional Kelly (1/2, 1/3, 1/4 of full Kelly stake) trades some long-run growth for dramatically less variance. At half-Kelly you get ~75% of full Kelly's long-run growth with ~25% of the drawdown probability. Most pros size at 1/4 to 1/2 Kelly for this reason.

3. You can't actually bet what Kelly says

Books cap your stake size. Sharps especially get limited fast (see how sportsbooks detect arbitrage bettors). If Kelly says bet $2,000 and the book limits you to $50, your effective stake is $50 regardless of the math. Sizing studies in sports rarely hit Kelly's binding constraint because the book-imposed cap binds first.

The working default: 1/4 Kelly

Practical recommendation for most sports bettors:

fraction = max(0, min((b * p - q) / b, 0.05)) * 0.25

# Multiply Kelly result by 0.25 (quarter-Kelly)
# Hard-cap at 5% of bankroll per bet regardless of edge

This handles the three issues:

When to skip Kelly entirely

Some scenarios where you should NOT use Kelly:

ScenarioWhy Kelly failsWhat to do instead
You have less than 100 bets of history at this edgeYour p estimate is unreliable.Flat stake (1% of bankroll). Re-evaluate after 200+ bets.
Your bets are highly correlated (same-game parlay, simultaneous arbs across 5 NFL games)Kelly assumes independent bets. Correlated bets compound variance.Use Kelly on the joint probability, not per-bet, OR cut individual stakes by sqrt(N) for N correlated legs.
The edge is below 0.5%Estimation noise dominates; the size Kelly recommends is below typical book min-stakes anyway.Skip the bet or use flat min-stake.
You're playing on a sweepstakes or DFS app with non-cash payoutsThe bankroll isn't cash-fungible. Kelly's log-utility assumption breaks.Use the app's "exposure" tools instead of Kelly.
You can't psychologically tolerate 30%+ drawdownsEven quarter-Kelly produces 25%+ drawdowns occasionally. Your real risk tolerance is binding.Sixth-Kelly or flat stake at 0.5% of bankroll.

The estimation pitfalls

Kelly is only as good as your p. Four ways the estimate goes wrong:

1. Treating vigged implied probability as your p

The book offers -145 = 59.18% implied. That's NOT your p; it's the book's offer. If you're using it as your win probability you're just betting that "the book is fair" which means you have zero edge. p must come from your own model, devigged sharp anchor, or some other independent estimate. See no-vig CLV explained.

2. Using the sharp's vigged price as p

Same trap, slightly subtler. Pinnacle has Yankees -145 (59.18% implied), so you assume p = 59.18%. But that includes Pinnacle's vig (~1.7%). Devig first: 59.18 / (59.18 + 42.55) = 58.18% no-vig. The 1-point gap between 59.18% and 58.18% is enough to flip a +EV play into a -EV one. See no-vig CLV explained.

3. Cherry-picking the model that says +EV

You have three +EV scanners (sharp-anchor devig, multi-source consensus, your own GBM). They disagree on which side has edge. You take the one that says "+3% on Yankees" and ignore the two that say "no edge." Predictably, your realized edge is ~1/3 of what the cherry-picked model claimed. Pick a method per market type before scanning, then commit. See multi-source consensus pricing.

4. Ignoring correlation with bets already placed

You bet Yankees ML at +EV. The same scanner now flags Yankees -1.5 spread at +EV. These are correlated. Sizing both at full Kelly assumes independence; your effective stake on "Yankees side" is now Kelly_ML + Kelly_spread, which is over-sized in expectation. Either bet the more-edged of the two, or size each at the joint-probability Kelly.

How to compute Kelly from a ParlayAPI +EV response

The /v1/sports/{sport}/ev endpoint returns the no-vig fair probability and the book's implied probability. Combine them with the offered American odds to compute Kelly:

def kelly_fraction(american_price, fair_prob, kelly_multiplier=0.25, max_fraction=0.05):
    """Return the suggested fraction of bankroll to stake.

    Args:
        american_price: int, the American odds you're considering taking
        fair_prob: float, your estimated win probability (0..1)
        kelly_multiplier: float, fractional-Kelly factor (default 0.25)
        max_fraction: float, hard cap per bet (default 5%)
    """
    # American -> decimal
    if american_price > 0:
        decimal = 1 + american_price / 100
    else:
        decimal = 1 + 100 / abs(american_price)
    b = decimal - 1
    p = fair_prob
    q = 1 - p
    raw_kelly = (b * p - q) / b
    if raw_kelly <= 0:
        return 0
    return min(raw_kelly * kelly_multiplier, max_fraction)

Worked example with a +EV response:

{
  "side": "Yankees",
  "price": -135,                    # what you'd bet at
  "book_implied_pct": 57.45,
  "fair_prob_pct": 58.18,           # Pinnacle-anchored devig
  "edge_pct": 0.73,
  "book": "FanDuel"
}

# stake = kelly_fraction(-135, 0.5818) * bankroll
#       = 0.25 * 0.0125 * bankroll
#       ~ 0.31% of bankroll
# On a $10,000 bankroll: stake ~ $31.

That's a small bet. It SHOULD be small: a 0.73% edge with noisy estimation is barely above zero in expectation. Quarter-Kelly sizes correctly for the edge size.

The honest summary

Full Kelly is the theoretical maximum-growth bet size assuming you know p exactly. You don't. Fractional Kelly (1/4 to 1/2) trades a small fraction of long-run growth for dramatically less variance. The 5% hard-cap-per-bet rule handles the "edge estimate is wildly wrong" case where Kelly would otherwise recommend something disastrous.

If you remember nothing else: multiply Kelly by 0.25 and cap at 5% of bankroll. That's the working default. From there you can adjust based on your specific edge-estimation confidence, correlation structure, and risk tolerance.

All posts · No-vig CLV explained · Value-hunting trifecta · Glossary: strategy terms