I've been working on creating custom stats for Holdem Manager as part of a rake project I'm working on. I thought you guys might be interested in these stats in particular:
This stat displays the number of Player Points you have earned (or would have earned with Ongame's Points structure)
Code:
<Stat GroupName="Default" ColumnName="Ongame PPs" ValueExpressions="
Sum((case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 10 and 19 then 0.1 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 20 and 29 then 0.2 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 30 and 39 then 0.3 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 40 and 49 then 0.4 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 50 and 59 then 0.5 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 60 and 69 then 0.6 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 70 and 79 then 0.7 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 80 and 89 then 0.8 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 90 and 99 then 0.9 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 100 and 109 then 1.0 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 110 and 119 then 1.1 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 120 and 129 then 1.2 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 130 and 139 then 1.3 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 140 and 149 then 1.4 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 150 and 159 then 1.5 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 160 and 169 then 1.6 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 170 and 179 then 1.7 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 180 and 189 then 1.8 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 190 and 199 then 1.9 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 200 and 209 then 2.0 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 210 and 219 then 2.1 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 220 and 229 then 2.2 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 230 and 239 then 2.3 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 240 and 249 then 2.4 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 250 and 259 then 2.5 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 260 and 269 then 2.6 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 270 and 279 then 2.7 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 280 and 289 then 2.8 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 290 and 299 then 2.9 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount >=300 then 3 else 0 end))/1.0
as OngamePPs" Evaluate="OngamePPs" ColumnHeader="Ongame\nPlayer Points" ColumnFormat="0.00" ColumnWidth="*" Tooltip="Ongame Player Points earned" />
This stat is basically PPs earned divided by 8, which shows how much bonus you would have earned if you had an 8x bonus running the whole time.
Code:
<Stat GroupName="Default" ColumnName="Ongame 8x" ValueExpressions="
Sum((case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 10 and 19 then 0.1 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 20 and 29 then 0.2 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 30 and 39 then 0.3 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 40 and 49 then 0.4 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 50 and 59 then 0.5 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 60 and 69 then 0.6 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 70 and 79 then 0.7 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 80 and 89 then 0.8 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 90 and 99 then 0.9 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 100 and 109 then 1.0 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 110 and 119 then 1.1 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 120 and 129 then 1.2 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 130 and 139 then 1.3 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 140 and 149 then 1.4 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 150 and 159 then 1.5 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 160 and 169 then 1.6 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 170 and 179 then 1.7 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 180 and 189 then 1.8 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 190 and 199 then 1.9 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 200 and 209 then 2.0 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 210 and 219 then 2.1 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 220 and 229 then 2.2 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 230 and 239 then 2.3 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 240 and 249 then 2.4 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 250 and 259 then 2.5 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 260 and 269 then 2.6 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 270 and 279 then 2.7 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 280 and 289 then 2.8 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 290 and 299 then 2.9 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount >=300 then 3 else 0 end))/8.0 as Ongame8x" Evaluate="Ongame8x" ColumnHeader="Ongame\n8x Bonus" ColumnFormat="$0.00" ColumnWidth="*" Tooltip="Ongame 8x Bonus earned" />
This last one divides bonus earned by your dealt rake and expresses it as a percentage. You could directly compare this stat to Full Tilt, Crypto or Cake RB.
Code:
<Stat GroupName="Default" ColumnName="Ongame 8x DRB%" ValueExpressions="
Sum((case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 10 and 19 then 0.1 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 20 and 29 then 0.2 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 30 and 39 then 0.3 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 40 and 49 then 0.4 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 50 and 59 then 0.5 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 60 and 69 then 0.6 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 70 and 79 then 0.7 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 80 and 89 then 0.8 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 90 and 99 then 0.9 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 100 and 109 then 1.0 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 110 and 119 then 1.1 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 120 and 129 then 1.2 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 130 and 139 then 1.3 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 140 and 149 then 1.4 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 150 and 159 then 1.5 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 160 and 169 then 1.6 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 170 and 179 then 1.7 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 180 and 189 then 1.8 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 190 and 199 then 1.9 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 200 and 209 then 2.0 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 210 and 219 then 2.1 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 220 and 229 then 2.2 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 230 and 239 then 2.3 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 240 and 249 then 2.4 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 250 and 259 then 2.5 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 260 and 269 then 2.6 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 270 and 279 then 2.7 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 280 and 289 then 2.8 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount between 290 and 299 then 2.9 else 0 end)+
(case when PHMISC.BetAmountPreflop+PHMISC.CallAmountPreflop+PHMISC.PostAmountPreflop > 0 and PKH.RakeAmount >=300 then 3 else 0 end))*100.0/(Sum(PH.RakeAmount)*8.0) as Ongame8xPDB" Evaluate="Ongame8xPDB" ColumnHeader="Ongame 8x\nin DRB%" ColumnFormat="0.0%" ColumnWidth="*" Tooltip="Ongame 8x Bonus as % of Dealt Rakeback" />
You can add these stats to Holdem Manager by pasting them into your CustomStats.txt file, which is located in C:\Program Files\RVG Software\Holdem Manager\Reports. Restart HM, add the stats to your report and you're good to go!
Also, let me know if I made any mistakes.
I will also accept requests for custom stats related to bonuses, rake or rakeback here.
Limitations:
I can't express bonuses as contributed or weighted contributed rakeback equivalent.
I can't make stats for bonuses that base points accumulated on weighted contributed rake (such as boss, b2b, everleaf, etc.).
I can't distinguish between NL, PL and FL games. For example, there need to be 2 PartyPoints stats, one that is accurate when the sample only contains NL/PL hands, and one that is accurate when the sample only contains FL hands.
I might be able to create a weighted contributed rake stat with a bit of help from Roy. This would mean it would be possible to compare a 27% dealt rakeback deal to a 40% weighted contributed rakeback deal within HM for example.