**ProPokerTools Area Under Graph to Left of Percentage**

I don't know if this will help anyone here. But, I was fooling around with it, and it was interesting to me. This is based on stuff I ran across in the "Pot Limit Omaha From Scratch" series. Specifically part 3:

http://pl.donkr.com/Articles/plo-fro...h---part-3-228
It can be useful, in Omaha, to calculate how often you will have enough equity to stack off on the flop, and your average equity in those spots where you do. This can help you determine if calling is profitable. Say you hold KK97:ds and are facing a 4-bet after you 3-bet (let's assume you didn't know to not 3-bet this hand). The player you are against almost certainly has AA. How often will you be able to continue against AA on the flop?

If you raised to 12xbb on the Button after a CO open (a pot sized raise after a pot-sized open), it folds back to the CO who 4-bets to 37.5xbb. You have to call 25.5xbb to see the flop. On the flop, the pot will be 76.5xbb and your stack will be 62.5xbb. Getting 2.224:1 you will have to stack off with 31% equity or more.

The graph of our equity on the flop looks like this.

You can visually see we have 31% or more about 50% of the time. We can use that to find our average equity. The article I posted gives you some strategies for using this to calculate our EV in this spot. I am not going to recreate it. You can read that. In short, the EV is:

EV = ( 1 - %_of_flops)(cost) + (%_of_flops)((average_equity *201.5) - 100)

EV = (1 - 50.52%)(-37.5) + (50.52%)((57.76% * 201.5) - 100)

EV = -18.555 + 8.278

EV = -10.277xbb

The trick is getting those numbers (50.52% and 57.76%). We can estimate them by looking and breaking the graph into little segments. Then adding up the segments and doing a little math. Or, you can open up a javascript console in your browser and use the following to do it for you.

Code:

/*
* save the raw data as
* var graph = ["0","1", ..., "3"]
*
* It should be noted that the raw data is usually 100 buckets long representing 0-1%, 1-2%, ..., 99-100%
* so the equity in each bucket is roughtly 0.5%, 1.5%, ..., 99.5%
* This assumption is represented in the below.
*/
function sum_Graph() {
var sum = 0;
for(var n = 0; n < graph.length; n++) {
sum += graph[n] * 1;
}
return sum;
}
function UnderGraph( min_percentage ) {
var total_graph = sum_Graph();
var amount_under = 0;
var weight_under = 0.0;
var offset = (100 / graph.length) / 2;
for( var n = min_percentage; n < graph.length; n++) {
weight_under += (n + offset) * graph[n] / total_graph;
amount_under += graph[n] * 1;
}
console.log( "Total points: " + total_graph );
console.log( "Points over %: " + amount_under );
console.log( "Percentage of flops: " + 100 * amount_under / total_graph);
console.log( "Weighted % under: " + weight_under );
console.log( "Weighted equity: " + weight_under / (amount_under / total_graph) );
}

Then, just copy the raw data from below your graph on propokertools into a new variable called graph. Call UnderGraph( ) with your min-percentage, and it works.

Example:

Code:

var graph = ["144","28","102","120","117","85","96","91","128","136","91","126","142","149","244","230","200","195","267","285","184","156","149","139","157","148","158","186","238","266","191","179","196","195","171","136","127","102","76","104","103","108","101","134","159","140","119","95","77","81","59","66","65","94","91","97","81","66","48","75","54","37","58","57","59","47","34","35","21","21","21","19","27","21","32","40","62","36","29","12","20","19","28","38","51","72","99","75","140","98","164","69","28","31","24","61","79","47","2","40"]
UnderGraph(31)

And it will spit out:

Total points: 10000

Points over %: 5052

Percentage of flops: 50.52

Weighted % under: 29.179300000000012

Weighted equity: 57.75791765637374

And, there are your numbers. I get slightly different numbers from the PLO From Scratch article, but essentially identical within a reasonable margin of error. And, it speeds up the hardest part of this process. PPT already provides the data needed to do this calculation. This javascript just makes use of it.

Note: I am sure there is a way to make this a little extension onto your browser and have it automatically read the raw data and calculate this given a number. But, I haven't invested the time to learn how to write extensions. This method is crude, but workable for me.