In one sentence
Simultaneous Kelly finds the set of stakes for several open bets at once that maximises the long-run growth of your bank, allowing for how the bets win and lose together.
How it works
Single-bet Kelly assumes each bet settles before you place the next. On a Saturday you might have ten football bets running at 3pm, or two outcomes backed in the same Match Odds market. Sizing each one as if it were alone gets the answer wrong.
For independent bets placed at the same time, the correct stakes are slightly smaller than the single-bet figures, because there is a small chance they all lose together. For outcomes in the same market, only one can win, so a winner partly pays for the loser and the right stakes can be bigger than the single-bet figures.
In both cases the method lists every possible combination of results, works out the bank after each, and chooses the stakes that give the best average log bank.
The maths
- s is one possible combination of results (for example, bet 1 wins and bet 2 loses).
- P(s) is the probability of that combination.
- f with subscript i is the fraction of bank staked on bet i.
- r with subscript i of s is the return per £1 on bet i in that outcome: decimal odds minus 1 if it wins, minus 1 if it loses.
For backing several outcomes in one market there is a neat closed form:
- o with subscript i is the decimal odds of outcome i, p with subscript i its win probability.
- S is the set of outcomes you back, and R is the share of bank you keep back.
In plain English: pick the stakes that make the bank grow fastest across every way the results could land at once.
Worked betting example
Bank £1,000. In one Match Odds market you rate the draw (A) at 30%, available at 4.00, and the away win (B) at 20%, available at 6.00. That leaves the home win at 50%. The ratings are illustrative, and commission is left out to keep the sums clean.
- Single-bet Kelly on A: (3 × 0.30 − 0.70) ÷ 3 = 6.67%, or £66.67.
- Single-bet Kelly on B: (5 × 0.20 − 0.80) ÷ 5 = 4.00%, or £40.00.
- Joint version: R = (1 − 0.50) ÷ (1 − 0.25 − 0.1667) = 0.857.
- Stake on A = 0.30 − 0.857 ÷ 4 = 8.57%, or £85.71. Stake on B = 0.20 − 0.857 ÷ 6 = 5.71%, or £57.14.
| Result | Single-bet stakes | Joint stakes |
|---|---|---|
| Draw (A) | +£160.00 | +£200.00 |
| Away win (B) | +£133.33 | +£200.00 |
| Home win (50%) | −£106.67 | −£142.86 |
The joint stakes raise growth per match from 0.01316 to 0.01409. A numerical optimiser in Python gives the same stakes.
The opposite happens with independent bets. Ten football bets at 2.50, each rated 45%, have a single-bet Kelly of 8.33% each, 83.3% of the bank in total. The joint optimum is 7.55% each, 75.5% in total. Even that is far too aggressive for real use; all ten lose together about 0.25% of the time.
Where it's good
- Saturday football cards where many bets are live at once.
- Backing two outcomes in one Match Odds market, or several scorelines in one Correct Score market.
- Portfolios of in-play positions that settle together.
Limitations and pitfalls
- The number of outcome combinations doubles with each bet, so exact calculation becomes slow beyond about 15 to 20 bets; you then need simulation.
- Correlation is the hard part. Bets on the same match, same weather or same model error are not independent, and guessing that wrong breaks the answer.
- Full joint Kelly still assumes perfect probabilities, so it usually needs scaling down just like single-bet Kelly.
- Commission on Betfair is charged per market on net winnings, which complicates same-market calculations; include the 2% in the returns.
How to build it
- Use scipy.optimize.minimize on the negative expected log bank, with bounds keeping each stake at zero or above.
- For large cards, estimate the expected log with a few hundred thousand Monte Carlo scenarios instead of enumerating every outcome.
- Model correlation explicitly, for example with a shared factor per match or per league round.
- Practical tip: after optimising, apply a Kelly fraction and a hard cap on total exposure.
Related methods
- Kelly criterion – the single-bet version.
- Fractional Kelly – scaling down the joint answer.
- Dutching – another way of backing several outcomes in one market.
- Independence and correlation – the key input for joint sizing.
- Mean-variance optimisation – a simpler portfolio approach.