hand history import
Hand history import.
Everything else here rests on this one step. If the import reads a hand wrongly, every number after it is wrong in the same direction and nothing on screen says so. This page is the full account of what comes out of a GGPoker export, what is done to it before it is stored, and where the reading stops.
three formats
The format is worked out from the first line of the file, so you do not have to sort your export before uploading it. A file that is none of these three gets a message naming the three that do work.
Cash game hands
starts with Poker Hand #HD
Every hand with its seats, blinds, board, full action list and the pot from the summary. Money is read into whole cents, so nothing drifts when it is added up later.
- · Run it twice and three times, with the separate first, second and third boards
- · All ins, missed blinds, returned uncalled bets, multiway pots and showdowns
- · Positions worked out relative to the button, so a six handed and an eight handed table read the same way
Tournament hands
starts with Poker Hand #TM
The same shape, but the amounts are chips rather than money, antes are counted, and the blind level from the header is kept with the hand.
- · The tournament number, the level and the ante come off the header line
- · Chips are stored in the same columns money uses, never converted to euros
- · Every tournament hand is routed to the tournament score and leaves the cash score untouched
Tournament results
starts with Tournament #
The short summary file: buy in, field size, prize pool, start time, your finishing place, what you received and how many re entries you made.
- · The buy in is added up across all its components, including the bounty part
- · Re entries are read, because the cost of a tournament is one buy in per entry
- · The result is matched to the hands you imported by tournament number
The exact route through the client, with the screens named, is on the GGPoker export page. What the parsed hands are then used for is on the leak finder page and, for tournaments, on the tournament page.
four things that happen to your file
Each of these was added after a real export failed to survive the previous version. The reason is written next to the rule, because the reason is the interesting half.
A zip is unpacked in your own browser
PokerCraft often hands you a zip. That used to be filtered away silently, so dragging one in did nothing at all. Now the archive is read where you are: the browser has the hard half of the work built in, so no upload happens before the text files come out. The limits are 25 MB for the archive, 5 MB for a single text file inside it, and 200 entries. Encrypted archives and the zip64 variant are refused by name rather than half unpacked, and every file that is skipped is listed with the reason.
A large export is cut on hand boundaries
The server takes 5 MB and has 60 seconds per request, which is the hard limit of the plan it runs on, so a month long export used to be rejected outright. It is now cut into parts of at most 4 MB and at most 2,000 hands, always on the line that starts a hand, so no hand is ever split in half. Each part becomes its own upload and is named part two of five rather than being renamed silently.
Sessions come from the clock, not from the file
A session used to mean a file. On a month long export that produced one session lasting three weeks, with a winrate averaged over everything at once, and after the splitting above the boundary became arbitrary as well. A gap of more than 30 minutes between two hands now starts a new session, the same convention the desktop trackers use. Tournaments work differently: one tournament is one session, however long the breaks inside it are.
The clock is corrected before anything is stored
GGPoker writes its header line in your local time with no zone marker, and all three parsers used to declare that time to be UTC. In summer every hand moved two hours into the future. That is not only a display problem: play after ten in the evening and the hand crosses midnight and lands on the wrong day, which moves your streak, your hand of the day and every daily count. The wall clock is now converted properly, in two passes so the switch between summer and winter time is handled rather than approximated.
what comes out
The statistics below are counted from the hands themselves. Where a shortcut was used before and turned out to be wrong, it was removed rather than quietly corrected.
- · Per hand: your position, your cards, the board, what you did on each street, what went in, what came back, whether you saw a flop and whether you reached a showdown.
- · Per session: hands played, VPIP, PFR, 3-bet, continuation bet on the flop, went to showdown, won at showdown, and your result in big blinds per 100 hands.
- · Went to showdown gets its own denominator. A hand where you go all in before the flop has no further action from you, yet the board runs out and you do reach a showdown. Counting it the other way made a showdown you won read as zero.
- · Two fold statistics are no longer written at import at all. They were approximations read out of action strings, and the continuation bet variant counted every flop action even when nobody had bet: on the real data it read 23.8 percent where the proper measurement says 53.2 percent. They are now measured from the hand columns instead.
What those abbreviations mean, one term at a time, is in the glossary, starting with showdown and continuation bet.
where it stops
Six limits that come from the data rather than from the current version. More development does not remove them.
- · GGPoker only. The three formats above are the ones that are read; anything else gets a message naming what does work instead of failing quietly.
- · It only knows the hands you give it. A session you did not export is invisible to every detector downstream.
- · Opponents stay anonymous. GGPoker encrypts their names and rotates the codes between sessions, so the import cannot follow one player across two evenings.
- · One real playing session that is itself larger than the size limit gets divided across two parts and then counts as two sessions. At GGPoker volumes that is a corner case, but it is a real one.
- · A hand with an unreadable timestamp is attached to the session before it rather than becoming a session of one hand. That is a choice, and it means the clock is repaired where possible and never invented.
- · On the free tier one import is read, and only the first 500 hands from it. That is enough for the detectors to have something to say and too little to use as a tracker.
next
Get the file out of your client first.
None of this starts until you have an export. The instruction walks through PokerCraft screen by screen, including which date range to pick and what the downloaded archive looks like when it arrives.
questions
Where do I get the file?
Inside the GGPoker client, under PokerCraft, you can export your own hand history. That is the same tool the site provides itself, and the export happens after you have played rather than during a hand.
Can I upload the zip straight from PokerCraft?
Yes. The archive is opened in your own browser and only the text files inside it are sent on. Encrypted archives and the zip64 variant are refused with a reason, and any file that is skipped is named rather than dropped silently.
My export is a month of play. Will it become one giant session?
No. The file is cut into parts on hand boundaries, and the sessions are then rebuilt from the clock: more than 30 minutes between two hands starts a new one. A month long export therefore lands as the evenings you actually played.
Are tournament hands mixed in with my cash numbers?
No. Tournament hands carry a phase and are routed to the tournament score, while cash hands feed the cash score. Chips are kept as chips and never converted into euros, because without ICM that conversion would be a guess.
What happens to hands I import twice?
A hand carries its own number from the export, so importing the same file again does not double your history. Failed and duplicate uploads also do not consume the free import, which is counted on successful imports rather than on attempts.