In my bachelor thesis I am developing a computer player, trying to model the opponent's behaviour, while keeping track of the following features:


  • Voluntarily put money into the pot (VPIP)
  • Preflop Raise (PFR)
  • 3 Bet Frequency
  • Call 3 Bet
  • Fold 3 Bet
  • 4 Bet
  • Call 4 Bet
  • Fold 4 Bet

Flop, Turn and River:

  • Continuation Bet in position
  • Continuation Bet out of position
  • Continuation Bet ReRaise
  • Continuation Bet Raise
  • Continuation Bet Call
  • Continuation Bet Fold
  • Donk Bet in position
  • Donk Bet out of position
  • Donk Bet ReRaise
  • Donk Bet Call
  • Donk Bet Fold


  • Went to Showdown
  • Won Showdown

Now I would like to implement an expert system, which requires expert knowledge from a good player. Unluckily, I am not that good in Heads-up and I could not find any resources on the internet regarding these numbers. I know that if you fold too many times (e.g. folding too many times preflop) you become exploitable to the opponent. My computer bot will try to exploit his opponent as much as possible.

Note: In my game both players have a stack of 50 big blinds.


  • Which VPIP and PFR values indicate a tight-aggressive, tight-passive, loose-aggressive, loose-passive players? Please answer in a range of values (e.g. tight-passive: VPIP: 0.0-0.2 PFR: 0.0-0.2 and VPIP = PFR)

  • What about the other key figures? Which range of values is considered optimal?

I would really appreciate a great answer so I can implement my computer player based on your values. I'm also very happy with an external resource indicating me the "optimal" ranges of values.

EDIT: I'm looking for answers which try to give me rough expert values. I have been studying this topic for many hours and I know about nash equilibrium, counterfactual regret minimization etc. All I am asking for is rough estimates of which any sane, good heads-up player would try to be within its ranges. Please do not give me answers like "texas hold'em is not solved" or "this is not possible, because...". Please give me VALUES. I hope I made myself understood. :-)

  • Small suggestion, perhaps, seen as it's for research purposes, you could purchase a hand database that you could use to train your bot from that? You could definitely pull out some key values from a hand database much better. I can try create an answer later when I'm free if it hasn't been answered yet.
    – Grinch91
    Nov 15, 2017 at 13:15
  • @Grinch91 It is certainly a great idea. My time budget is limited, since I'm also having a look at self-learning algorithms such as CFR (counterfactual regret minimization). So I would rather just set the expert values for now and maybe refine them later on. Nov 15, 2017 at 13:25
  • I think you'll struggle to find an expert who will willingly give you the exact value ranges that are working as of right now, plus they change depending on what type of playing style is popular, i.e. TAG is beaten by LAG, etc. The Raiser's Edge book has a good diagram of this in it's opening chapter. While the book is old at this point that graph in general still holds up. Point I'm trying to make is it's a hard thing to just set values here, to do so needs understanding of the levels your bot will play and the play style it can expect to come up against more often than not.
    – Grinch91
    Nov 16, 2017 at 14:44
  • @Grinch91 I would be glad to share my stats with anyone else. Maybe I will just buy Holdem manager and play some heads up games. :-) Nov 16, 2017 at 20:39

4 Answers 4


Poker is not yet a solved game. An optimal strategy has not yet been found. Trying to implement your or someone else's knowledge into a computer program will only result in a sub optimal version of you/them. If you want to create a bot that can for example beat every human over a long enough sample, you want to take a different approach.

Now regarding the values. Just the values is not enough information for a computer. A lot of players use HUD's and thus these values to help them make decisions. The values alone are not enough to make the decisions. Let me explain why these values do not provide full information and why it is impossible for these values to have an optimum.

Say your opponent is getting 3 : 1 versus your river bet. So you fired a half pot sized bet. If he continues with less than 1/3 of his hands, then that would be exploitable. So in that case, your bot should be bluffing him more often. However, the bot will not always fire half pot. The bigger the bet on the river, the more often your opponent should fold. Only his fold percentage on the river is not enough information to possibly exploit him. Similarly there is no optimal folding percentage on the river for your bot.

Your bot needs access to in this case: both all river bet sizes it made and the fold percentages that are paired with them, with a huge sample. Now the most interesting part is the optimal bet size on the river for your bot. If this is known you have figured out this spot. This bet size unfortunately depends on so many factors like, previous action and the board texture. It is very complicated and pretty much impossible to answer, since poker has not yet been solved.

Same goes for all other stats. If your opponent raises 10BB pre-flop, you should defend less hands than if he would raise with 2BB. And the other way around, the bot can open way less hands if it raises 10BB pre-flop as opposed to 2BB. To approach an optimum PFR, or any other number for that matter, you need to consider much more factors.

In short. There is no optimum for these number without context and you should definetely not use them without it. I know this answer did not really help, since I only told you what not to do and not what to do. But I wanted my answer to be within the scope of this question.

