Controlled comparison

Where a static chart and an exact shoe give different answers.

A controlled comparison of the first decision only, on initial two-card hands that are not pairs and not terminal. One side is a published static Basic Strategy chart. The other is the OOB engine, deciding from the exact remaining composition.

Internally validated Independent validation: Not yet performed.
What is compared

One decision, two sources, the same engine measuring both.

For each state, the static chart is consulted for its recommended action, and the OOB engine is asked for the expected value of every available action. The comparison is the difference between the EV of the action OOB selects and the EV of the action the chart recommends.

Both expected values come from the OOB engine.
The chart supplies an action, not a value. Its EV is then evaluated by the same engine that evaluates the OOB action, under the same rules and the same exact composition — so the two numbers are directly comparable.

A Hit EV means “draw one card, then play composition-dependent optimally to the end”. The continuation after Hit is optimised by OOB in both cases. This is not a comparison of two complete strategies played out to the end.
Domain Initial two-card hands, not pairs, not terminal, no natural blackjack
Rule configuration 8 decks · ENHC · S17 · DAS No · Double any first two cards · Split to a maximum of 2 hands · Resplit aces No · Hit split aces No · Surrender None · Blackjack 3:2
Reference source BlackjackInfo — Basic Strategy Engine — Ken Smith
Captured 2026-09-07
Decks 8
Soft 17 Dealer stands (S17)
Doubling Any two cards
After split No double (DAS No)
Surrender Not allowed
Hole card No peek (European)
Reference status CANDIDATE — NOT APPROVED AS REFERENCE

The reference is approved for this domain only. Pairs remain outside it: the source does not declare its split restrictions, and those apply directly to a split decision.

Candidate accounting

Every generated candidate is accounted for.

The sample was fixed before any sample expected value was computed. Excluded candidates were not replaced — replacing them would have selected the sample by the exclusion criterion.

Generated
1000
Synthetic candidates
Compared
813
Passed the domain filter
Excluded
187
131 pairs · 56 natural blackjacks
Technical errors
0
Counted separately from exclusions

813 + 187 + 0 = 1000. A pair has no place in this domain because split restrictions are undeclared by the source; a natural blackjack has no decision to compare.

Results

The two sources agree on most states, and not on all.

Agreements
782
96.19% of 813
Deviations
31
3.81% of 813
Mean ΔEV
+0.001073
Over all 813 compared states
Mean on deviations
+0.028133
Over the 31 deviations
ΔEV statistic All compared states Deviations only
Denominator 813 31
Mean +0.001073 +0.028133
Median +0.000000 +0.022584
Maximum +0.141518 +0.141518

ΔEV = EV(action selected by OOB) − EV(action recommended by the chart). OOB selects the maximum, so the difference cannot be negative. All 31 deviations had a strictly higher EV; none had two different actions with exactly equal expected value.

Distribution of ΔEV

Bins were fixed before the results were known.

Interval States Share of 813
exact 0 782 96.19%
(0, 0.0001) 0 0.00%
[0.0001, 0.001) 0 0.00%
[0.001, 0.005) 3 0.37%
[0.005, 0.01) 5 0.62%
[0.01, 0.02) 5 0.62%
[0.02, 0.05) 14 1.72%
[0.05, inf) 4 0.49%

Action transitions

Chart → OOB States Share Mean ΔEV
HIT → HIT 392 48.22% +0.000000
STAND → STAND 304 37.39% +0.000000
DOUBLE → DOUBLE 86 10.58% +0.000000
HIT → STAND 16 1.97% +0.021264
HIT → DOUBLE 6 0.74% +0.041763
STAND → HIT 5 0.62% +0.035053
DOUBLE → HIT 3 0.37% +0.031268
STAND → DOUBLE 1 0.12% +0.012250

• marks a deviation.

Breakdowns

By prior exposure and by True Count.

Prior exposure is the number of cards removed before the three visible cards were dealt. Both breakdowns are descriptive of this sample.

Prior exposure

Cards removed States Deviations Rate Mean ΔEV
0 (0%) 208 0 0.00% +0.000000
104 (25%) 207 8 3.86% +0.000574
208 (50%) 202 4 1.98% +0.000436
312 (75%) 196 19 9.69% +0.003394

Zero deviations were observed in the 208 eligible states at 0% prior exposure.

Hi-Lo True Count

Interval States Deviations Rate Mean ΔEV
TC < -2 113 6 5.31% +0.002147
-2 <= TC < -1 80 3 3.75% +0.000612
-1 <= TC < 0 147 3 2.04% +0.000327
0 <= TC < 1 252 2 0.79% +0.000061
1 <= TC < 2 84 4 4.76% +0.001637
TC >= 2 137 13 9.49% +0.002771

Intervals were fixed before the results were known. These rates describe this sample; their shape does not establish a general or causal relationship.

Two states from the sample

The first agreement and the first deviation, by index.

Not selected for effect: these are simply the first of each kind in the fixed order of the sample.

Agreement index 1 · 0.0% prior exposure
The hand
Player 5 + A = 16
Type soft
Dealer 4
Cards dealt 3
Exact remaining shoe — 413 cards
A
31
2
32
3
32
4
31
5
31
6
32
7
32
8
32
9
32
10/J/Q/K
128
Running count +1
True count +0.13
Action EV
Stand -0.205477
Hit +0.038658
DoubleOOBChart +0.057005
Chart symbol DhDOUBLE. OOB selects DOUBLE. ΔEV = +0.000000
Deviation index 323 · 25.0% prior exposure
The hand
Player 7 + 9 = 16
Type hard
Dealer 8
Cards dealt 107
Exact remaining shoe — 309 cards
A
24
2
22
3
17
4
23
5
23
6
26
7
24
8
25
9
24
10/J/Q/K
101
Running count +14
True count +2.36
Action EV
StandOOB -0.498666
HitChart -0.502546
Double -1.005092
Chart symbol HHIT. OOB selects STAND. ΔEV = +0.003880
Reading these numbers

What the comparison does and does not establish.

Expected values are net, per original bet.
Every EV includes any additional wager the action places. A Double EV therefore reflects two units at risk, not a loss greater than the original bet on a single unit. This is the same convention used throughout OOB.
What these results are not
Run identification

The run this page reports.

Runbs_vs_oob_full_20260909_182319
Date2026-09-09
EnvironmentDevelopment, local workstation — local, not a public service
Engine buildOOB-ENG-b0681ede84a3
Comparison scriptOOB-EXP-7cd34a087123
Reference moduleOOB-REF-251356ae8d3e
Python3.11.4
Sample fingerprint37644c6e045d4d41253c6a522a019b8f…
Seed20260908
GeneratorFisher–Yates shuffle · random.Random (Mersenne Twister MT19937)
Validation statusINTERNALLY VALIDATED · Independent validation: Not yet performed
Note on the historical runtime identifiers. This run recorded two different runtime identifiers — OOB-RT-d6eb746d45d4 in the manifest and OOB-RT-8f8310c22ad2 in the results. The two runtime identifiers recorded for this run differ. The cause was demonstrated on 9 September 2026: the fingerprinting mechanism used a serialization whose output depends on reference counts, which change during execution. The engine source was byte-identical throughout, and the build identifier is unchanged. The mechanism has since been corrected; the current identifier is not attributed retroactively to this run, and the original files were left unmodified.

This page is informative. It reports a run performed locally and does not provide access to the engine or the ability to execute the experiment.