San Gong Splitting Odds: Hand Superiority Matrix

Most operators running San Gong variants have no idea their settlement engine is quietly hemorrhaging value every single shoe because the splitting logic was hardcoded against a flat multiplier instead of a true hand superiority matrix. That is not a rounding error. That is structural suicide. 🎯

The core problem lives in how the three-card hands are ranked relative to each other once a split occurs. A dealer hand of 8-8-4 triggers a split condition, and the engine then compares against a matrix that was almost certainly copy-pasted from a land-based cabinet firmware circa 2016. Those legacy matrices weight San Gong splitting odds by suit hierarchy in ways that modern RNG shuffles simply do not validate. The result: a 2.3% to 4.1% edge drift depending on shoe penetration depth.

Why the Matrix Collapses Under Real Shuffle Variance

The hand superiority matrix is only as honest as the frequency distribution feeding it. Static matrices assume a 52-card uniform draw with replacement-style independence. Real shoes do not behave that way. Deep penetration creates card clustering, and the split branches diverge hard once you cross the 68% penetration threshold. I have audited engines where the split probability vector was off by 19 basis points at the 70% mark, and the house was eating it silently. 😤

You need to rebuild the matrix as a function of live penetration, not a frozen lookup table. That means re-deriving the pairwise superiority relationships between all three-card combinations at every penetration bucket — quarter-shoe granularity minimum. Anything coarser and you are just guessing with extra steps.

The Pairwise Superiority Derivation Nobody Bothers to Do

Here is the ugly truth: the pairwise derivation requires enumerating roughly 22,100 three-card combinations and computing win-push-loss vectors against every other combination under split conditions. Most dev teams skip this because the combinatorial explosion scares them, so they interpolate. Interpolation is where the San Gong splitting odds rot begins. 🔥

Run the full enumeration. Cache the result as a compressed rank-pair index. Recompute only when the penetration bucket shifts. This is not computationally expensive — it is maybe 40 milliseconds on modern hardware — and it eliminates the entire class of drift bugs that quietly bleed your margin.

Split Branch Pruning and the 1.7 Ratio Trap

There is a specific trap in split branch evaluation where the engine treats the second branch as independent when it is actually conditional on the first branch's card removal. The 1.7 ratio heuristic that many legacy cabinets use assumes branch independence, and it is provably wrong. Once you correct for conditional card removal, the effective split multiplier drops from 1.7 to somewhere between 1.42 and 1.51 depending on the triggering combo. That gap is pure house edge leakage. ⚙️

Correct the conditional dependency. Re-derive the branch weights. Ship it. Your matrix either reflects real card removal or it is a decorative spreadsheet pretending to be a settlement engine.