← Back

How I Learned to Stop Worrying and Love the Bayesian

A read is not an argument, it is an estimate with error bars. A framework for sizing table reads: what counts as evidence, how far one observation should move you, and the break-even number a read has to clear.

Note — This is not a beginner’s article, and not a statistics course. It assumes you already speak solver: ranges, indifference, MDF, mixed frequencies. It does not teach tells, it gives you somewhere to put them; the channels that matter here are betting behaviour, sizing, and timing. It sits on top of your solver work rather than replacing it. What it hands you is a way to model exploitability — to price a read, or to build software on top of.

GTO and exploit get said together so often in poker that people assume they mean the same thing. They are close to opposites, and the gap between them is the reason this article exists.

Static and Dynamic

GTO is static. It is a fixed point — frequencies that cannot be exploited by an opponent who also plays GTO. Because it never moves, it can be written down, solved, and memorised: open a solver, pick a node, read the answer off the screen. The same answer for everyone, every time.

Exploit is dynamic. It is a function of the opponent: the right play against a calling station is the wrong play against a nit. Because the target moves, exploit resists clean mathematical treatment — you cannot solve it once, because “it” is different for every player you meet.

GTO is studying for an exam; exploit is shooting a basketball. For the exam you have a syllabus and a number at the end. For the shot you have a feel. You do have a system for shooting — but it is hard to score cleanly, hard to tell which part is wrong, and hard to improve on purpose. Mostly it comes down to volume and a gut feeling.

Why Exploit Bites

Get it right and it is where the money is. Not “a bit better than GTO” better — massive better: a correctly sized exploit against a pool that folds too much prints EV no static frequency will.

Get it wrong and you walk off an EV cliff.

EV cliff — the spot where a line that looks +EV on paper (EV = fold% × pot − call% × bet) abruptly stops being profitable. Your read says “bluff more”, the pool quietly stops folding, fold equity vanishes, and a marginal play becomes a large, systematic leak over a sample. The number does not drift through zero — it falls off a ledge.

the shape of an exploit gone wrong

-20-15-10-50+50%25%50%75%100%break-even ≈ 75%the cliffsloppy readsharp readaccuracy of your posterior read →EV of the call (pot)

How to read it: the x-axis is how accurate your posterior read of the opponent is, the y-axis is the EV of the line in pots, and the dashed line is break-even. A sharp read keeps you comfortably positive. Drift a little and the same play is not 'slightly worse' — it is catastrophically negative. That ledge is the cliff.

There is a second cost, quieter: exploit is hard to learn, and most of the time the boring play is fine. A conservative line brings less variance and you already know how to execute it. Deviating is a bet on your read being right — and the graph above is the losing side of that bet.


The Concepts

Bayesian inference will not hand you the correct exploit for free, but it gives you a language for reads: a belief with a spread, a rule for how far one observation should move it, and a break-even number that belief has to clear.

Everything that follows is one idea repeated: update your beliefs when new evidence arrives. A read is not a conclusion — it is a distribution over what the opponent is doing, and every hand is a chance to narrow it.

Three terms — the rest of the article leans on these, so they live here instead of in the flow.

  • BOM — the Bayesian Opponent Model. Your belief about the opponent’s frequency at a node, written as a distribution rather than a single number. “He bluffs here around 20%, but I’m not sure” is a model; “he bluffs here 20%” is a guess wearing a costume.
  • BBR — the Bayesian Best Response. The best response to your posterior — not to GTO, and not to a point estimate you invented. It is the exploit, derived instead of felt.
  • EV distribution. Draw every bluff frequency the BOM finds plausible, weight each by how plausible it is, and compute your action’s EV for each. What comes back is not one EV but a distribution — and its shape tells you whether an exploit is safe or suicidal.

The formula, in poker words

Bayes’ rule is one line of arithmetic. Written the statistics way it is all pipes and letters; written the poker way it says exactly what you already do at the table:

P(bluffbet)  =  P(betbluff)×P(bluff)P(bet)P(\text{bluff} \mid \text{bet}) \;=\; \frac{P(\text{bet} \mid \text{bluff}) \times P(\text{bluff})}{P(\text{bet})}
  • P(bluff)P(\text{bluff})the prior. How often you believed this player bluffs before they bet. Your starting read.
  • P(betbluff)P(\text{bet} \mid \text{bluff}) — how often a bluffing hand actually takes this line. Not every bluff fires; some check.
  • P(bet)P(\text{bet}) — how often the line shows up at all, from bluffs and value hands combined.
  • P(bluffbet)P(\text{bluff} \mid \text{bet})the posterior. How often you are up against a bluff now that you have seen the bet. This is the number a bluff-catcher calls against, and at decision time it is the only one that matters.

