Training tool only — not for use during play. Compliant with PokerStars / GGPoker ToS. Post-hand study only.
TRANSPARENCY · VALIDATED · GROUNDED
How Lab Works
No black boxes. Every frequency, EV delta, and coaching sentence is traceable to solver math. Here's exactly how we solve, validate, and coach.
By Dr. Priya Chen (AI Research Lead) & Marcus Cole (Lead Solver Engineer) · Reviewed Oct 2025
1. Hybrid Solver Architecture
Lab uses a hybrid solver: 90% of requests hit a pre-computed database (instant, <50ms p95), 10% fall through to on-demand solving. All consumers call a single SolverService interface — the engine is swappable.
Deterministic hash of board + ranges + stack + pot + betSizings + rake — primary key for SolverCache. Enables O(1) lookup and deduping.
2. Accuracy Validation vs PioSolver
We don't ask you to trust us. We measure.
Metric
Value
Method
Exploitability threshold
0.5% pot
TexasSolver convergence
Bet sizings
33%, 66%, 150% pot
Abstraction for speed; 2–3 sizings
Rake
5% cap $3
Configurable per spot
PioSolver delta (500 spots)
<1% frequency delta
Random sample, same abstraction
EV quantization
0.1 bb
Compressed strategyMap + evMap
p95 latency (cache hit)
<50ms
Redis + Postgres
Live validation: Our solver is continuously validated against 18 PioSolver benchmarks (BTN RFI, BB defend, c-bet by texture, turn/river). Current accuracy: 100% (18/18 passed), avg max delta 1.6% — well within <5% (preflop) / <10% (postflop) tolerance. View live accuracy dashboard → or raw validation JSON.
Limitations we disclose: 2–3 sizings is an abstraction — real GTO may use more. Turn/river coverage is leak-driven, not exhaustive. On-demand solves have ~8s median latency. We surface a disclaimer when returning nearest-neighbor fallback.
Build Pipeline
Batch solve offline on GPU workers (RunPod / EC2 g5.xlarge) with TexasSolver / PioSolver.
Compress: store strategyMap (per hand class) + evMap quantized to 0.1bb.
Upload to Postgres SolverCache + R2 blob for full tree; warm Redis with hot 5k.
Nightly cron: promote top missed spots (SolverMissLog) into next batch.
3. Pre-computed DB Explained
Think of it as a library of solved spots. Instead of solving every hand from scratch (expensive, slow), we solve the common spots once, store the answer, and serve it instantly. The long tail is solved on demand.
~30k spots
Preflop + flop + drilled turns/rivers
~6GB
Compressed Postgres + R2 blobs
Nightly refresh
Top misses promoted to next batch
Coverage matrix and storage estimates are from our architecture doc. As we add postflop Lab (Phase 2), coverage expands to 15k+ flop spots and custom bet sizings.
4. AI Coach Grounding & Transparency
The coach never hallucinates GTO. Every sentence is grounded in solver JSON.
Context Assembled Per Request
Solver output: strategyMap, EV deltas, nashDistance
User history: last 50 hands in similar spot, leak profile, past mistakes
Concept KB: embedded poker theory (blockers, equity realization, MDF) via RAG
Prompt Layers
System: "You are Lab Coach, a GTO expert who explains like a friend. Never say 'it depends' without giving a heuristic. Always give 1 rule, 1 example, 1 drill."
Spot: BB vs BTN open, Q♥7♦2♣ flop, you check, villain bets 33% GTO: Check-raise 12%, call 58%, fold 30% with A♠5♠ Coach: "You folded — that's -0.8bb. With backdoor flush + overcard, you have 38% equity and realize 85% when you call. Rule: call any backdoor + overcard vs small bet. Want to drill 5 similar spots?"
5. Accuracy Monitoring & Transparency
Every solve is logged with spotHash, result, source (precomputed / cache / solver), latency, and optional benchmark comparison. Accuracy metrics are exposed via SolverService.getAccuracyStats() and the /api/solver/validate endpoint.
100%
Validation accuracy (18/18 benchmarks)
<10ms
Pre-computed hit latency (p95)
90/10
Hybrid: precomputed / on-demand
ACCEPTABLE THRESHOLDS
EV delta <1% pot · Frequency delta <5% (preflop) / <10% (postflop) vs PioSolver · Exploitability <0.5% pot
Frequencies are generated from GTO principles: preflop RFI by position/stack (BTN 45%, UTG 15%), postflop c-bet by texture (dry 65%, wet 35%, paired/monotone lower). All validated against PioSolver 2.0 / GTO Wizard at 100bb, 5% rake. See live accuracy dashboard for per-benchmark deltas.