Casino House Edge Calculator
ANA›Life Services Authority›National Calculator Authority›Casino House Edge Calculator
.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }
Casino House Edge Calculator
Calculate the theoretical house edge (casino advantage) for popular casino games based on specific rules and bet types.
Game Type
Blackjack Roulette Baccarat Craps Slots
Number of Decks
1 Deck 2 Decks 4 Decks 6 Decks 8 Decks
Blackjack Payout
3:2 (1.5x) 6:5 (1.2x) 1:1 (Even Money)
Double After Split
Allowed Not Allowed
Dealer on Soft 17
Stands (S17) Hits (H17)
Resplit Aces
Not Allowed Allowed
Late Surrender
Not Allowed Allowed
Wheel Type
American (0 + 00) European (Single 0) French (La Partage)
Bet Type
Straight Up (Single Number) Split (2 Numbers) Street (3 Numbers) Corner (4 Numbers) Six Line (6 Numbers) Dozen / Column (12 Numbers) Even Money (Red/Black, Odd/Even)
Bet Type
Banker (5% Commission) Player Tie (8:1 Payout) Banker No Commission (Banker 6 pays 50%)
Bet Type
Pass Line Don't Pass Come Don't Come Place 6 or 8 Place 5 or 9 Place 4 or 10 Field (2&12 pay 2x) Any Seven Hardway 6 or 8 Hardway 4 or 10
Return to Player (RTP) %
Calculate House Edge
function casUpdateOptions() { var game = document.getElementById('cas-game').value; var sections = ['blackjack','roulette','baccarat','craps','slots']; sections.forEach(function(s) { document.getElementById('cas-' + s + '-opts').style.display = (s === game) ? '' : 'none'; }); }
function casCalc() { var game = document.getElementById('cas-game').value; var edge = 0; var betLabel = ''; var breakdown = '';
if (game === 'blackjack') { var decks = parseFloat(document.getElementById('cas-bj-decks').value); var payout = parseFloat(document.getElementById('cas-bj-payout').value); var das = document.getElementById('cas-bj-das').value; var s17 = document.getElementById('cas-bj-s17').value; var resplit = document.getElementById('cas-bj-resplit').value; var surr = document.getElementById('cas-bj-surrender').value;
// Base house edge by number of decks (basic strategy, S17, 3:2, DAS, no resplit, no surrender) // Source: Wizard of Odds blackjack appendix var baseEdge; if (decks === 1) baseEdge = 0.0017; else if (decks === 2) baseEdge = 0.0046; else if (decks === 4) baseEdge = 0.0060; else if (decks === 6) baseEdge = 0.0064; else baseEdge = 0.0066; // 8 decks
// Rule adjustments (additive) var adj = 0; // Payout adjustment: 3:2 is baseline; 6:5 adds ~1.39%; 1:1 adds ~2.27% if (payout === 1.2) adj += 0.01390; if (payout === 1.0) adj += 0.02270; // H17 adds ~0.22% if (s17 === 'hit') adj += 0.0022; // No DAS adds ~0.14% if (das === 'no') adj += 0.0014; // Resplit Aces reduces by ~0.08% if (resplit === 'yes') adj -= 0.0008; // Late Surrender reduces by ~0.08% if (surr === 'yes') adj -= 0.0008;
edge = (baseEdge + adj) * 100; betLabel = decks + '-Deck Blackjack'; breakdown = '' + (payout===1.2 ? '' : '') + (payout===1.0 ? '' : '') + (s17==='hit' ? '' : '') + (das==='no' ? '' : '') + (resplit==='yes' ? '' : '') + (surr==='yes' ? '' : '');
} else if (game === 'roulette') { var rouType = document.getElementById('cas-rou-type').value; var rouBet = document.getElementById('cas-rou-bet').value;
// Slots on wheel var slots = (rouType === 'american') ? 38 : 37; var zeros = (rouType === 'american') ? 2 : 1;
// Payout and coverage by bet type var betNums, payout_r; if (rouBet === 'straight') { betNums = 1; payout_r = 35; } else if (rouBet === 'split') { betNums = 2; payout_r = 17; } else if (rouBet === 'street') { betNums = 3; payout_r = 11; } else if (rouBet === 'corner') { betNums = 4; payout_r = 8; } else if (rouBet === 'line') { betNums = 6; payout_r = 5; } else if (rouBet === 'dozen') { betNums = 12; payout_r = 2; } else { betNums = 18; payout_r = 1; } // even money
// Standard house edge = (slots - betNums(payout_r+1)) / slots // Simplified: edge = zeros / slots for all standard bets (same formula) // For French La Partage on even-money bets: edge halved if (rouType === 'french' && rouBet === 'even') { edge = (zeros / slots) * 100 / 2; // La Partage: lose only half on zero } else { // General formula: E = 1 - (betNums/slots)(payout_r+1) edge = (1 - (betNums / slots) * (payout_r + 1)) * 100; }
betLabel = rouType.charAt(0).toUpperCase()+rouType.slice(1) + ' Roulette – ' + rouBet; breakdown = '' + '' + '' + (rouType==='french' && rouBet==='even' ? '' : '');
} else if (game === 'baccarat') { var bacBet = document.getElementById('cas-bac-bet').value; // Probabilities (8-deck standard): Banker wins 45.86%, Player wins 44.62%, Tie 9.52% var pBanker = 0.458597, pPlayer = 0.446247, pTie = 0.095156;
if (bacBet === 'banker') { // Banker pays 0.95:1 (5% commission); tie is a push edge = (1 - pBanker * 0.95 - pPlayer * (-1) - pTie * 0) * 100; // Simplified: edge = 1 - 0.95pBanker + pPlayer (net loss per unit) edge = (pPlayer - 0.95 * pBanker) * 100; // Correct sign: house edge = expected loss = -(EV) // EV = 0.95pBanker - 1pPlayer + 0pTie var ev = 0.95 * pBanker - pPlayer; edge = -ev * 100; // positive = house advantage betLabel = 'Baccarat – Banker Bet'; breakdown = '' + '' + '' + ''; } else if (bacBet === 'player') { var ev2 = pPlayer - pBanker; edge = -ev2 * 100; betLabel = 'Baccarat – Player Bet'; breakdown = '' + '' + '' + ''; } else if (bacBet === 'tie') { // Tie pays 8:1 var ev3 = 8 * pTie - (1 - pTie); edge = -ev3 * 100; betLabel = 'Baccarat – Tie Bet (8:1)'; breakdown = '' + '' + ''; } else { // No-commission banker: banker 6 pays 50% (0.5:1), all other banker wins pay 1:1 // P(Banker wins with 6) ≈ 5.39% of all hands var pBanker6 = 0.05390; var pBankerOther = pBanker - pBanker6; var ev4 = 1.0 * pBankerOther + 0.5 * pBanker6 - pPlayer; edge = -ev4 * 100; betLabel = 'Baccarat – No Commission Banker'; breakdown = '' + '' + '' + '' + ''; }
} else if (game === 'craps') { var crpBet = document.getElementById('cas-crp-bet').value; // Source: Wizard of Odds craps house edge table var crapsEdges = { 'pass': { edge: 1.41, label: 'Pass Line', formula: '(8×(-1) + 4×(+1) + 24×(EV per point)) / 36 ≈ −1.41%' }, 'dont-pass': { edge: 1.36, label: "Don't Pass", formula: 'Complement of Pass Line adjusted for bar-12 push ≈ −1.36%' }, 'come': { edge: 1.41, label: 'Come', formula: 'Same structure as Pass Line = −1.41%' }, 'dont-come': { edge: 1.36, label: "Don't Come", formula: "Same structure as Don't Pass = −1.36%" }, 'place6': { edge: 1.52, label: 'Place 6 or 8', formula: '(5/11)×(7/6) − (6/11)×1 = −1.52%' }, 'place5': { edge: 4.00, label: 'Place 5 or 9', formula: '(4/10)×(7/5) − (6/10)×1 = −4.00%' }, 'place4': { edge: 6.67, label: 'Place 4 or 10', formula: '(3/9)×(9/5) − (6/9)×1 = −6.67%' }, 'field': { edge: 5.56, label: 'Field (2&12=2x)', formula: '(16 wins − 20 losses) / 36 = −5.56%' }, 'any7': { edge: 16.67,label: 'Any Seven', formula: '(6/36)×4 − (30/36)×1 = −16.67%' }, 'hardway68': { edge: 9.09, label: 'Hardway 6 or 8', formula: '(1/10)×9 − (9/10)×1 = −9.09%' }, 'hardway410': { edge: 11.11,label: 'Hardway 4 or 10', formula: '(1/8)×7 − (7/8)×1 = −11.11%' } }; var cd = crapsEdges[crpBet]; edge = cd.edge; betLabel = 'Craps – ' + cd.label; breakdown = '' + '' + '';
} else if (game === 'slots') { var rtpVal = parseFloat(document.getElementById('cas-slt-rtp').value); if (isNaN(rtpVal) || rtpVal 99.9) { document.getElementById('cas-result').innerHTML = 'Please enter a valid RTP between 50% and 99.9%.'; return; } edge = 100 - rtpVal; betLabel = 'Slots (RTP = ' + rtpVal.toFixed(2) + '%)'; breakdown = '' + ''; }
// Rating var rating = ''; if (edge ' + 'MetricValue' + 'House Edge' + edge.toFixed(4) + '%' + 'Player Return (RTP)' + (100 - edge).toFixed(4) + '%' + 'Expected Loss per $100 Wagered$' + lossPerHundred.toFixed(2) + '' + 'Expected Loss per $1,000 Wagered$' + (lossPerHundred * 10).toFixed(2) + '' + 'Rating' + rating + '' + '' + '#### Calculation Breakdown ' + breakdown + ''; }
#### Formulas Used
General House Edge: House Edge (%) = −E[V] × 100, where E[V] = Σ (probability of outcome × net payout)
Blackjack (Basic Strategy): Base edge by deck count + rule adjustments (H17: +0.22%, 6:5 payout: +1.39%, no DAS: +0.14%, late surrender: −0.08%, resplit aces: −0.08%)
Roulette: Edge = 1 − (n/S) × (P+1), where n = numbers covered, S = total slots (37 or 38), P = payout ratio. French La Partage halves edge on even-money bets.
Baccarat Banker: Edge = −(0.95 × P(Banker) − P(Player)) using 8-deck probabilities: P(B)=45.8597%, P(P)=44.6247%, P(T)=9.5156%
Craps Pass Line: Edge = (220 × (−1) + 976 × EV_points) / 1980 ≈ 1.41%
Slots: House Edge = 100% − RTP%
#### Assumptions & References
More Calculators
- Adjuster Liability Exposure Calculator
- Bad Faith Claim Penalty Estimator
- Claims Payout Estimator
- Flood vs Standard Coverage Gap Calculator
- Personal Property Inventory Value Calculator
- Home Replacement Cost Calculator
Read Next
Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...