Does the Reverse Labouchère system work?
No. On 20,000 seeded European-wheel sessions, Reverse Labouchère walked away $200 up 71.5% of the time and still lost $91.62 per session on average: −$2.66 for every $100 wagered, the house edge within sampling noise.
How Reverse Labouchère is played
- Write the line 1, 2, 3, 4 and stake the first plus last number, in units.
- On a win, add the stake to the end of the line.
- On a loss, cross off the first and last numbers.
- If the line empties or the next stake would exceed the table maximum, start a new line.
What 20,000 sessions show
Sessions that finished ahead were up $269.80 on average; sessions that finished behind were down $999.91. 28.5% of sessions ended because the next stake no longer fit the bankroll or the table limit.
The reverse version accepts many small cycle losses (each cleared line costs 10 units) in exchange for occasional long winning runs where the stake grows. It turns Labouchère’s rare large loss into frequent small ones.
The median session lasted 50 spins. The median longest losing run was 5 spins in a row (the worst of 20,000 was 21), and one session in ten put at least $285 on the table in a single spin.
European versus American wheel
The same 20,000 seeds, replayed on a double-zero wheel. The second zero roughly doubles the edge to $5.26 per $100 wagered. Measured return goes from −$2.66 to −$5.44 per $100, and the mean session from −$92 to −$199.
| Metric | European (one zero) | American (two zeros) |
|---|---|---|
| Walked away +$200 | 71.5% | 63.0% |
| Busted (stake no longer fit) | 28.5% | 37.0% |
| Hit the 500-spin cap | 0.0% | 0.0% |
| Finished in profit | 71.5% | 63.0% |
| Mean result per session | −$92 | −$199 |
| Median final bankroll | $1,225 | $1,220 |
| 10th / 90th percentile | $0 / $1,330 | $0 / $1,330 |
| Mean amount wagered | $3,444 | $3,664 |
| Return per $100 wagered | −$2.66 | −$5.44 |
The code that produced these numbers
This Lua is the strategy as Engineer mode runs it, inside the same sandbox and kernel. A test in the repository replays it against the bulk generator on fixed seeds and fails the build if the two ever disagree by a single dollar.
-- Reverse Labouchère: Labouchère inverted: append the stake on a win, cross off two numbers on a loss.
-- Session rules shared by every 0xroulette.com/systems page:
-- $5 unit, $500 table max, walk away at +$200, and stop the moment
-- the next stake can't be covered by the bankroll or the table limit.
local UNIT, TABLE_MAX, TARGET = 5, 500, 200
local line
local function reset() line = { 1, 2, 3, 4 } end
local function stake_units()
if #line == 1 then return line[1] end
return line[1] + line[#line]
end
local function place(ctx)
return { { type = "red", amount = UNIT * stake_units() } }
end
local function settle(result)
local units = stake_units()
if result.net > 0 then
table.insert(line, units)
else
table.remove(line, 1)
table.remove(line)
end
if #line == 0 or UNIT * stake_units() > TABLE_MAX then reset() end
end
-- Shared wrapper: enforces the session rules around place/settle.
strategy = {}
local start, stopped
function strategy.setup(ctx)
start, stopped = ctx.bankroll, false
reset()
end
function strategy.bet(ctx)
if stopped or ctx.bankroll >= start + TARGET then
stopped = true
return {}
end
local bets, stake = place(ctx), 0
for _, b in ipairs(bets) do
if b.amount > TABLE_MAX then stopped = true end
stake = stake + b.amount
end
if stake > ctx.bankroll then stopped = true end
if stopped then return {} end
return bets
end
function strategy.on_spin(ctx, result)
if not stopped then settle(result) end
end
Session rules
- Bankroll / unit
- $1,000 / $5
- Exit rules
- walk away at +$200 ($1,200); 500 spins; stop when the next stake exceeds the bankroll or the table maximum
- Table maximum
- $500 per bet
- Seeds
- 20,000 per wheel from master seed
0x6d2e6c8b, identical for every system
Limitations
One bankroll, one unit size, one table limit, and one walk-away target. A bigger bankroll or a higher limit moves where a progression breaks; it does not change the return per dollar wagered. Spins are fair and independent, as on a correctly functioning wheel or a certified RNG. Physical wheel bias is a separate question, covered on Physics.