Is there a formula for perfect poker?
Sort of — but it isn't a single number, it's an equilibrium. Here's the real math, the myth we had to clear up, and what we decided to put in front of players.
People keep asking us a version of the same question: isn't there a formula for the perfect poker bet — the exact percentage chance you should bet versus do something else? It's a great question, and the honest answer is "sort of, but not the way you think." Chasing it properly led us to clear up a couple of myths and make a deliberate decision about what to actually build.
Perfect play isn't a formula — it's an equilibrium
The mathematically correct notion of perfect poker is a Nash equilibrium: a strategy no opponent can profit by deviating from. In poker that's almost always a mixed (randomized) strategy— with a given hand you might bet 70% of the time and check 30%. So the "ideal bet percentage" you half-remember is real, but it's a frequency, not a single move, and there are millions of them — one per situation. Practitioners call an approximate equilibrium GTO(game-theory optimal). It's a giant table of probabilities, computed by self-play algorithms (CFR and its descendants — the engines behind the bots that beat the pros), not an equation you write on a napkin.
The math that is real (and teachable)
You can't write down "the perfect strategy," but you absolutely can write down the relationships that govern good betting — and these are the genuinely useful formulas:
- Alpha — how often a bluff needs a fold to break even:
bet / (bet + pot). A pot-sized bet needs them to fold 50% of the time. - Minimum defense frequency (MDF)— how much of your range you must keep so a bettor can't profit bluffing anything:
pot / (bet + pot)= 1 − alpha. - Bluff-to-value ratio — what fraction of a betting range should be bluffs:
bet / (2·bet + pot). Bigger bets → more bluffs, to stay balanced. - Pot odds — the equity you need to call:
bet / (pot + 2·bet). If your hand wins more often than that, calling makes money.
So the "ideal bet" math, by size:
bet size bluffs (% of betting range) value : bluff
½ pot 25% 3 : 1
pot 33% 2 : 1
2× pot 40% 1.5 : 1And when you want to get all-in by the river without tipping your hand, the geometric bet size — the same fraction of the pot each street — is a clean formula too (about 22% of pot per street with a 100-big-blind stack). We implemented all of this as a small, exact, tested module.
export function alpha(bet, pot) { return bet / (bet + pot); } // fold% a bluff needs
export function mdf(bet, pot) { return pot / (bet + pot); } // defend this much
export function riverBluffShare(bet, pot) { return bet / (2 * bet + pot); } // bluffs in a betting range
export function callEquityNeeded(bet, pot) { return bet / (pot + 2 * bet); } // equity to callKelly is for your bankroll, not your bet
A lot of people (reasonably) reach for the Kelly criterionhere — the famous bet-sizing formula. It's the right tool for sports betting, where a wager really is a fraction of your bankroll at fixed odds. But a poker bet isn't a fraction of your bankroll — it's a strategic move whose size depends on ranges, board texture, position and stack depth. So Kelly is the wrong lens for "how much should I bet on the river" and the right lens for "how big a bankroll do I need / what stakes can I afford" (that's the risk-of-ruin layer). Conflating the two is the single most common misconception we ran into, and we keep them firmly separate.
What we decided to build
Here's the strategic call. We are not building a superhuman solver, and we deliberately aren't trying to. A trainer's job isn't to crush you — it's to make you better — so the valuable move is to teach the math, not hide it inside an unbeatable opponent. A few principles fell out of that:
- Surface the numbers, gently.Wit's coach now has a "GTO read" you can open on any decision: facing a bet it shows the equity you need versus what you have ("you need 40% to call — you're at 26%, below the price"); first to act it shows a balanced bet size and its bluff/value mix. It's tucked behind a tap so it never overwhelms a beginner — try it at the table.
- Build on our own data, not someone else's solver. Commercial solvers forbid putting their solutions in a product, so we use open math, open datasets, and — most importantly — our own gameplay to make the bots more human, not more robotic.
- Reading opponents is a separate skill from GTO.The famous bots don't model their opponents at all; beating real people means inferring their range from how they've bet. That's where we're investing — and it's the part a learner most wants to get good at.
The short version: there's no magic number, but there's a lot of beautiful, checkable math underneath every bet — and we'd rather hand it to you than bury it in a black box.