Size is evidence — evidence that arrives more often from bluffs than from value pushes the posterior up; evidence that arrives mostly from value pushes it down. The bet size is part of that: bigger bets are more polarised, so they carry a fatter bluff share. A pot-sized barrel should move you further than a quarter-pot stab.

Making the prior countable

You cannot hold a probability curve in your head at the table, so count hands instead. Track two tallies:

  • α\alpha — the number of bluffs you have banked at this node.
  • β\beta — the number of value hands you have banked at this node.

Your belief about the bluff rate is then a Beta distribution over those tallies, Beta(α,β)\text{Beta}(\alpha, \beta), and each new hand updates it by a single increment:

bluff    Beta(α+1, β),value    Beta(α, β+1)\text{bluff} \;\Rightarrow\; \text{Beta}(\alpha + 1,\ \beta), \qquad \text{value} \;\Rightarrow\; \text{Beta}(\alpha,\ \beta + 1)

Your best single estimate of the bluff rate is the mean of that curve:

b^  =  αα+β\hat{b} \;=\; \frac{\alpha}{\alpha + \beta}
  • Beta(α,β)\text{Beta}(\alpha, \beta) — the whole shape of the belief, not just its average. A wide shape means you do not know; a narrow shape means you do.
  • Adding 11 — one more observation. It moves the mean and tightens the shape.
  • α+β\alpha + \beta — the total number of observations behind the belief. This is the number that decides how far a single new hand should shock you: at α+β=2\alpha + \beta = 2, one hand moves you a lot; at α+β=200\alpha + \beta = 200, it barely moves you at all.

A thin curve is not a read — bank four hands and the Beta curve is almost flat: it says “he bluffs somewhere between never and always”, which is the honest answer. Two showdowns do not give you a bluff frequency. Quoting the mean of a wide curve is inventing precision the data cannot support — and the width you ignored is the thing that keeps you off the EV cliff.

Seeing the model as ranges

It also helps to draw the BOM as sets of hands instead of a curve.

the opponent model, as ranges

THEORETICAL RANGEthe range theory gives themRANGE YOU FACEthis player’s real rangeTHEORETICALBLUFF RANGEbluffsyou face
theoretical rangerange you actually facetheoretical bluff range

Three sets: the range theory gives them, the theoretical bluff range nested inside it, and the real range you face. The bluffs you actually face are where the theoretical bluff range crosses the real range.

Not to scale — the circles are sized to show how the ranges interact, not how often each one occurs. The point: the range you face is your prior for this player, not the GTO range — so the bluff share you read off it is your number, not the solver’s.


A 50% Call, Priced Three Ways

Take the canonical river spot. You hold a bluff-catcher. The pot is PP and villain bets a pot-sized PP into it, so your call risks PP to win 2P2P.

The arithmetic of the call is unforgiving:

EV(call)  =  b×2P    (1b)×P  =  P(3b1)\text{EV}(\text{call}) \;=\; b \times 2P \;-\; (1 - b) \times P \;=\; P\,(3b - 1)

where bb is the bluff rate — the share of villain’s betting range that is bluffs, exactly the posterior from the last section.

Break-even is b=13b = \tfrac{1}{3}: below a one-in-three bluff rate, calling loses. A GTO villain bluffs exactly 13\tfrac{1}{3}, so the call is worth zero — and that indifference is why the solver mixes, calling about 50% of the time (its minimum defence frequency) and folding the rest.

Now break the “GTO villain” assumption. A bluff-catcher is not calling “a range”: it is calling whichever slice of that range loses to your hand — and because it beats bluffs and nothing else, that slice is the bluff frequency. Which is why the 33% reappears here: a villain bluffing a third of the time and your hand holding a third of the equity are the same statement.

You only beat the hands beneath your 33% line, so whatever the curve leaves under it is the target zone. The charts below price the same call against three different opponents.

GTO opponent — a wide target zone

02550751000%25%50%75%100%your equity · 33%38% of his rangetarget zoneweakeststrongestshare of villain’s range →villain’s hand equity (% of pot)

The curve starts at 0 and climbs evenly, so a real low-equity layer exists for it to dip under your line.

How to read it: the x-axis is villain's whole range, weakest left to strongest right; the y-axis is hand equity — the share of the pot each hand takes at showdown; and the dashed line is your 33% break-even.

