Methodology
How the simulation engine works and what the data represents
Monte Carlo Simulation
All data on this website comes from a custom Monte Carlo blackjack simulator. For each ruleset, billions of hands are dealt from a virtual shoe, with every decision point recorded. The simulator tracks the outcome of each possible action (hit, stand, double, split, surrender) at every combination of hand, dealer upcard, and true count.
Unlike analytical approaches that use combinatorial math, simulation naturally handles complex interactions: multi-card draws, splitting and re-splitting, and double after split.
Why Simulation?
Analytical blackjack solvers are extremely accurate for basic strategy but struggle with count-dependent analysis. The interactions between bet sizing, multi-action sequences (splits, doubles), and changing deck composition are difficult to model analytically. Monte Carlo simulation handles all of these naturally — every hand plays out exactly as it would at a real table, billions of times.
The tradeoff is that simulation results have statistical noise. With 10.0B+ hands per ruleset, the standard error on EV estimates is on the order of 0.001%, making the results effectively exact for practical purposes.
Why We Floor the True Count
To use the true count in practice you need to convert a fractional number (running count ÷ decks remaining) into an integer. There are three common approaches: rounding, truncation, and flooring. Each produces slightly different bin boundaries, and those boundaries matter when you try to attach a simple rule like “deviate at TC ≥ +2.”
Rounding (round to nearest integer)
With rounding, a raw value of 1.3 becomes TC +1 and 1.7 becomes TC +2. The bins are uniform in width, but the decision boundaries fall at half-integers: ±0.5, ±1.5, ±2.5, and so on. That means the true cutoff between “TC +1 behavior” and “TC +2 behavior” is at a raw count of 1.5 — not 2. To be precise, deviation indices should be expressed as +1.5, +2.5, etc., which is awkward to memorize and not how indices are traditionally quoted.
Truncation (toward zero)
Truncation chops off the decimal and moves toward zero: +1.7 becomes +1, and −1.7 becomes −1. The decision boundaries land on whole numbers, which is convenient — but there’s a catch. Because truncation pulls both positive and negative values toward zero, the TC = 0 bin is twice as wide as every other bin (it covers the range −1 to +1).
More importantly, the direction of the boundary flips at zero. For positive counts, you cross from TC +1 into TC +2 when the raw value reaches 2.0 from below — so “at or above +2” works naturally. But for negative counts, you cross from TC −1 into TC −2 when the raw value drops to −2.0 from above. That means a negative index like −1 would need to be read as “at or below” rather than “at or above,” and the simple rule that works everywhere else quietly breaks.
Flooring (always round down)
Flooring always rounds toward negative infinity: +1.7 becomes +1, and −1.3 becomes −2. Every bin has the same width and the boundaries are at whole numbers — the transition from TC = n to TC = n+1 always happens when the raw value crosses n+1, regardless of sign. This means “deviate at TC ≥ X” has exactly the same meaning whether X is positive or negative, and integer indices correspond directly to the decision boundaries.
How much does it actually matter?
In practice, the EV differences between the three methods are tiny. Most hands are played the same way regardless of which convention you use, and the edge cases where they disagree involve borderline decisions with small EV gaps. What matters far more is consistency: pick one method, understand where your decision boundaries are, and make sure the indices you memorize were derived using the same method you use at the table. All of the indices, charts, and EV data on this site use floored true counts.