What the engine actually deals
Hi-Lo asks one question thirteen ways. A card is on the table; the next card will be higher or lower; call it, and a correct call multiplies the pot and hands you the same question about a new card. There is no shoe to track, no third-card rule, no dealer. That makes it one of the few casino games whose entire price list fits on a single page — and one of the few where reading the code changes what you think the buttons mean.
Ranks run Ace low to King high, one through thirteen. Because every card is an independent uniform draw, nothing that has already been dealt changes what comes next — no rank is “used up”, and a run of five low cards does not make a high one due. The history strip along the top of the board is a record, not a forecast.
That shared rank is the first thing worth noticing. On any card from 2 to Queen the two buttons together cover fourteen of the thirteen ranks — 107.69% — because a tie pays on whichever side you took. The house does not keep pushes here, and it does not need to: the price of both buttons is set as if the tie belonged to you, and the edge is taken somewhere else entirely.
Every call, priced
There are only twelve distinct calls in Hi-Lo, not twenty-six. A button is defined entirely by how many of the thirteen ranks win it, and every button on the board is one of the twelve sizes below.
| WINNING RANKS | CHANCE | FAIR ODDS | SHOWN | LOST TO THE 2DP FLOOR | WHERE IT APPEARS |
|---|---|---|---|---|---|
| 1 | 7.6923% | 13.0000 | ×13.00 | — | “Same” on an Ace or a King |
| 2 | 15.3846% | 6.5000 | ×6.50 | — | Lower on a 2, Higher on a Queen |
| 3 | 23.0769% | 4.3333 | ×4.33 | 0.0769% | Lower on a 3, Higher on a Jack |
| 4 | 30.7692% | 3.2500 | ×3.25 | — | Lower on a 4, Higher on a 10 |
| 5 | 38.4615% | 2.6000 | ×2.60 | — | Lower on a 5, Higher on a 9 |
| 6 | 46.1538% | 2.1667 | ×2.16 | 0.3077% | Lower on a 6, Higher on an 8 |
| 7 | 53.8462% | 1.8571 | ×1.85 | 0.3846% | Either button on a 7 |
| 8 | 61.5385% | 1.6250 | ×1.62 | 0.3077% | Lower on an 8, Higher on a 6 |
| 9 | 69.2308% | 1.4444 | ×1.44 | 0.3077% | Lower on a 9, Higher on a 5 |
| 10 | 76.9231% | 1.3000 | ×1.30 | — | Lower on a 10, Higher on a 4 |
| 11 | 84.6154% | 1.1818 | ×1.18 | 0.1538% | Lower on a Jack, Higher on a 3 |
| 12 | 92.3077% | 1.0833 | ×1.08 | 0.3077% | Lower on a Queen or King, Higher on an Ace or 2 |
Chance is the win-set size over 13. Fair odds is 13 ÷ win-set size, the figure hiloOdds() returns. Shown is that figure after the engine’s two-decimal floor. The fifth column is the share of a stake the floor alone takes on that call, before any configured house edge.
Five of the twelve calls divide cleanly into 13 and lose nothing to rounding: the ×13.00, ×6.50, ×3.25, ×2.60 and ×1.30. The rest are repeating decimals cut off rather than rounded, and the cut always favours the house — a floor, never a nearest. The largest single bite is on a 7, the only card where both buttons are the same call: ×1.8571 becomes ×1.85, and 0.3846% of the stake disappears into the third decimal place.
Two floors, one edge
A Hi-Lo run does not pay per call. It accumulates. Each correct call multiplies a running product by that call’s stored odds, and the payout you can bank is the product with the house’s cut applied — a cut taken once for the whole run, not once per call.
So there are two floors, not one: the per-call floor in the table above, and a second floor on the finished multiplier. Both round down. The house edge itself is configuration rather than code — it arrives with the game’s detail record and the client falls back to a 1% figure if that call fails.
| SHOWN | CHANCE | FIRST-CALL PAYOUT AT A 1% SETTING | HOUSE EDGE | AT A 1.5% SETTING |
|---|---|---|---|---|
| ×13.00 | 7.6923% | ×12.87 | 1.0000% | 1.5385% |
| ×6.50 | 15.3846% | ×6.43 | 1.0769% | 1.5385% |
| ×4.33 | 23.0769% | ×4.28 | 1.2308% | 1.6923% |
| ×3.25 | 30.7692% | ×3.21 | 1.2308% | 1.5385% |
| ×2.60 | 38.4615% | ×2.57 | 1.1538% | 1.5385% |
| ×2.16 | 46.1538% | ×2.13 | 1.6923% | 2.1538% |
| ×1.85 | 53.8462% | ×1.83 | 1.4615% | 2.0000% |
| ×1.62 | 61.5385% | ×1.60 | 1.5385% | 2.1538% |
| ×1.44 | 69.2308% | ×1.42 | 1.6923% | 2.3846% |
| ×1.30 | 76.9231% | ×1.28 | 1.5385% | 1.5385% |
| ×1.18 | 84.6154% | ×1.16 | 1.8462% | 1.8462% |
| ×1.08 | 92.3077% | ×1.06 | 2.1538% | 2.1538% |
House edge is the expected loss as a share of the stake for a run of exactly one correct call followed by a cash-out: 1 − chance × payout. The payout column is floor2(floor2(13 ÷ k) × 0.99), the number the button itself shows on the first call of a run.
The button legend is worth reading carefully because of this. On the first call of a run the once-per-run cut lands in the same move, so the display drops — the ×1.08 you would expect reads ×1.06. From the second call onwards the product has already been cut, and the same button reads ×1.08 again. Nothing has changed about your chances; you are looking at two different stages of the same arithmetic.
And here is the result nobody expects. A configured edge of 1% is a target, not an outcome. Because the floors bite hardest on the calls whose fair odds have the ugliest decimals, the real cost of a single call ranges from 1.00% to 2.15% — the house’s take on the near-certain ×1.06 is more than twice its take on the ×12.87 long shot. The safest button on the board is the most expensive one to press.
Which side costs less, card by card
Every card puts two prices in front of you, and they are almost never equal. This is the whole table, at a 1% setting, for a single call followed by a cash-out.
| CARD | HIGHER OR SAME | LOWER OR SAME | CHEAPER SIDE |
|---|---|---|---|
| A | ×1.08 · 92.31% · 2.1538% | “Same” ×13.00 · 7.69% · 1.0000% | Lower |
| 2 | ×1.08 · 92.31% · 2.1538% | ×6.50 · 15.38% · 1.0769% | Lower |
| 3 | ×1.18 · 84.62% · 1.8462% | ×4.33 · 23.08% · 1.2308% | Lower |
| 4 | ×1.30 · 76.92% · 1.5385% | ×3.25 · 30.77% · 1.2308% | Lower |
| 5 | ×1.44 · 69.23% · 1.6923% | ×2.60 · 38.46% · 1.1538% | Lower |
| 6 | ×1.62 · 61.54% · 1.5385% | ×2.16 · 46.15% · 1.6923% | Higher |
| 7 | ×1.85 · 53.85% · 1.4615% | ×1.85 · 53.85% · 1.4615% | Identical |
| 8 | ×2.16 · 46.15% · 1.6923% | ×1.62 · 61.54% · 1.5385% | Lower |
| 9 | ×2.60 · 38.46% · 1.1538% | ×1.44 · 69.23% · 1.6923% | Higher |
| 10 | ×3.25 · 30.77% · 1.2308% | ×1.30 · 76.92% · 1.5385% | Higher |
| J | ×4.33 · 23.08% · 1.2308% | ×1.18 · 84.62% · 1.8462% | Higher |
| Q | ×6.50 · 15.38% · 1.0769% | ×1.08 · 92.31% · 2.1538% | Higher |
| K | “Same” ×13.00 · 7.69% · 1.0000% | ×1.08 · 92.31% · 2.1538% | Higher |
Shown odds · chance · house edge on one call and a cash-out. At a 1.5% setting the two exceptions disappear: the less likely side is never the dearer one, though on a 4, 6, 7, 8 and 10 the two sides then cost exactly the same.
The pattern is that the less likely side is almost always the cheaper one, which inverts the instinct the game encourages. Two cards break the rule. On a 6 and on an 8 the more likely side is cheaper, and for no reason in the game’s design. Both calls give up the same 0.3077% at the first floor; it is the second floor, on the finished multiplier, that separates them — ×2.16 against a 1% cut lands on 2.1384 and is cut to ×2.13, losing 0.3928%, while ×1.62 lands on 1.6038 and is cut to ×1.60, losing 0.2369%. On a 7 the question does not arise, since both buttons are the same call.
| HOW THE BUTTON IS CHOSEN | 1% SETTING | 1.5% SETTING |
|---|---|---|
| Always the cheaper side | 1.2249% | 1.6923% |
| Always the less likely side | 1.2485% | 1.6923% |
| At random, half and half | 1.5207% | 1.8639% |
| Always the more likely side | 1.7929% | 2.0355% |
Averaged over the thirteen equally likely cards. The spread between the first and last rows — about 0.57 points at a 1% setting — is the entire effect of button choice on a single call.
None of those rows is a positive number for the player, and that is the point. Choosing well in Hi-Lo does not turn the game around; it moves the cost between roughly 1.2% and roughly 1.8% of everything staked. The difference is real and it is worth knowing. It is also smaller than the difference the next section describes.
What riding the ladder costs
The cash-out decision is the game, and it is also where the arithmetic turns. Every additional call multiplies the product by a floored number, so every additional call adds another small cut. The configured edge is charged once; the rounding is charged again and again.
| CORRECT CALLS | CHANCE OF GETTING THERE | MULTIPLIER | FAIR MULTIPLIER | HOUSE EDGE |
|---|---|---|---|---|
| 1 | 92.3077% | ×1.06 | ×1.0833 | 2.1538% |
| 3 | 78.6527% | ×1.24 | ×1.2714 | 2.4706% |
| 5 | 67.0177% | ×1.45 | ×1.4921 | 2.8243% |
| 10 | 44.9137% | ×2.13 | ×2.2265 | 4.3338% |
| 22 | 17.1883% | ×5.38 | ×5.8179 | 7.5268% |
| 31 | 8.3632% | ×10.75 | ×11.9571 | 10.0951% |
| 60 | 0.8209% | ×100.24 | ×121.8222 | 17.7161% |
A run taken entirely on the 92.31% button. “Fair multiplier” is (13 ÷ 12) to the power of the call count — what the same run would pay with no floors and no configured edge. The ten-call row was cross-checked against thirty million simulated runs of the engine’s own demo loop.
Doubling your stake on the safe button takes ten correct calls and arrives a little under half the time, and by then the house’s share has gone from 2.15% to 4.33%. Reaching ×100 takes sixty consecutive correct calls, happens about once in 122 attempts, and costs 17.72% of everything staked. The odds compound honestly as the multiplier climbs; the roundings compound too.
| CORRECT CALLS | CHANCE | MULTIPLIER | HOUSE EDGE |
|---|---|---|---|
| 1 | 53.8462% | ×1.83 | 1.4615% |
| 3 | 15.6122% | ×6.26 | 2.2676% |
| 5 | 4.5266% | ×21.45 | 2.9041% |
| 10 | 0.2049% | ×464.89 | 4.7430% |
Ten correct calls at even-ish odds is about one attempt in 488.
Both tables say the same thing in different currencies. A long run is not a cheaper way to reach a big number than a short one at long odds — it is a more expensive way, because the house takes a slice at every rung. The one exception is the ×13.00 “Same” call: at a 1% setting it is exact at two decimals, so it survives any number of repetitions at the configured edge and nothing more. It also arrives 7.69% of the time.
Skipping, and what it does not do
Hi-Lo has a third button. While a run is live you can skip the card on the table and deal another one without calling it — the pot stands, the multiplier stands, and nothing is risked.
It is genuinely free, and it is genuinely limited in what it buys. Skipping does not improve any call — it replaces one card with another drawn from the same thirteen, so the price list it offers is the same price list. What it lets you do is wait for a card whose cheaper button you prefer, which moves your cost somewhere between the 1.00% of a King’s “Same” call and the 2.15% of the button sitting next to it — and no further. There is no sequence of skips that makes a call in this game cost nothing.
The honest summary of Hi-Lo is short. The probabilities are exactly what the buttons imply, the payouts are the fair price rounded down twice, and the cost of playing runs from about 1% on a single well-chosen call to well into double figures on a long climb, depending on which buttons you press and how far you ride. Knowing which is which makes the game cheaper. It does not make it free, and no amount of reading the engine will.
Hi-Lo, every call verifiableThirteen ranks, one question, and a price list you can check against the engineHilo →
What are the odds in the Hi-Lo card game?
Each card is drawn uniformly from thirteen ranks. On a card of rank r, “Higher or same” wins (14 − r) times in 13 and “Lower or same” wins r times in 13 — the current rank pays on both sides. On an Ace or a King one button becomes “Same”, which wins 1 time in 13. Suits are irrelevant to settlement.
What is the house edge in Hi-Lo?
It depends on which button you press. At the client’s 1% configuration, one call followed by a cash-out costs 1.00% on the ×12.87 “Same” and 2.15% on the ×1.06 near-certainty, because the engine floors each payout to two decimals and the floor bites hardest where the fair odds repeat. Pressing buttons at random averages 1.52%.
Why does the Hi-Lo button show ×1.06 and not ×1.08?
The fair price of a 92.31% call is 13 ÷ 12 = 1.0833, which the engine stores as ×1.08. On the first correct call of a run the once-per-run house cut lands in the same move, so the button shows the cut figure, ×1.06. From the second call onwards the same button reads ×1.08 because the cut has already been taken.
Is it better to call the likely side or the long shot in Hi-Lo?
At a 1% setting the less likely side is the cheaper one on ten of the thirteen cards — a 6 and an 8 are the exceptions, and on a 7 both buttons are the same call. The gap is about 0.57 points of house edge between always taking the cheaper side and always taking the more likely one. Neither choice makes the game favourable.
Does a longer Hi-Lo run pay better than cashing out early?
No. Each correct call multiplies the running product by a figure that has been floored to two decimals, so every extra rung adds another small cut. Ten straight ×1.08 calls reach ×2.13 with a 44.91% chance at a 4.33% house edge; sixty reach ×100.24 with a 0.82% chance at 17.72%.
Does skipping a card in Hi-Lo help?
Skipping costs nothing and risks nothing — a new card is dealt, the multiplier and pot stand. But the replacement card comes from the same thirteen ranks and offers the same price list, so skipping only lets you choose which price you pay. It cannot remove the house edge from any call.
- Betkyo engine source: hiloWinSet() at hilo/hiloApi.ts:122–142 (which ranks win each button, ties paying both sides, the “Same” buttons on Ace and King) and hiloOdds() at hilo/hiloApi.ts:70–91 (fair odds = 13 ÷ win-set size)
- Betkyo engine source: uniform rank draw at hilo/hiloApi.ts:32; run accumulation at hilo/hiloApi.ts:202–203 (per-step floor, then floor of product × return); the backend-mirror note at hilo/hiloApi.ts:56–59; the first-call display rule in displayStepOdds() at hilo/hiloApi.ts:65–68; the skip branch at hilo/hiloApi.ts:193–196 and its button at hilo/hiloGame.tsx:376–377
- Betkyo engine source: floor2() at _shared/serverMath.ts:12–14, and the per-game return read at _shared/coinGame.ts:111 with the 0.99 fallback at _shared/coinGame.ts:92
- Exact calculations written for this article: enumeration of all twenty-six buttons against the engine’s win sets, both roundings applied in the engine’s order, single-call and multi-call house edges at 1% and 1.5% settings, and a thirty-million-run simulation of the demo loop as a cross-check



