The Incredible, Edible Poker Hand Distribution

Sunday, April 05, 2009

As every self-respecting poker degenerate knows, there are 1,326 unique starting hands in the Texas Hold'em universe.

All 1,326 unique Texas Hold'em starting hands.

When you peek at your hole cards at the beginning of a hand, all of the 1,326 combinations are equally likely. Your chances of seeing [AhAs] are exactly the same as seeing [7d2c]. That is, the 1,326 starting hands are isometric with regard to probability: each has the same chance of occurring. So when you stare down at the opaque patterned backing of your hole cards prior to peeking at their undersides, you're not looking at a specific hand. You're looking at a probability cloud containing 1,326 possibilities, one of which will manifest when your hole cards are formally observed.

Prior to observation, a given player's hand isn't a hand; it's a probability cloud containing N distinct possibilities.

We call this probability cloud a hand distribution or a hand range and far from being a recondite mathematical theory of interest only to statisticians and poker geeks, it's one of the most powerful weapons we have in the battle against incomplete information. Good players use this weapon all the time, consciously or unconsciously. Every time a player deduces a piece of information, however vague, about an opponent's hand, he's creating a hand distribution.

  • My opponent has either Aces, Kings, Queens, or Ace-King. Not sure which. He's strong, though.
  • My opponent has two cards (any two cards) of a particular suit, for the flush. Or he might be bluffing the flush.
  • My opponent either has a set or an overpair.
  • My opponent has top pair with a good kicker.

Each of the above statements can be expressed precisely by assigning the opponent a distribution containing or more potential specific hands. For example, if the preflop action convinces you that your opponent has Aces, Kings, Queens, or Ace-King, you've assigned him a distribution—a probability cloud—containing 34 distinct possibilities, each of which is a specific two-card starting hand.

A Hold'em hand distribution (QQ+,AKx) containing 34 specific hands.

A distribution can be as small or as large as necessary to countenance all the possibilities. If you know an opponent's specific hole cards (perhaps you caught a glimpse of them), that opponent has a hand distribution containing a single hand. The probability of him having that hand is 1.0 or 100%. This is a truism, but a necessary one in order to normalize the underlying logic. Everything is a distribution. If everybody folds to you on the button and you're considering whether to raise, the small blind and the big blind (since their cards are completely unknown) have a random distribution containing every possible 2-card holding. After you raise, of course, and the small blind re-raises, you'll have to revise his distribution to take into account the new information. But you're always working in terms of distributions. Every player's hand at the table can and should be thought of as a distribution containing one or more hands.

Distributions have enormous utility because pinpointing an opponent's exact hole cards is difficult. Even when we're 95% certain our opponent has a given hand, there's always that pesky 5% chance he's splashing around with something else. And usually we won't be 95% certain; we'll be 75% certain, or 50% certain, or an unqualifiable amount of certain. And this is where one of the most common and egregious mistakes in poker is made, namely:

Playing in such a way as to maximize your value against the specific hand you believe your opponent has.

The thought process goes something like this:

Okay, I'm pretty sure my opponent has such-and-such a hand here. Yes. He raised preflop, I bet into him on the flop, now he's raising...yep, he's got such-and-such. I might be wrong here, but I'm gonna go with my read. I'm all-in / I fold / etc.

There's nothing wrong with making a read and sticking to it; the problem is that the above train of thought is usually indicative of a read that is too specific—far more specific than the available information warrants. When we put all our eggs into one basket by making a very precise, possibly incorrect deduction about an opponent's cards, and when we base our betting decisions on that deduction, we front-load the difficulty of poker onto our (flawed) ability to extract (incomplete) information from a (loosely-wired) poker situation.

In other words, we fall into the trap of deterministic strategy. We play as if our opponent had a specific hand.

Deterministic poker strategy flowchart

But until we actually observe an opponent's hand for ourselves, it's not a hand, it's a probablistic distribution of potential hands. Sometimes this distribution will coalesce, based on the available evidence, and we'll be able to say with confidence that the opponent is holding such-and-such a specific hand. But more often the distribution will contain a handful of possibilities. Our job is to play in such a way as to maximize our EV not against the single most-likely hand, but against the range of plausible hands an opponent could hold.

And in order to maximize our EV in situations involving multiple opponents with hand distributions, we have to know how to calculate our EV in situations involving multiple opponents with hand distributions, using available tools such as PokerStove and, of course, by writing code in our language of choice. Stay tuned.

Tags: poker hand evaluation, poker bot, probability, online poker, poker strategy, poker

33 comment(s)

I have you hooked up through Sage now. Great post. One of the clearest descriptions of this topic I've ever read. Still waiting for the code. Somebody should turn that diagram into a poster, btw...

Good "food for thought"! ;-)

