We've asked ourselves this question more times than we can count. GTO Wizard, PioSOLVER, DeepSolver, Poker Snowie — a desktop full of solvers, each with its own fans. Building another one: isn't that arrogant?
Simple answer: none of them solves the question of whether your opponent plays optimally.
GTO is the answer sheet, not the exam
A GTO strategy tells you the best response assuming your opponent also plays optimally. Mathematically perfect. Game-theoretically airtight. But real tables aren't like that.
80% of the opponent pool you face does not play GTO. They 3-bet too infrequently, check too often on the turn, overfold on the river. Playing GTO against them — you still win, but you win slowly, and less. The real money comes from exploitation.
Treat GTO as the floor and exploitation as the ceiling. You need both, but the order you teach players matters.
Our three-layer stack
SharkPool's engine isn't a single model; it's a three-layer stack:
- Floor: Blueprint strategy. Hundreds of thousands of game states pre-solved with CFR+, stored in LMDB, retrieved in milliseconds. This is the floor — it tells you the GTO-optimal line.
- Middle: live MCCFR. For cold states, we run Monte Carlo sampling on the fly — 20,000 iterations/sec on an 8-core i7. This is the fallback — you never get stuck on "not in the table".
- Ceiling: exploit adjustment. Opponent archetypes (Nit / TAG / Calling Station, etc.) reshape the output. Facing a calling station, the engine dials up your value-bet frequency on its own; facing a TAG, it dials down bluffs. This is the ceiling — turning GTO into what's optimal against this person.
"Sparring" matters more than "looking up answers"
Another thing we didn't like: every solver on the market works as "you input a hand, it outputs an answer". Passive, offline, detached from the session. Players close the tool and, when the same spot comes up next time, still can't recall what to do.
What we wanted was live sparring: you're betting, the engine is watching. Every hand gets a recommendation and a one-line explanation (the Why field). The explanation isn't a formula — it's the driving factor: "BTN vs BB, SPR 6.2, opponent fold-turn 35% (low) — check to reduce variance."
What you retain afterwards is the logic, not the frequencies. Frequencies change; logic doesn't.
What we don't do
So we're not misunderstood, a few things we explicitly refuse:
- No stake-playing. SharkPool runs in training and review contexts only; it does not integrate with real-money tables.
- No RTA (Real-Time Assistance). Copying answers live at real-money tables is cheating. Our Terms of Service forbid it outright.
- No profit guarantees. Poker has variance. We improve your long-term decision quality — nobody controls short-term variance.
What's next
In beta we're still tuning engine consistency (keeping EV error across the three variants within 0.2 BB) and Mr. Shark's explanation voice (sounds like a veteran coach in Chinese; sounds like a sharp Reddit regular in English). Before v1.0 ships, the advisor engine's baseline numbers will be published.
Come join the community and roast us. Every early-user piece of feedback lands in the changelog.