Small note: there is no such thing as a donk bet in position.

  • Thanks for your answer. I'm already aware of what you're saying and I'm not trying to create the next super computer bot. I'm trying to evaluate different algorithms whereas one of them is based on opponent modelling. Since I played some time I know that some key figures (as on HUDs) are considered good or bad by pros. My goal is to find explotations in the opponent's game. If there are no explotations I will play in an approximate nash equilibrium (which is basically a near-optimal strategy). Nov 15, 2017 at 14:59
  • Btw: a donk bet is simply if you were not the aggressor in the previous phase (whereas a continuation bet is if you were the aggressor). so a donk bet can be either IP or OOP. Nov 15, 2017 at 15:05
  • You can't look at a certain stat and say that it is good or bad, especially heads-up without any context. Sure there is an optimum if everybody is playing perfect, but nobody is. Therefore, to play optimal against specific opponents you should adjust and strive away from the orignal optimum.
    – Raymond
    Nov 15, 2017 at 15:09
  • I think roughly you can (that's why I need a range of values). In game theory there is an optimal strategy (i.e. nash equilibrium strategy) where this strategy is not exploitable (at all). The bot Libratus, which beat the top human players in Texas Hold'em Heads-up No Limit used this approach as well. Nov 15, 2017 at 15:18
  • Extreme example: If your opponent always calls you down on the river your bluff percentage should be 0%, if he always folds it should be 100%. This percentage surely has an optimum if everybody plays perfect, but against specific opponents it is very variable.
    – Raymond
    Nov 15, 2017 at 15:33

What you need to understand (And are indirectly referring to) is game theory and Game-Theory Optimal play (GTO).

Here is a decent introductory overview Here is a must-have book on the topic

In Phil Hellmuth's 'Play Poker Like The Pros' (And countless other Poker books) it is explained well that in weaker fields and/or lower cash games playing perfectly optimal is generally going to be profitable. It is the idea of playing the mathematically correct and optimal way. And if two players both played heads-up for 1 million hands and both played exactly GTO they would walk away even.

However, this does not factor the "Human Element" or "Psychological Element" of Poker that separates your average Joe from the average Pro! You can read up on any of these terms also.

In reading up a little in an attempt to figure out if this question could be actually be answered I came accross an Exceptional article GTO vs Exploitative Play: Which is the Better Strategy? which gives you awesome context and a noteworthy quote to answer your question(s):

...the GTO style in No Limit Hold’em is still unknown. It’s impossible for any computer, let alone a human, to play perfect GTO...

Though this article does link to the following resource which surrounds an AI Poker playing bot https://www.cmu.edu/news/stories/archives/2017/january/AI-tough-poker-player.html that is improving its own strategies continuously!

  • I understand these fundamentals. I'm not asking for theorycrafting but for crisp values. Which range of VPIP and PFR are good after 10k hands? Nov 16, 2017 at 20:32
  • 1
    @FabianBigler You are going to box any opponent into a range? You are not going to play 10K hands before one of you bust. The size of raise / bet is much more important then donk / continuation. I do not think you are approaching this correctly.
    – paparazzo
    Nov 17, 2017 at 22:19

Passivity isn't defined by vpip and pfr. You need to track another stat as well, for instance bet/raise frequency (post flop, per street ideally), or aggro factor (number of bet+number of raise)/number of calls.

Only this can give you the possibility to distinguish a tight agressive from a tight passive, for instance.

The ranges also depend on number of players at the table, it's not the same thresholds at all for heads up, 6max, 4handed, full ring.. So not possible to give you even an approximative answer to your profiling stats question yet. You also need to confirm that it's NL hold'em, the stats would also be very different in limit hold em or in PLO.

As a sidenote, rule based approaches never managed to produce a poker AI able to win even at lower stakes in NLHE or PLO (except in shortstacking) but no problem if it's not a concern to you.

  • That's why I limited this answer to Texas Hold'em No Limit Heads-up to a stack size of 50 big blinds. Nov 16, 2017 at 20:30
  • Well I read a bit fast, although you do not mention NLHE anywhere, you do mention headsup and 50bb depth. Might have been better to mention all this early on in the post though :).
    – Emphyrio
    Nov 18, 2017 at 1:08
  • Damn, didnt know I couldn't start a new line inside a comment nor edit after 5 minutes, long comment erased. In hu nl I d say tight passive is less than 80%pfr on btn, less than 30% bet frequency post flop, less than 12% 3bet, tight agressive pfr btn<80%, 3bet%>15% and bet freq pf>35%, loose passive any player with pfr <75%of their vpip and global vpip>65% and bet freq pf<30%, loose agressive pfr btn >85%, 3bet%>17% and bet freq pf>35%. Hope this helps. This leaves room for uncategorized players though, so you can arrange them to suit you better if you want 4 clear cut categories.
    – Emphyrio
    Nov 18, 2017 at 1:22
  • You should consider GTO is somewhere around 90%pfr btn at least (maybe 100%, although so far top hu players tend to consider it's slightly less 100bb deep. Not sure if playing 50bb would have a huge impact on that but I doubt it. Bet frequency GTO post flop somewhere in the 35-40%. 3bet% somewhere in the 15-20% but might be higher 100b deep (and of these stats, this is the only one where being only 50bb deep probably matters). Big debates on wether ideal pfr size is 2bb or 2.5bb. Consensus seems to be on 2.5 atm.. 2 allows to open closer to 100% btn obv.
    – Emphyrio
    Nov 18, 2017 at 1:33

How did you do with your poker bot? Is it already on the tables? :)

To take it more seriously, I think that you can use tools like PIOsolver or one of other poker software to get the actual unexplainable numbers, not something that a random player suggests.

It would be much easier to configure everything you need compared to building an exploitative approach, so GTO is the option I would guess.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.