Tutorial: Creating C-bet Success Statistic

Forum for users that want to write their own custom queries against the PT database either via the Structured Query Language (SQL) or using the PT3 custom stats/reports interface.

Moderator: Moderators

Tutorial: Creating C-bet Success Statistic

Postby kraada » Mon Aug 18, 2008 10:25 am

Since I just created it and got a few requests, I thought I'd write up how to create (and then attach) a simple statistic to measure c-bet success rate.

For the purposes here, a c-bet success is when:
(a) You c-bet the flop
and
(b) All of your opponents fold.

Please note this doesn't take into account what you had. However, if your c-bet success rate was 50.1% you are showing automatic profit whenever you raise and c-bet even if you c-bet pot every single time regardless of your holdings.

Click Configure --> Configure Stats to bring up the custom statistics interface. (This does not work in the trial version, by the way.)

Click on the Holdem Cash Player Statistics section. Quite a bit of the database resides in this area, and this is where we are putting our statistic as it seems most appropriate. From here on out I'm going to presume we want this stat for a cash game. You can go into Holdem Tournament Player Statistics and do a similar statistic for tournaments as well.

Click on the columns tab. Columns are used to generate statistics and interface directly with the database. You can end up displaying a column as a statistic or not depending on what you think will work best.

Create a new column. In keeping with the PT3 naming scheme we are going to call this column cnt_f_cbet_success. It will be a count of all times where you c-bet successfully on the flop.

In the Expression section we add:
Code: Select all
sum(if[holdem_hand_player_statistics.flg_f_cbet AND NOT(holdem_hand_player_statistics.flg_t_saw) AND NOT(holdem_hand_player_statistics.flg_f_face_raise), 1, 0])
.

So what are we doing here? Note that everything is in the summation, so we are taking a sum of all of the times these things happen. And what things are we taking the sum of? We want certain conditions to be met, so we use an 'if' statement. The if statement in the column areas works like this:
Code: Select all
if[ condition, then, else ]


So first is the condition, and if the condition is true, the 'then' bit executes. Otherwise (if it is false), the 'else' bit occurs.

So what is our test? First we make sure we did c-bet (flg_f_cbet) and we didn't see a turn using NOT and (flg_t_saw) and we never faced a raise (NOT(flg_f_face_raise)).

Why this test? It should be obvious why we want to make sure we c-bet. But then what is a success? All opponents folded. Unfortunately there is no flg_all_opponents_gave_up flag. But what happens when all opponents fold? We don't get to see the turn. Then you have to make sure there are no cases you are missing. If we only used the first two, we would miss the situation where we bet, the other player raised, and we folded, thus not seeing a turn, but our c-bet would most definitely not have succeeded :)

Are there any other cases where we c-bet, don't see a turn and don't get raised that the c-bet fails? I can't think of any.

How did we find out about these fields? Look in the database schema for some information, but for a complete list of options, simply click the blue 'insert' link and it will populate a list of all of the fields in the database, and you can pick and choose as you desire.

So that's all we need. Each time these three cases come back as true, the if statement will yield 1 (the 1 in the then section), otherwise it will yield 0 (the else section).

Then we sum all of these individual cases up and we know how many times our c-bet succeeded.

In the description section, I added "Number of times that all opponents fold to a c-bet." as that seemed a reasonable description, but you can obviously put whatever you would like here.

In the summary type section, we want this to be set to 'sum'. What does this field do? It saves what sort of statistic you have so that when you have a summary of stats from various columns, it tells PT3 what kind of summary is appropriate. Should we average the stats together? Add them together? Etc. In this case, what we have is a sum of a bunch of cases, so sum is the right choice.

That's all we need to do for the column. Now we can go on to create the statistic proper.

Switch to the statistics tab and click the New button and give the statistic a name (note: this isn't what displays in the headers, so I tend to give more full names), like "C-Bet Success Percentage". Please note no two stats can have the same name, so you do want the names to be descriptive enough that you won't ever want to name something else the same. Give it an appropriate description ("Percentage of the time that all opponents fold to a c-bet"). The value expression is what defines the output of the statistic. For this statistic it is fairly simple:
Code: Select all
cnt_f_cbet_success / cnt_f_cbet * 100


Number of times c-bets succeed divided by the total number of c-bets we made, times 100 yielding a percentage.

Switch to the Format tab now, and this "title" box is what shows up in PT3 reports. I went with "CBSuc" but you can call it whatever you would like; you don't want the name to be huge as it will make the column very large by default when it shows up in a report. Width of about 40 worked well for me, but you can play with this option, as well as the alignment of the text in a report.

You can do quite a bit in the format expression, but in this case the following is easiest:
Code: Select all
/%.2f
which tells PT3 to display this as a floating point expression with up to two decimal places. There is more information about this area in the Custom Statistics Guide.

You can assign categories and colors as you desire, but it's not necessary (though if you assign no categories you'll need to show all stats in order to find your statistic later). But that's all there is to the basic creation of a C-bet Success Statistic.