A GTO opponent gives you a target: its weakest ~38% is real, live low-equity air, and the call has something to attack.

Tight opponent — the target zone collapses

02550751000%25%50%75%100%your equity · 33%13% of his rangetarget zoneweakeststrongestshare of villain’s range →villain’s hand equity (% of pot)

Same axes, same 33% line — but this range starts at 15% instead of 0, so the curve clears your equity almost immediately.

Same call, same hand, and the target zone is about 13% of his range — roughly three times smaller. Most of what is left barely sits under you: this is not a spot to attack, it is a spot to get out of the way. Hence the BBR — fold more. You cannot price an exploit against bluffs that were never there.

Bluffy opponent — the mirror image

02550751000%25%50%75%100%your equity · 33%52% of his rangetarget zoneweakeststrongestshare of villain’s range →villain’s hand equity (% of pot)

The other end needs no explaining: the tail fattens, the zone widens well past a third of his range, and the same call is the best play at the table again.

Why the pool, not the player, decides

The tree below is the same call, branch by branch: the root is your action, each edge is how often you meet that pool, and each leaf is the EV the call earns there.

the same call, priced across the pool

weight = 20%weight = 60%weight = 20%Hero calls the river betGTO baseline: 50% of the timeGTO poolbluffs 33%EV +0.00 potindifferentTight poolbluffs 10%EV −0.70 pot→ fold moreBluffy poolbluffs 55%EV +0.65 pot→ call more
GTO pool
+0.00
Tight pool
−0.42
Bluffy pool
+0.13
weight × EV → pool-weighted EV = −0.29 pot

The call makes money only at the bluffy leaf, but most of the mass sits on the tight leaf — so the pool-weighted EV is negative even though the GTO call is 'correct' against a GTO opponent.

Multiply each leaf by how often you reach it and the pool-weighted EV lands at −0.29 pot. The GTO play is not wrong against a GTO player; it is simply the wrong shape against this pool. The tight leaf bleeds, the bluffy leaf is the only one that prints, and the pool — not the single read — is what a BBR optimises.


Online vs Live

The mathematics is identical. What differs is who the belief is about — a rotating pool, or one player you can watch all night — and that decides how hard you are allowed to push.

Online

You are not modelling a player so much as a pool: a different opponent every hand, but the same population thousands of times. The tallies fill fast, so the posterior comes out narrow and honest, and the default BBR is a best response to the pool rather than to one villain. Build it from pool tendencies — “the pool under-c-bets this turn” is a well-sampled belief — but keep the exploit small. You have confidence in the average, not in any individual, so a large deviation is a bet that they all behave the same way. The ones who do not are where the EV cliff and the punts live.

Live

Live is the opposite in sample, and the reverse in what you are allowed to do with it. You get hours with the same faces but a sample measured in hands, not thousands, so every observation is expensive and the posterior stays wide. Adjust often, and fold in the channels a solver cannot see — timing, bet sizing, physical state — as extra conditions on the belief. And because the read is about one player, you can spend it: a large, tailored exploit is available live in a way it never is against a pool.

Here is the same model side by side. Every number in it comes from the same spot — a pot-sized river bet where GTO bluffs 33%, so break-even is 33% — and shock value is how hard you can push an exploit before it stops being an edge and starts being a punt.

OnlineLive
Sample size400 hands — a rotating pool at one node6 hands — one regular, all night
Your readSharp. Bluff rate 38% — the honest range is 36–40%.Fuzzy. Bluff rate 50% — the honest range is 31–69%.
Shock valueSmall. A +5-point edge — and it has to hold across everybody.Huge. A +17-point gap — spendable as a tailored exploit, not as a frequency.
What to doTake the +5 in full, and a touch more — the whole range sits above break-even.Spend the read. Push the tailored exploit — one opponent, not an average.

Takeaway

GTO and exploit are not rivals. They are the prior and the posterior.

  • GTO is the prior. It is the answer when evidence is absent, and it hands you the number any read has to beat.
  • Every hand is an observation. Bank bluffs and value into α\alpha and β\beta: the mean α/(α+β)\alpha / (\alpha + \beta) is your estimate, and the size α+β\alpha + \beta is your confidence.
  • The BBR is the exploit, derived — best-respond to the posterior and to the pool, not to the player you remember.
  • Respect the cliff. A read has to clear break-even by enough to cover the cost of being wrong.

None of this makes exploit easy. It makes it measurable — and a measurable edge is one you can size, review, and grow.