Good description of a complex topic. I like how you pointed out that hand distributions should be normalized, meaning even when a player has a specific known hand, that's still a distribution...of one. I've written a lot equity computation code and treating everything as a distribution simplifies the logic tremendously. Waiting to see your take on the same topic.

Great article. "Oops. Guess I was wrong" ... Story of my life lol.

great article;

my web is

Hey James, how did you put together the picture of the 1326 hands & is there a larger version? Is there some sort of tool which generates this stuff?

With all the talk about "until an opponents hand is observed its just a probability distribution" I expected you to launch into an aside about quantum physics...!

This post is worth it just for the picture of the 1326 hands. I agree with the guy who said somebody should make a poster of it (if this hasn't been done).

1326 unique hands boiling down into 169 unique hands when you suck out redundant suit information.

The redundant suit information may become not so redundant when your nice straight gets cleaned out by a flush :-)

When you do the mental work involved in assessing the range of opponent hands, and breaking it down, you're doing a very simple and quick version of combinatorics. (See [url][/url]

Analyzing Limit Hold'em hands play post-game, and examining the combinatoric ranges of opponents hands, can often reveal situations where you should have bet because what you feared was so unlikely.

Interesting artcile, James. Always love reading your stuff. You mention PokerStove. What other helper applications do you use, if you don't mind me asking?


Pretty newbie-like content but presented as usual in a great way.

Totally agree with the Anonymous guy who mentioned quantum physics.. Who knows, maybe you could use quantum physics principles to help your poker game :P .. Or well, at least as a nice analogy. I wonder if there's a good parallel to the Heisenberg Uncertainty Principle in poker. Can't think of anything right now, can anyone else?

[b]"The more precisely you can determine your opponent's hand distribution, the less precisely you can determine [u](fill in the blank)[u]"[/b]


Again, the Heisenberg Uncertainty Principle applied to poker (fill in the blank):

[i]"The more precisely you can determine your opponent's hand distribution, the less precisely you can determine _________"[/i]

Everybody talks about hand ranges like oooh big man I'M 67% AGAINST HIS RANGE but you know what? In practice it is BS. Nobody thinks like that. They just write books pretending they think like that.

Seriously. Pet peeve.

Good article. Although it's hard for human to think about hand ranges like that, it's an ideal model for poker AI program to analyze hands like that. To turn the poker AI into a winning AI, the next steps for the AI program are:

  1. Modify the hand distribution other players may have according to their actions. You will need a hand history database to know your opponents better to help on this one.
  2. Calculate EV for each hand and combine all the results together to make a decision about best choice for next action. This is a more difficult problem since you also need to take implied odds and future actions your opponents may take into consideration.

"If everybody folds to you on the button and you're considering whether to raise, the small blind and the big blind (since their cards are completely unknown) have a random distribution containing every possible 2-card holding."

Well, yes and no. If one of the players who folded had had AA or KK or AK they would certainly have opened. Therefore, the small and big blind have a slightly greater chance of holding an ace or a king than would have been evident at the start of the bidding. I agree that they can hold every hand, but it is now slightly more likely that they will have AA than 22.

Rather than thinking about a smaller collection of hands, each of which has the same probability, it is closer to the truth to think of a larger collection of hands, each of which has a different probability.

Not that this makes designing poker bot software easier, mind you. But perhaps we can think of the hand distribution as a multiple of 168 hand types, depending on the common cards. For instance, for a rainbow flop there are only 2x168 hand types, but a player would have been more likely to open with A9 if it is suited, even in the unseen suit. So we actually would have 3x168 probabilities to work with, the unsuited hand types (168), each numbering 12 instances, the missing suited hand types (168) with one instance and the still-flushable suited hand types (168), each with three instances. Although the probabilities of each instance of the last two are the same, the actions to be expected and the actions we want to take against them are different.

Oops, sorry, that's 169 instead of 168 above, of course.

I really, really disagree with Moneymaker on this one. It's not hard at all, given the right sort of boards, to easily assign an aggressive opponent to a narrow range. When you've 1/2 to 3/4s of the range beat, you bet, knowing the raise would be ok.

really nice post,

however, i think all depends on what is the limit you play ? In your example, when vilain reraise with the board A,T,2, you have to consider he has a set (AA,TT,22). btw, In NL2, your move is EV+++. In NL50, the previous read on vilain is important but still EV+ i guess. And after, NL 200+ .. this move is certainly EV-.

Have to further correct my earlier post. I guess I shouldn't be posting so late at night :). There are originally 169 hand types. These can be split into the 13 pairs, which each have 6 instances, the 78 suited non-pair combinations with 4 instances each and the 78 unsuited non-pair combinations with 12 instances each. Each of these instances has a probability of 1/1326, but the hand types can also be juggled in a bot. Preflop, we can think of 13 pair hand types with a probability of 6/1326 each, 78 suited non-pair hand types at 4/1326 and 78 unsuited non-pairs at 12/1326.

