Page 1 of 1

Validation of 3Bet Non-All-In vs Minraise Statistic in 3-Max

PostPosted: Sun Jan 05, 2025 5:31 pm
by TIGANCIC
Hi,

I’ve created a custom statistic to track the frequency of 3Bet Non-All-In vs a Minraise when I’m on the SB against the BB in a 3-Max format. Here’s the code I used for the columns:
cnt_3bet_non_allin_vs_minraise
Code: Select all
sum(if[
    tourney_hand_player_statistics.flg_p_3bet
    AND tourney_hand_player_statistics.amt_p_raise_made < tourney_hand_player_statistics.amt_p_effective_stack
    AND tourney_hand_player_statistics.amt_p_raise_facing = (tourney_blinds.amt_bb * 2)
    AND tourney_hand_player_statistics.position = 8
    AND tourney_hand_summary.str_aggressors_p LIKE '9%'
    AND tourney_hand_summary.cnt_players = 3, 1, 0])

cnt_3bet_non_allin_vs_minraise_opp
Code: Select all
sum(if[
    tourney_hand_player_statistics.flg_p_3bet_opp
    AND tourney_hand_player_statistics.amt_p_raise_facing = (tourney_blinds.amt_bb * 2)
    AND tourney_hand_player_statistics.position = 8
    AND tourney_hand_summary.str_aggressors_p LIKE '9%'
    AND tourney_hand_summary.cnt_players = 3, 1, 0])

And the statistic itself is calculated as:
Code: Select all
(cnt_3bet_non_allin_vs_minraise / cnt_3bet_non_allin_vs_minraise_opp) * 100

Could you please confirm if the logic and implementation are correct? Are there any improvements or potential issues I should address?

Thanks in advance for your feedback!

Re: Validation of 3Bet Non-All-In vs Minraise Statistic in 3

PostPosted: Tue Jan 07, 2025 8:05 am
by Flag_Hippo
I recommend using tourney_hand_player_statistics.amt_p_2bet_facing and you need to account for fact that the BB has already invested 1BB since the amount faced is the amount the player needs to call:

Code: Select all
((tourney_hand_player_statistics.amt_p_2bet_facing + tourney_hand_player_statistics.amt_blind) / tourney_blinds.amt_bb) = 2

Re: Validation of 3Bet Non-All-In vs Minraise Statistic in 3

PostPosted: Wed Jan 08, 2025 2:10 pm
by TIGANCIC
Hippo, thank you for your response. What if I need to calculate 3-bets not only against a min-raise but against all raises? After all, raises can be 2 BB, 2.5 BB, or 3 BB. I came up with something, but the stat doesn’t work, and I’m not sure what’s wrong.
cnt_3bet_non_allin_vs_raise
Code: Select all
sum(if[
    tourney_hand_player_statistics.position = 8
    AND tourney_hand_player_statistics.flg_p_3bet
    AND tourney_hand_summary.str_aggressors_p LIKE '9%'
    AND tourney_hand_player_statistics.amt_p_raise_made < tourney_hand_player_statistics.amt_p_effective_stack
    AND ((tourney_hand_player_statistics.amt_p_2bet_facing + tourney_hand_player_statistics.amt_blind) / tourney_blinds.amt_bb) BETWEEN 2 AND 4
    AND tourney_hand_summary.cnt_players = 3, 1, 0])

cnt_3bet_non_allin_vs_raise_opp
Code: Select all
sum(if[
    tourney_hand_player_statistics.position = 8
    AND tourney_hand_player_statistics.flg_p_3bet_opp
    AND tourney_hand_summary.str_aggressors_p LIKE '9%'
    AND ((tourney_hand_player_statistics.amt_p_2bet_facing + tourney_hand_player_statistics.amt_blind) / tourney_blinds.amt_bb) BETWEEN 2 AND 4
    AND tourney_hand_summary.cnt_players = 3, 1, 0])

3bet Non-All-In vs Raise
Code: Select all
(cnt_3bet_non_allin_vs_raise / cnt_3bet_non_allin_vs_raise_opp) * 100

Re: Validation of 3Bet Non-All-In vs Minraise Statistic in 3

PostPosted: Fri Jan 10, 2025 8:23 am
by Flag_Hippo
TIGANCIC wrote:What if I need to calculate 3-bets not only against a min-raise but against all raises? After all, raises can be 2 BB, 2.5 BB, or 3 BB.

If you are not concerned with a specific size of 2bet faced then that would be:

