♠
Odds TrainerBlackjack Strategy
Methodology

How We Compute the Odds

By Spencer S. · Benchmark updated September 27, 2026

The trainer and hand calculator use one deterministic probability engine for their modeled win percentages and action values. It does not simulate millions of hands and report a sample average. It starts with the actual remaining-shoe composition and evaluates the available actions analytically, using the documented approximations below.

Current model version: 2026.08.1 · Browser probability model · Released August 9, 2026

In one sentence

We derive a dealer-outcome distribution from the current shoe proportions (conditioned on the US peek rule), then evaluate standing, hitting, doubling, and splitting against that model. The process is deterministic—not Monte Carlo—but it is not a full card-removal recursion for every future draw.

The dealer's outcome distribution

The heart of the engine is a distribution for the dealer finishing at 17, 18, 19, 20, 21, or busting given the up-card. We compute it with memoized recursion over the dealer's hand state—total and whether it is soft. Draw weights start from the actual composition of the remaining shoe, with the unseen hole card added back, so the model responds to cards that have already left the shoe. Within that calculation, future draws use the starting proportions rather than decrementing the composition after every hypothetical card.

Crucially, the distribution is conditioned on the US peek rule: when the up-card is an ace or a ten, the dealer has already checked the hole card for blackjack, so we exclude the blackjack case and renormalize. The measured benchmark below distinguishes agreement under matching infinite-deck assumptions from finite-shoe approximation error.

Your expected value for each play

With the dealer distribution in hand, we evaluate every legal action as an expected value per dollar of your original bet:

The live panel shows the modeled value of each action. Coaching uses a fresh-shoe baseline for the selected deck count and soft-17 rule, so a depleted shoe can occasionally make the live model prefer a different play. When that happens, the interface states the distinction instead of pretending the two concepts are identical.

The default game

Unless you change the settings, the trainer uses a common US shoe game: 6 decks, dealer hits soft 17, blackjack pays 3:2, double on any two cards, double after split, split to four hands, split aces get one card, no surrender. Settings change the shoe size, dealer behavior, payout, and probability inputs. The reference chart is the standard multi-deck H17/S17 card; rule-sensitive coaching is calculated separately from a fresh-shoe baseline.

The approximations — stated plainly

Two simplifications keep the model responsive enough to run in a browser:

Mathematical benchmark report

Run: September 27, 2026. This is a reproducible check of the shipped browser engine, not an independent certification. It tests specific assumptions; it does not establish exact results for every blackjack game.

36 of 36 action-EV comparisons passed at a tolerance of $0.00000051 per $1 originally bet. The best action agreed in all 12 selected hands. All 20 dealer-distribution comparisons passed against a separately written infinite-deck enumerator at a probability tolerance of 10−12.

Download complete results (JSON) · Download the Node.js benchmark · Download the tested engine

Action values: matched infinite-deck rules

The external reference is Michael Shackleford’s Wizard of Odds infinite-deck action table, accessed September 27. These cases use S17, a US peek with no dealer blackjack, no surrender, and rank weights of 1 each except ten-valued cards at 4. Visible cards are deliberately not removed. Each row compares stand, hit and double; EV is net return per original dollar. The tolerance allows rounding in the six-decimal reference.

HandBest actionLargest absolute EV error3 comparisons
Hard 11 vs 2Double0.000000273Pass
Hard 11 vs 6Double0.000000095Pass
Hard 11 vs TDouble0.000000334Pass
Hard 11 vs AHit0.000000282Pass
Hard 16 vs 2Stand0.000000273Pass
Hard 16 vs 6Stand0.000000497Pass
Hard 16 vs THit0.000000346Pass
Hard 16 vs AHit0.000000347Pass
Soft 18 vs 2Stand0.000000437Pass
Soft 18 vs 6Double0.000000482Pass
Soft 18 vs THit0.000000234Pass
Soft 18 vs AHit0.000000492Pass

Finite-shoe dealer error: measured, not hidden

A separate dealer enumerator removes every hypothetical card. We compare it with the browser model for every up-card, H17 and S17, in fresh one- and six-deck shoes. Only the dealer up-card has been removed; player cards are unknown. Ten and ace cases are conditioned on the dealer having no blackjack. The table reports the largest difference across the six outcomes (17–21 and bust).

DecksDistributions testedMaximum absolute difference
1200.412163 pp
6200.065020 pp

“pp” means percentage points. These are errors for this finite set of fresh-shoe cases, not an upper error bound for player EV or depleted shoes. The enumerator uses a different hand representation (all aces start at 1), but was written for this site; it is not an external audit.

Split cases and the resplitting limitation

Pair / up-cardModel EVReference EVModel minus reference
A,A vs 60.6673800.667380+0.000000
A,A vs T0.1796890.179689-0.000000
8,8 vs 60.3255330.409329-0.083796
8,8 vs T-0.489488-0.480686-0.008802

The two ace cases match within the stated rounding tolerance: both models deal one card to each split ace and do not resplit aces. The two 8,8 cases are diagnostics with different rules, not passed accuracy tests: the published reference allows up to four hands, while our valuation stops at two. Against a 6, that difference is about 8.38 cents per original dollar. Do not use the split estimate as an exact resplitting value.

Reproduce this report

Save the runner as data/benchmark-runner.js and the engine as js/odds.js in the same parent folder. With Node.js installed, run node data/benchmark-runner.js --write. No packages or network access are required. The command writes data/benchmark-results.json and exits unsuccessfully if a matched-rule assertion fails. Diagnostic differences are reported separately.

Tested engine SHA-256: afb1d832177fc96c3cd43984841d24e7c07109b4ebdfc61ce65f4b2fad04c972

Additional arithmetic check: insurance returns −1/13 per insurance dollar when ten-valued cards have probability 4/13. Still outside this report: exact finite-deck player EV, depleted shoes, full-game house edge, surrender, natural-blackjack payout settlement and resplitting. The house-edge comparison remains a separate rounded estimate. Send reproducible discrepancies through the contact page.

Model changelog

References and validation sources

References are used as validation targets and background. Figures labeled as ours are outputs of our model under the stated rules, not copied tables — and those outputs are published in full as free, machine-readable open datasets (CSV and JSON, CC BY 4.0) so anyone can check or reuse them.

Watch the math run live.

The trainer shows the model's current estimate on every Hit, Stand, Double, and Split button as you play.

Play free

Keep reading