The Felt Is Always Greener on the Other Side

Tuesday, August 18, 2009

I'm a big fan of color-coding in software and in life. So I was pleasantly surprised when one of the major online poker sites added support for color-coded player notes several years back.

Opponent color-coding is a nifty feature, deeper than it appears. Once you assign a player a color, that color follows the player at the table... well as in the main lobby when you preview a table... you an at-a-glance summary of the player composition of a given game. Of course, you actually have to go through and assign each opponent a color, but hopefully this is something you're doing as part of a healthy note-taking regimen anyway, right?

Because make no mistake: proper use of color-coding can improve your online poker results dramatically.

That sounds like a platitude, but the bottom line here is that this humble little feature could turn countless losing players into winning players, if only they cared enough to use it, because it addresses what's arguably the single biggest deficiency of the losing poker player at any limit: poor table/game selection.

If the number one rule in real estate is

location, location, location,

then the number one rule in poker has got to be:

table selection, table selection, table selection.

Unfortunately, online poker table selection is tough. It presents an analysis problem (how do I figure out if a given player is good or bad?) as well as a usability problem (how do I do this quickly enough that I can actually make use of the information?) as well as a motivational problem (how do I make myself do this even though it's boring and tedious?). It's not sexy or particularly exciting. It requires patience and the ability to delay gratification. And you can't tell your friends about how "last night I made this totally awesome table selection play".

Nevertheless, table selection is king and all winning players must kneel before him or face the consequences.

Now in theory, it would be great if we could run a full "background check" on each player at the table before taking our seat.

  • Run his handle through Google.
  • Fetch his results from Sharkscope/OPR/etc.
  • Review his PokerTracker data.

In practice, there's no way we can do this in the 30 or 60 seconds we usually have to claim an open seat. Not if we're human, we can't. And even if we could, we probably wouldn't, because after all, who the heck wants to type forty things into fifteen websites just to sit down and play some freaking cards?

This is the problem that color-coding solves.

It provides you with an immediate visual indication of the player makeup at each table, allowing you to identify advantageous tables at a glance.

Done correctly, this can change the way you approach your online poker sessions. At the very least, you'll be selecting your games on an educated basis, rather than from the basis of what a friend of mine likes to call the "Blind Maggot" Table Selection Algorithm:

1. Open poker client 2. Start looking for games in your limit. 3. Choose tables with the highest pot size and % players seeing flop based on a few half-assed, poorly thought-out assumptions. 4. If you're a multi-tabler, omit step 3.

If that sounds like you (as it has so often been me) then read on.

Automated Color Coding

These days, when it comes to color-coding I suggest you flux the geek capacitor with a two-stage automated color-coding process:

  1. Using a tool, auto-generate colors for every player in your PokerTracker or Hold'em Manager database, segmenting them into different color ranges based on key statistics. Store these colors such that the poker client knows about them.
  2. As you learn more about your opponents, refine the color selections during actual play.

The point is that initially, player color codes should be generated from Poker Tracker (or Hold'em Manager) data. For example, you could use the Auto Rate feature of PokerTracker to establish an initial rating for each player, and use this as the basis for your color-codes. 

Better yet, incorporate Sharkscope, OPR, PTR, and PokerDB data in your color estimation. (The problem with PokerTracker player-ratings is that they're dependent on playing a certain number of hands with each rated player. This will leave a lot of holes in your color coding unless you supplement the PokerTracker results.)

Whatever you decide, you're not attempting to set any records for statistical largesse here; all you want to do is establish a rough idea about whether a player is...

  • Good
  • Average
  • Bad
  • Unknown

...and to preload each player's color such that you don't have to do it manually. Color-coding only comes into its own when you have coverage across large numbers of opponents. You want to get to the point where, when you sit down at a table in your preferred limit and game, a majority of the players at the table are already color-coded.

And for that, you need automation.

Luckily, player notes and colors are stored locally as XML (on Full Tilt, anyway):

<?xml version="1.0" encoding="UTF-8" ?> 
  <PLAYERDATA version="1.0" xsi:schemaLocation="" xmlns="" xmlns:xsi="">
    <NOTE PlayerId="JohnLennon" ColourIx="7" Text="LAP, T7o UTG" /> 
    <NOTE PlayerId="PaulMcCartney" ColourIx="7" Text="yada yada" /> 
    <NOTE PlayerId="GeorgeHarrison" ColourIx="2" Text="got to be good lookin cause he's so hard to see" /> 
    <NOTE PlayerId="RingoStarr" ColourIx="3" Text="???" />

The player color value ("ColourIx") is stored as an index into the range of colors defined in the color dropdown...

...meaning you can write a simple tool to go through the player notes file and assign each player a starting color based on whatever data you have. You can then adjust this color manually as you encounter the player in future games.

In the next post, we'll build a simple version of such a tool.

(By the way: Note the smooth interpolation in the color dropdown, from one end of the color spectrum to the other, with the usual result: purples are over-represented. There are 4 shades of purple that are only distinguishable side by side; viewed in isolation, it would be tough to distinguish the top color (purple) from the bottom (slightly darker purple). These extra purples are mostly wasted space. A color wheel which maximizes the perceptual distance between colors would probably produce a better fit, but okay, sort of ADD even to mention that here, especially since the color scheme I use only incorporates five colors. On the other hand, it's interesting how even in this obscure little corner of poker we find connections to classic problems of usability and computer science.)

Choosing a Color Scheme 

On Full Tilt at least, color codes are agnostic, meaning they have no meaning other than what you give them. Some other sites attach a hard-coded meaning to each color, which in my opinion is unnecessary, but still better than what most other sites do, which is not have any color-coding support at all.

Anyway: as you might expect, every player has his own idea for how color-coding should work. Some players suggest color-coding opponents according to Phil Helmuth's animal archetypes. Others like to use color-codes as a way of identifying multitablers. The goal is simply to find a color scheme which makes sense to you. Provided you apply that scheme consistently using the techniques outlined above, your table selection should start to improve almost immediately.

That said, I myself am a fan of the stoplight system:

I like it because it's simple (using only 3 basic colors) and it's one of the strongest color metaphors out there. We all know that green means Go. To most people it will also signify profit, money, success, nature, etc. Red, on the other hand, means Stop, and has those connotations of danger, loss, blood, being in the red, etc.

So having established the twin red/green poles of a color spectrum, I like to color-code players as follows:

  • Red: The very best and most dangerous players. Avoid at all costs.
  • Orange: Tough players. Avoid if possible.
  • Yellow: Average/Unknown players. Treat with caution.
  • Chartreuse (the color 50% between yellow and green): Soft players. These are the players you want at your table.
  • Green: The very worst players. These are the players you follow from table to table.

The goal of this particular color scheme is to create a simple visual impression of "safety" or "danger" for a particular table. I'm specifically not looking for the most comprehensive color-coding system (why create arbitrary divisions?). I don't particularly want to have to deal with separating players out across 10 or 12 or 14 color-categories.

All I want is a quick visual impression, a feel, a visual gestalt. If I see a bunch of reds and oranges, that means danger; tough players; avoid. If I see a bunch of greens and yellows, that means safety; profitability; an easier game; take a seat.

To return to the animated GIF we started with:

You see the difference?

The value of the color-coding technique described in this article is that it allows you to offload the complexity of table selection / opponent evaluation onto tools and databases, and to perform the bulk of the "table selection analysis" not when you're being prompted to take a seat, but hours or days beforehand. Your only job is to do what the colors tell you.

Accomplish this, and you can rest easy knowing you've done due diligence with regard to table selection. Because in the world of online poker there's always a better, more profitable game to be found. Whether at a different table, a different site, a different limit, or a different time of day, the grass (or felt) really is greener on the other side...

The only problem is that, when it comes to table selection at least, the average player can be completely color-blind.

Tags: [none]

20 comment(s)

Cool idea.

I'm not sure, but I think you can do some of this in PokerTracker. As you started to mention. You can auto rate players. Those ratings can be put on your HUD. I guess the difference would be that the PokerTracker color codes/icons don't show up in the lobby...

The Blind Maggot style of table selection?

I prefer the Crouching-Tiger-Monkey style. ;-)

You want some?

Hold'em Manager has a Table Scanner that does all this for you and actually plonks you down at the table with the worst rated players on. I have been playing for several years and I still don't do much when it comes to table selection. In fact, all I do is go on the tables with the highest players per flop. For the most part it works but I really think I could increase profits if I take your advice. My PT3 licence just expired so maybe I'll switch over to HEM.

I've used a similar oolor-coding system for a few months now. Except I based mine on the old Everquest MOB colors eg, green, blue, yellow, orange, red, etc. Same basic idea

I couldn't tell from your article, but is there a tool which can generate the color codes? That would be HUGE.

Great title. The site I play on doesn't offer color-coding, but I've been considering a switch and if so I may have to give FT a try.

Also, what are people's thoughts on PokerTracker vs. HOldmeManager these days? Is one better than the other?

Dean I've used both PT3 and HM and for power-users I'd say PT3 still has more functionality in the way of built-in statistics. But I think HM is easier to use.

The sad thing about this article James is that 9 out of 10 players don't understand poker well enough to see why game selection is everything. Also, in your initial picture, you showed a table with people like durr and Patrick Antonius - sort of an ironic example to use for 'game selection'//

PT3 all the way.

HM doesn't even come close. No custom statistics, for example.

Hi james

Another interesting read, and food for thought for a new automated table selector ;) , i hope this series continues i have learned so much from it.

Thanks, Dman

Hmm, great idea for cash games, but what about tournaments? I guess it is really useful to know that you have a good player at your table, thus avoid etc. And at a final table, but the assumption is that if they have got to the final table in a tournament then they are going to be dangerous anyway.

Color coding, yes good idea, automation even better, what happened to poker bot code?

[quote]Color coding, yes good idea, automation even better, what happened to poker bot code?[/quote]

I've been wondering the same. Mr. Dev-ling ish out of treats to share to his wannabe-poker-botter pets.

+1 on "What happened to poker bot code"

Hi James, 1st-time commenter here. I actually did something similar to what you suggest. The problem I ran into is that, unless you have a large PT database, you won't have the data to apply colors to everybody. I ended up writing a simple script to pull player winnings off of sites like PTR/OPR but I had problems doing this as a lot of these sites depend heavily on Javascript, and they don't expose a public API. My programmatic kung-fu is good enough to request a webpage and extract the bits of information that I want, but I'm not sure how to do this with support for Javascript, short of pulling up an actual browser.

So I had some problems doing this but obviously with things like the Sharkscope HUD it's possible. I'd love to hear more on this subject.

Also, for the players who are like "+1 on what happened to poker bot code" I think you're missing the point. All of this stuff can be applied to poker botting. I don't actually run a bot but I know that table selection is a huge deal just based on what I've seen on 2+2 and here.

[code]I don't actually run a bot but I know that table selection is a huge deal just based on what I've seen on 2+2 and here.[/code]

If you haven't actually run a bot, you probably shouldn't have an opinion. Fact is yes, table selection plays a rule, but color-codes have no value to a bot. Opponent categorization has value, but that wasn't really the thrust of JD's post.

Still JD, I gotta say, this is a great idea for live (online) play. I'll probably end up writing a tool to do this, doesn't seem like it would be too hard..

Damnit James, you really need to implement better BBCode support, especially after that post about how every piece of text in the world should be HTML or whatever. ; )

yeah actually i noticed the same thing about the full tilt colors... only about 9-10 of the colors are actually usable because they look so alike. then again i only use 4 colors.

to the guy who asked about whether pokertracker or holdem manager is better...

i happen to run both and it really depends. they're both fine if all you want to do is "track your play".

but pokertracker has support for custom stats which hm sort of lacks (custom stats are still possible with hm, but they're not really built in in the way they are with pt3)

on the other hand, hm is easier to use, and has better organization.

pt3 has the better HUD...

hm has the better look & feel...

so take your pick. they're both pretty good

read my pt3, querried pokerprolabs, created user.xml works fine! user.xml is now 1,2 MB. will be updated automaticaly. ;-)

I love java. I love your posts. :-)


Really nice read thanks, I have added this to my Connotea bookmarks.

At 247rack we have invested significant capital into providing the most secure and reliable Cloud infrastructure with operational uptime as the highest priority. Our mission is to provide the most secure and reliable infrastructure with operational uptime as the highest priority.

Use the form below to leave a comment.

Coding the Wheel has appeared on the New York Time's Freakonomics blog, Jeff Atwood's Coding Horror, and the front page of Reddit, Slashdot, Digg.

On Twitter

Thanks for reading!

If you enjoyed this post, consider subscribing to Coding the Wheel by RSS or email. You can also follow us on Twitter and Facebook. And even if you didn't enjoy this post, better subscribe anyway. Keep an eye on us.

Question? Ask us.



Coding the Wheel =
Code, poker, technology, games, design, geekery.


You've read our technical articles, you've tolerated our rants and raves. Now you can hire us anytime, day or night, for any project large or small.

Learn more

We Like

Speculation, by Edmund Jorgensen.