The model, the assumptions, the sources, and the one thing it cannot tell you.
It deals real hands to a full table of automated players and records what happens to your seat. Every seat plays to an assigned strategy, the dealer plays to house rules, cards are drawn from a real shoe and the shoe runs down until it hits the reshuffle point. Nothing is estimated from a formula. The result comes from playing the hands.
You configure the table and it runs the same setup twice, once with every other seat playing correctly and once with every other seat playing badly, so the comparison is the output rather than a single number.
Optimal seats and the trainer share one strategy dataset, so the two tools can never disagree with each other. It holds forty ruleset combinations covering deck count, dealer soft 17 behaviour, double after split, and surrender.
It was built from two independent published sources and compared cell by cell. Out of 14,400 decisions there was one disagreement, on a pair of eights against a dealer ace in a specific two deck ruleset. That case is shown rather than resolved.
Bad play is not random noise. Random errors would be a weaker test, because real players are wrong in consistent, documented ways.
The badly playing seats use a fixed set of the most common real deviations: standing on hard 12 against a dealer 2 or 3, standing on 8s against a dealer 10 or ace instead of splitting, never doubling soft hands, never surrendering, and mishandling soft 17 and soft 18 against strong dealer cards.
Every deviation in that list is documented in the two sources above as a common player error.
It cannot predict your session. Any individual run of a few hundred hands can land anywhere in a wide distribution, which is why the default sample size is deliberately large.
It does not model card counting. Every seat plays its assigned strategy without reference to what has already been dealt.
It does not model dealer error, table talk, comps, or anything else that happens at a real table but not in the arithmetic.
And it will not tell you that other players are hurting your odds, because at 200,000 shoes the measured difference was 0.02 percentage points against a margin of error of 0.09.
| Element | How it is modelled | Source | Limitation |
|---|---|---|---|
| Optimal play | Full basic strategy chart per ruleset | Two independent published sources, cross-checked | One disagreement in 14,400 cells, disclosed |
| Bad play | Fixed set of documented common errors | Same two sources | Not a model of any one real player |
| Shoe and reshuffle | Real card draws to a set penetration point | Standard casino practice | Continuous shufflers not modelled |
| Sample size | 20,000 shoes by default | Chosen for browser performance | Smaller runs produce noise, as we found at 6,000 |
The 200,000 shoe reference figure quoted elsewhere on the site was produced outside the browser and is not the live default.
The default of 20,000 shoes at a full table covers a few hundred thousand rounds. Smaller runs are unreliable. An early 6,000 shoe run produced a difference of half a percentage point that disappeared entirely at larger sample sizes.
No. Every seat plays its assigned strategy without reference to cards already dealt.
No. It describes long run behaviour across hundreds of thousands of hands. No simulation predicts a single session.
Verified against 2 primary sources. Last reviewed September 10, 2026.