I hope you've enjoyed the tutorial, and I've attached the statistic in question to this thread so that you can import it for yourself to look at the different build stages as you desire, just unzip and import the statistic.
Attachments
cbetsuccess.zip
C-bet success statistic.
(619 Bytes) Downloaded 460 times
kraada
Moderator
 
Posts: 54431
Joined: Wed Mar 05, 2008 2:32 am
Location: NY

Re: Tutorial: Creating C-bet Success Statistic

Postby oracle3001 » Mon Aug 18, 2008 12:01 pm

Please note this doesn't take into account what you had. However, if your c-bet success rate was 50.1% you are showing automatic profit whenever you raise and c-bet even if you c-bet pot every single time regardless of your holdings.


Is this only true if you c-bet the same amount each time you c-bet? What about when you vary the size of your c-bet and also c-betting in 3-bet pots when due to the 3-bet inflating the pot size preflop, the c-bet is likely to be much larger than normal.

Looking at my "success rate" it hasn't been above 50% for any month this year. Close but never above, and I have been a significant winner every month. Food for thought though.
oracle3001
 
Posts: 851
Joined: Fri Jan 25, 2008 4:12 am

Re: Tutorial: Creating C-bet Success Statistic

Postby WhiteRider » Mon Aug 18, 2008 12:18 pm

This stat just takes into account how often your c-bets 'work', regardless of bet size.
Obviously the number of opponents you have, whether you are in or out of position, and the size of your bet relative to the pot will all have an effect on the success.
It is possible to extend this stat to create more cases so that you can narrow down your success rates in different situations.
WhiteRider
Moderator
 
Posts: 54017
Joined: Sat Jan 19, 2008 7:06 pm
Location: UK

Re: Tutorial: Creating C-bet Success Statistic

Postby kraada » Mon Aug 18, 2008 12:37 pm

oracle3001 wrote:
Please note this doesn't take into account what you had. However, if your c-bet success rate was 50.1% you are showing automatic profit whenever you raise and c-bet even if you c-bet pot every single time regardless of your holdings.


Is this only true if you c-bet the same amount each time you c-bet? What about when you vary the size of your c-bet and also c-betting in 3-bet pots when due to the 3-bet inflating the pot size preflop, the c-bet is likely to be much larger than normal.

Looking at my "success rate" it hasn't been above 50% for any month this year. Close but never above, and I have been a significant winner every month. Food for thought though.


If you c-bet less you need to win less before you show automatic profit. And this is only from the act of c-betting and is not taking into account the rest of your game at all.

Say the pot is 1 for ease of math. If you bet 1 to win the pot, you're betting 1 to win 1, so as long as you win 50% of the time, you make money.

If you bet .5 to win 1 you only need to win 1/3 to break even, so anything above that is free money.

If you always bet the same percentage of the pot (say, 1/2 pot) you can say conclusively if your c-betting habits are making you money by the act of c-betting alone. That isn't to say you couldn't have made more money doing something else (checking behind flop and v-betting turn/river for example), just that you can say "this move has been historically +ev overall". You can filter for 3-bet pots preflop and see how you do there; it might not be true that c-betting a 3-bet pot is automatically +ev, in which case you can change your game up for the better.

Also, this is regardless of your hand and regardless of what happens otherwise when your c-bets don't succeed. You could have a c-bet success rate of 0% but have won every hand you ever played (if your opponents called every flop and folded every turn, for example).

I hope that clarifies things a bit for you.
kraada
Moderator
 
Posts: 54431
Joined: Wed Mar 05, 2008 2:32 am
Location: NY

Re: Tutorial: Creating C-bet Success Statistic

Postby oracle3001 » Mon Aug 18, 2008 1:57 pm

Yes I understand what you are saying. I was really just picking up on the statement regarding 50.1%, as I think this is a little misleading. While at the same time just checking that there was some fancy maths in there with regards to c-bet sizing etc.
oracle3001
 
Posts: 851
Joined: Fri Jan 25, 2008 4:12 am

Re: Tutorial: Creating C-bet Success Statistic

Postby WhiteRider » Mon Aug 18, 2008 2:02 pm