Preflop, we can narrow down the likely distributions based on actions taken. If the first player to bid raises, we would skew their probability distribution for the hand types towards those we consider openable. A different skew would apply to a caller or a big blind who only has to check.

After additional cards are seen, we need to revise the probabilities for each hand type, and may need to split them up as well. For example, if the flop comes down with 3 hearts, then the spade, club and diamond suited hands that might have been opened are no longer flushable. So the hand type distributions change as well as their probabilities. The 78 suited hand types with 4 instances must be split into 78 hand type of the flushing suit (single instance) and the 78 hand types of the non-longer-flushable suits, with 3 instances. Similarly, the 78 unsuited hand types, 12 instances, must be split into those that contain a heart and those that don't. Finally, the pairs must be split into those that contain a heart and those that don't. So with this flop, the distributions we'll be looking at are numbered 78x1, 78x3, 78x6, 78x6, 13x3 and 13x3 respectively. These then will be further limited by eliminating those that are no longer possible because they contain a card that is visible on the board.

"I was about to say that for the HUP to apply, the act of observing an opponent's hole cards would have to effect a change in the state of the hole cards. That's sort of the point of the HUP, right?"

You're right, with HUP, the measurement of one quality makes some other quality completely uncertain (eg, precise measurement of a particle's position makes its momentum uncertain), due to the act of observing itself. It's not really a great fit with poker I suppose, which is sad.

The example of observing your opponent's cards is more analogous to the collapsing of a wave function in quantum mechanics, from a probabilistic distribution to a known state. At least that's a decent parallel. I'm sure there are others..

How about special relativity? Each player views the game according to their own frame of reference (their own hole cards), but the size of the pot (like the speed of light) appears the same to all players. Now surely, these premises should lead to an interesting and non-intuitive set of results, right? I mean, Einstein managed.

This reminds me of watching televised poker, in a situation where a player who holds two kings, sees a third king being deal - and they announce that this means it's unlikely that the other player has the "case king".

Statistically I can see that there is less chance of a king being drawn from the deck if there is only 1 left - but logically, I can't see that observing the king changed the actual probability of your opponent holding the "case king"

This one does my head it. If you put all the cards in a box with a cat I might be able to deal.

(PS - To the person who mention combinatorics or what not, just bear in mind it's permutations not combinations - there is a difference)

I believe that James has discussed this somewhere, although I haven't read it.

Sorry, I was "upside down, miss jane."

Combinations are unordered, Permutations are ordered.


"PS - To the person who mention combinatorics or what not, just bear in mind it's permutations not combinations - there is a difference"

Didn't click the link, eh?

Yeah, I had a bad case of foot-in-mouth-smartass that week.

Who would have thought playing poker and programming would result into so much math. [sic]. I spent at least 20 minutes trying to read about the Nash Equilibrium, and all I can tell you is that it's not as good as the movie.

absolutely ridiculous and unintelligent misleading article!

the chances of being dealt 72o are far more than being dealt a pocket pair

how stupid can you get?

Hi James. Great article.

I'm trying to come up with a tool that will produce a set of hand ranges based upon a percentage. Like the hand range tool that Holdem Manager has. I understand that I can use pokerstove to see how my starting hands will fare against random cards or perhaps Sklansky - Chubokov and so have them in some sort of ranking order.

What I'm stuck on is determining how to include cards that are on the margins of the range. For example at 21.5%, Holdem Manager is showing that A8o will be played some, but not all, of the time. And there are other cards that are showing as being played some but not all the time.

Is there an accepted mathematical formula for working out the likely distribution for these marginal hands? How does anyone think Holdem Manager calculates it?


It is really a nice post, it is always great reading such posts, this post is good in regards of both knowledge as well as information. Very fascinating read, thanks for sharing this post here.

I enjoyed following the whole entry, I always thought one of the main things to count when you write a blog is learning how to complement the ideas with [url=]Indian Pharmacy[/url] images, that's exploiting at the maximum the possibilities of a ciber-space! Good work on this entry!

Use the form below to leave a comment.

Coding the Wheel has appeared on the New York Time's Freakonomics blog, Jeff Atwood's Coding Horror, and the front page of Reddit, Slashdot, Digg.

On Twitter

Thanks for reading!

If you enjoyed this post, consider subscribing to Coding the Wheel by RSS or email. You can also follow us on Twitter and Facebook. And even if you didn't enjoy this post, better subscribe anyway. Keep an eye on us.

Question? Ask us.



Coding the Wheel =
Code, poker, technology, games, design, geekery.


You've read our technical articles, you've tolerated our rants and raves. Now you can hire us anytime, day or night, for any project large or small.

Learn more

We Like

Speculation, by Edmund Jorgensen.