Home Articles Books Coaching Free Stuff About

Hold’em Pot Equity Calculator With Hand Ranges Now Supports Weights

Don't miss one article! Subscribe to the Full Feed RSS or get NPA in your inbox.

Poker Tools on Noted Poker AuthorityOn Monday I unveiled the new hold’em pot equity calculator that supports hand ranges. Today I added a feature that lets you weight your hand ranges, making the tool a whole lot more flexible.

To weight a range, simply add a colon plus an integer between 1 and 100 after your range unit. From the documentation:

Finally, you can weight any unit within a range by appending a colon and then an integer from 1 to 100. The number represents a percentage of the total times dealt a hand in the unit. For example, the range TT+,AK,JTs:10,T9s:10,98s:10 might represent someone’s 3-betting range preflop. They’d reraise 100 percent of the time with any pair tens or better or AK (TT+ is equivalent to TT+:100), and they’d also raise 10 percent of the time they were dealt JTs, T9s, or 98s. These weights allow you to better simulate actual hand ranges.

The colon+number applies only to the unit it sits next to, not any other units separated by commas. And if a hand is represented by multiple units, only the highest weight is used. For instance, for AKs:80,**s:30,**:5, AhKh has a weight of 80, Jd4d has a weight of 30, and 3c2h has a weight of 5.

To see how this new functionality works, try out these examples:

Note also that weights matter only if two or more different weights are used in the same range. A range of AA:1 is identical to a range of AA:42 or simply AA. However, AA:1,JTs:80 is very different from AA:42,JTs:80, which is very different from AA,JTs:80.

A few bugs probably slipped through, so if you find one, please let me know in the comments.

Tags: , , , ,

11 Responses to “Hold’em Pot Equity Calculator With Hand Ranges Now Supports Weights”

@ Thu Oct 18, 2007 03:08:29 PM

Oh doctor. That rocks.

@ Thu Oct 18, 2007 07:22:41 PM

Looks like you’ve been feverishly coding lately Ed. How does it feel to be an engineer again? :)

@ Fri Oct 19, 2007 08:27:32 AM

Hi Ed,

great to see that you start coding again for the rest of us :)
It would be great if those tools where available also as Web Services…..how about it?


@ Fri Oct 19, 2007 09:03:14 AM

This is awesome. I wrote a command-line tool that does this myself, but I *love* having it web-accessible. Thanks!

One comment: could you please make your parser a little more flexible? You can make it ridiculously flexible and it won’t slow things down at all (in comparison to the time it takes to run the simulation). It’s a pain when I type something in and then have to figure out where I typed 45o instead of 54o.

Also, ranges for suited connectors would be nice. Right now, 65s+ gives me 4 combos, so I assume it’s broken. It would be nice to be able to say 65s+ and 6h5h+ and have them mean the right thing. It would also be nice to be able to specify suits like AhKh-Ah5h rather than just AKs-A5s.

Anyway, thanks again. This is great.

Ed Miller
@ Fri Oct 19, 2007 10:21:37 AM


Making the parser more flexible is definitely on my list of stuff to do… the suited connector thing was something I was already thinking of adding, and I like your other suggestions. And you’re right, the parser is very fast compared to the simulation, so adding complexity to it mostly just takes coding time, not processor time. :)

To be honest, this was the first parser of this sort that I’ve attempted, and it kinda sucks. :P But it should be relatively easy to fix (I think).

Ideally, I want to make a Javscript widget that gives you sort of a GUI for constructing ranges because I think the range syntax will be confusing for some people. In particular, a lot of users may accidentally include (or exclude) hands because they don’t fully understand the syntax. So that’s on my list too. In fact, that’s why I made the syntax so rigid in the first place… it’s more cumbersome in some circumstances, but it also makes it harder to make, “Oh, THAT hand is in the range too?” mistakes.

Ed Miller
@ Fri Oct 19, 2007 10:27:23 AM


Web services… ah. That’s a can of worms, and I haven’t decided what to do about it yet. I think I need to move to a dedicated host first before I even consider it… and that will increase my monthly bills a lot, so I might want to figure out some modest subscription fee or something to make up the difference. Not sure. I’ve been thinking about it for the future, though.

@ Sat Oct 20, 2007 03:09:07 PM

Wow!, that’s great!
I tried to login to express my Wows, but unfortunately it sais the login page doesn’t exist. But it’s me :-)

@ Sat Oct 20, 2007 03:34:58 PM

I managed to log in via the forum login page.
I think I have to mention that the page is going on a little bit slow today.
But still you are doing great work Ed!

Ed Miller
@ Sat Oct 20, 2007 03:45:23 PM

Ya, the site does seem to be running slowly today. I think it’s the host. I’ve seen it like this before… I’ll look into improving the situation.

@ Sat Oct 20, 2007 05:50:12 PM


I think you have the right idea about making the parser strict enough that, once it accepts your input, it’s probably doing what you meant. I’d still like to be able to say 45s in addition to 54s, though.

I don’t know what you’re thinking about with your JavaScript GUI, but I once sketched out a GUI like this (it doesn’t make constructing the ranges easier, but it does make weighting and displaying them easier):

For each hand range, you get a line with two boxes, one for the hand range and one for the percent of the time the person takes that action with that range. It started off with 4 lines and had an “add another range” button. If you didn’t fill in the percent, it was treated as 100%.

When it calculated the results, it made an image of the range using Andrew Prock’s canonical preflop matrix format, shaded by percent. That’s not precise enough to convey AhX* or anything, but it was good enough for me, and more precise things (like dividing each matrix element into four quadrants, one for each suit) sounded a little complex-looking (I didn’t try them, though).

It didn’t barf if ranges overlapped, but it would print out a little message at the end saying “AhQh is in these ranges: *h*h(100%) and AK-AT(50%). I used the higher percentage (100%).”

I didn’t check, but I assume your tool does something similar when a hand is in two ranges with two different weights.

Ed Miller
@ Mon Oct 22, 2007 12:13:11 PM


Yes, if a hand is included in two different ways with two different weights, the higher weight is used. I think that’s the most natural solution which allows people to specific specific hands with high weights, but then also include broad ranges of hands with small weights.

I didn’t have it say anything if it did that because potentially if you included something like **:1 at the end, you could have hundreds of warnings.

Leave a Reply

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>