You can easily add a check for the size of the c-bet as a % of the pot.
holdem_hand_player_detail.val_f_bet_made_pct
WhiteRider
Moderator
 
Posts: 54017
Joined: Sat Jan 19, 2008 7:06 pm
Location: UK

Re: Tutorial: Creating C-bet Success Statistic

Postby dendron » Mon Aug 18, 2008 3:15 pm

Thanks for the stat! I may have missed this part in your instructions but you need to change the summary type to 'sum' to get the bottom row to give you a correct number. I believe the default sets it as 'count' and I was getting 0.61 instead of around 50 like I should have. Also, you have to enter /%.2f into both the format expression and format summary expression fields.

If you could explain how to make different stats for different cbet sizes that would be great. I'm not sure but I'd probably want to break it down into 5 stats with varying ranges of bet sizes and I have no idea how to enter something like 33-49.99% pot. Also wouldn't mind being able to then break down each of those further into number of opponents on the flop.
dendron
 
Posts: 31
Joined: Fri Jan 25, 2008 10:33 pm

Re: Tutorial: Creating C-bet Success Statistic

Postby kraada » Mon Aug 18, 2008 3:31 pm

dendron,

As WhiteRider said, you can check against holdem_hand_player_detail.val_f_bet_made_pct which is a percentage of the pot that was c-bet.

So if you wanted a stat that was true only when a c-bet was made that was < 50% of the pot, it would be:
if[holdem_hand_player_detail.val_f_bet_made_pct < 50, 1, 0].

And the bit about summary type being sum is actually in there, honest :)

The expression field is the only one strictly necessary, but yes I should've mentioned format summary expression as well, thanks for adding that.
kraada
Moderator
 
Posts: 54431
Joined: Wed Mar 05, 2008 2:32 am
Location: NY

Re: Tutorial: Creating C-bet Success Statistic

Postby dendron » Mon Aug 18, 2008 4:08 pm

lol, I see it now. Guess I skimmed a bit.

There is another thing, again you probably put this in and I missed it, but we can get raised and still win the pot by reraising back and they fold. Not a straight up successful cbet but successful nonetheless. I guess it all depends on how you want to define cbet success but if you win on the flop that's a success in my book, even if you have to go through a series of 5 minreraises then a shove to get there. Can't the whole thing just be changed to times you cbet, didn't see the turn, and won the hand? People seem to checkraise bluff often enough to where I'd rather not have the times I repop them and they fold be excluded from the numbers. I don't even want to get into the times people min donk bet and I raise to the size I would have cbet in the first place. To me, that's a cbet but it's all semantics and how we want to define things I guess.

Thanks, I'll try to figure out how to create the bet size stats. I've mostly created a ton of different filters for things and have been putting the numbers in a spreadsheet to get the percentages from street to street (ie. 'flopped flush draw' then 'flopped flush draw and saw turn' then flopped flush draw and missed turn' etc.). Of course bet sizing isn't in the filters so I haven't been able to do anything there yet. Probably easier to just create a stat but I haven't really looked into how to do it. Clicking a box in the filters section is much easier to me than typing out what seems to be gibberish lol. Anyway, I'll look into it.
dendron
 
Posts: 31
Joined: Fri Jan 25, 2008 10:33 pm

Re: Tutorial: Creating C-bet Success Statistic

Postby kraada » Mon Aug 18, 2008 4:50 pm

Good luck with the number crunching.

Yes you could add the different permutations you talk about. Based on the stat above, no, if you c-bet, get raised and 3-bet and they fold, it would not count as a c-bet success. This seems the intuitively correct result to me because it is not your c-bet that is winning, it's the continued aggression. You can always filter for when you have c-bet and see how many hands you win all the way to showdown there, but for the purposes of this stat the interesting question was how well your c-bets did by themselves. Not how well we ended up doing in pots where we do c-bet.

That's not to say the other information is useless; I wouldn't say anything of the sort. It is merely different information with an alternate focus and useful for different reasons. I mostly wanted to see how many times my straight up c-bet got a fold and the hand ended there. It helps me plan my hand to know roughly how often these things succeed. I've also started looking at different flop textures to see how well the c-bets work on different kinds of flops and I don't think the "how often you won at showdown" version of the statistic would be the most useful for this particular sort of analysis.
kraada
Moderator
 
Posts: 54431
Joined: Wed Mar 05, 2008 2:32 am
Location: NY

Next

Return to Custom Stats, Reports, and SQL [Read Only]

Who is online

Users browsing this forum: No registered users and 1 guest

cron