Code: Select all
tourney_hand_player_statistics.amt_p_2bet_facing > 0

although you wouldn't need to actually use it in the current statistic since the BB must have faced a SB 2bet if they are 3betting or have a 3bet opportunity and these are already specified in your columns.

Re: Validation of 3Bet Non-All-In vs Minraise Statistic in 3

PostPosted: Fri Jan 10, 2025 11:59 am
by TIGANCIC
Thank you. Fixed it. But I must be doing something wrong.
Code: Select all
sum(if[
    tourney_hand_player_statistics.position = 8
    AND tourney_hand_player_statistics.flg_p_3bet
    AND tourney_hand_summary.str_aggressors_p LIKE '9%'
    AND tourney_hand_player_statistics.amt_p_raise_made < tourney_hand_player_statistics.amt_p_effective_stack
    AND tourney_hand_summary.cnt_players = 3, 1, 0])


Code: Select all
sum(if[
    tourney_hand_player_statistics.position = 8
    AND tourney_hand_summary.cnt_players = 3
    AND tourney_hand_summary.str_aggressors_p LIKE '9%'
    AND tourney_hand_player_statistics.amt_p_raise_facing > 0
, 1, 0])


Re: Validation of 3Bet Non-All-In vs Minraise Statistic in 3

PostPosted: Sat Jan 11, 2025 1:27 pm
by Flag_Hippo
You have added tourney_hand_player_statistics.amt_p_raise_facing > 0 when I suggested using tourney_hand_player_statistics.amt_p_2bet_facing > 0 although as per my last reply you don't even need to use it in these columns.

You were using tourney_hand_player_statistics.flg_p_3bet_opp before and have now removed it. You need that otherwise hands where the SB moves all-in will get counted in that column.

tourney_hand_summary.str_aggressors_p LIKE '9%' will not work because the aggressors string always starts with an '8' - see this post.

Also if you don't want the BTN involved (they can limp and SB raise) you would need to account for that using the actors string as you have done in your other stats.

Re: Validation of 3Bet Non-All-In vs Minraise Statistic in 3

PostPosted: Sat Jan 11, 2025 7:52 pm
by TIGANCIC
Thank you for the tip, I fixed it. I hope this is the correct solution.

cnt_3bet_non_allin_vs_raise
Code: Select all
sum(if[
    tourney_hand_player_statistics.position = 8
    AND tourney_hand_player_statistics.flg_p_3bet
    AND tourney_hand_summary.str_actors_p LIKE '9%'
    AND tourney_hand_summary.str_aggressors_p LIKE '8%'
    AND tourney_hand_player_statistics.amt_p_raise_made < tourney_hand_player_statistics.amt_p_effective_stack
    AND tourney_hand_summary.cnt_players = 3, 1, 0])


cnt_3bet_non_allin_vs_raise_opp
Code: Select all
sum(if[
    tourney_hand_player_statistics.position = 8
    AND tourney_hand_player_statistics.flg_p_3bet_opp
    AND tourney_hand_summary.str_actors_p LIKE '9%'
    AND tourney_hand_summary.cnt_players = 3, 1, 0])

Re: Validation of 3Bet Non-All-In vs Minraise Statistic in 3

PostPosted: Mon Jan 13, 2025 8:12 am
by Flag_Hippo
That's fine although you don't need to use tourney_hand_summary.str_aggressors_p LIKE '8%' since that would always be true in any hand. Even if you were to use tourney_hand_summary.str_aggressors_p LIKE '89%' that wouldn't be necessary either because it's already inferred by other things in the expressions.

Re: Validation of 3Bet Non-All-In vs Minraise Statistic in 3

PostPosted: Tue Jan 14, 2025 12:15 pm
by TIGANCIC
Thank you. Accordingly, if we want to calculate a 3-bet shove, we only change the "<" sign to ">".
Code: Select all
sum(if[
    tourney_hand_player_statistics.position = 8
    AND tourney_hand_player_statistics.flg_p_3bet
    AND tourney_hand_summary.str_actors_p LIKE '9%'
    AND tourney_hand_player_statistics.amt_p_raise_made > tourney_hand_player_statistics.amt_p_effective_stack
    AND tourney_hand_summary.cnt_players = 3, 1, 0])

Re: Validation of 3Bet Non-All-In vs Minraise Statistic in 3

PostPosted: Tue Jan 14, 2025 1:51 pm
by Flag_Hippo
You should change it to ">=" because if SB has the larger stack the BB can only 3bet all-in equal to the effective stack size.