I play online cash on GGPoker, PokerStars and iPoker. GG is the only one that hands you a graph, and it's pre-rake, so the bb/100 it shows isn't what lands in your bankroll. On the other sites you get nothing at all. I got tired of rebuilding my real winrate in a spreadsheet, so I built this. Drop your hand histories, GG and PokerStars .txt or iPoker .xml, and you get your true, rake- and all-in-adjusted winrate, plus where your game drifts from equilibrium. It's free, runs entirely in your browser, and you no longer need a paid tracker or a solver subscription to see any of it.
⬆
Drop your hand history files here
or click to choose. GG and PokerStars (.txt) and iPoker (.xml) all work, including Rush & Cash and Zoom. Files are saved in this browser and reload next time. Duplicate hands are ignored.
Hands
–
Net won
–
EV won
–
Winrate
–
actual, bb/100
EV winrate
–
all-in adjusted, bb/100
Won w/o showdown
–
bb/100
Rake + jackpot paid
–
Winnings
Won All-in EV Won at showdownWon w/o showdown
Preflop & postflop
Distance from equilibrium
How far your preflop and flop frequencies sit from the unexploitable baseline (solved for 6-max, 100bb, NL50 GG rake; flop figures averaged across board textures). A deviation is a flag to read, not an error: some are deliberate exploits, some are leaks. The money column and your own read decide which.
Opens (RFI) by position
Pos
You
GTO
Δ
bb/100
Key spots vs equilibrium
Spot
You
GTO
Δ
Read
Pool vs equilibrium
The mirror image of the table above: how the pool responds to your aggression, measured from your own hands against the same solver baselines. These are action frequencies, not showdowns, so the samples are real. Where the pool over-folds, your aggression prints; where it defends wide, lean value. Barrel baselines are ~70%-pot bets on blank runouts (BTN vs BB, averaged across board textures); steal baselines assume a 2.5x BTN / 3x SB open, so treat small deltas as noise. The bb/100 column is your own winrate across the hands where each spot came up (one count per hand, not per opponent), so it says whether the frequency is actually costing you. The last two rows are your own actions facing a 3-bet, not the pool’s. Each spot is a filtered subset of hands you were already winning or losing big in, so these figures run far above your headline winrate. Read them against each other, not against your overall bb/100.
Spot
Freq
GTO
Δ
bb/100
Read
By stake
Stake
Hands
VPIP
PFR
3-bet
Won
EV won
bb/100
EV bb/100
By position
Position
Hands
VPIP
PFR
Won
EV won
bb/100
EV bb/100
WoSD
Card luck
The EV line adjusts for how all-ins ran. This measures the deck itself: how often it gave you the hands, flops and runouts it was supposed to, using exact per-card probabilities from your own hole cards and boards. Expected carries a ±2σ noise band, and most stretches belong inside it. The ~bb column is a rough estimate priced from your own average result in each spot; rows overlap, so they don't sum.
Situation
n
Expected
Actual
Δ
~bb
Read
All-in adjustments
Hand
Cards
Street
Equity
Actual
EV
Run (±)
EV adjustment replaces the result of every pot that went all-in before the river with equity × winnable pot (rake-proportional), computed by exact enumeration on turn/flop and 120k-trial Monte Carlo preflop. River all-ins are left untouched, since equity is locked once the money is in. Multiway and multi-street all-ins are split into side-pot layers, each priced at the street its chips went in. Files and equity results are saved in this browser only (IndexedDB) and reload automatically. Nothing ever leaves your machine. Use "Clear saved data" to wipe them. The all-in EV is validated against Hand2Note to within 0.3 bb/100.
Built by Richard Patey, a GGPoker Rush & Cash player. Free to use.