How we calculate

Methodology

Every probability, multiplier and expected loss on this site comes from one tested calculation engine. Here is how it works and how we check it.

Updated

One engine, no hand-typed odds

All numbers on cashoutodds — on tool pages, in guides and on the homepage — are produced by a single calculation engine at build time or in your browser. We do not type probabilities into articles by hand. If the engine changes, every page changes with it.

Exact arithmetic

The engine never uses floating-point numbers for probabilities or money. It works with exact fractions (big-integer numerators and denominators) and in the theoretical tools (crash odds, Mines, Plinko, expected loss) it only rounds at the very last step, when a value is displayed. The simulators and the risk-of-ruin calculator also model what a real balance does: every winning payout is rounded down to the cent, which can slightly change the balance, the realised return and the ruin probability. Percentages are shown to 2 decimals (round half up); very small probabilities are shown with 2 significant digits; multipliers to 4 decimals; money to cents.

The models

  • Crash: with house edge e, the chance that a round reaches a cash-out target x is (1 − e) / x. At 3% edge, reaching 2× has probability 48.50%; the expected return is 97.00% for every target.
  • Mines: the chance that k picks on a board of n tiles with m mines are all safe is C(n−m, k) / C(n, k). Example: 25 tiles, 3 mines, 5 picks → 49.57%.
  • Plinko: each peg is an independent 50/50 step, so slot i of r rows has probability C(r, i) / 2^r. 16 rows: middle slot 19.64%, edge slot 0.0015%.
  • Sessions: wins over N rounds follow a binomial distribution; we compute the chance of finishing in profit exactly, not by simulation.
  • Risk of ruin: an exact round-by-round calculation (dynamic programming) over every reachable balance, with payouts rounded down to the cent and ruin defined as a balance below one stake.

Provably fair: our documented reference scheme

Our simulators and verifier use the "cashoutodds reference scheme v1": a byte stream from HMAC-SHA256(serverSeed, clientSeed:nonce:counter), read as big-endian 32-bit integers. Crash uses the first 52 bits (bust = max(1, floor(100·(1−e)·2^52 / (2^52 − h)) / 100)); Mines places mines with an unbiased Fisher–Yates shuffle using rejection sampling; Plinko reads one bit per row. Example: server seed cashoutodds-demo-v1, client seed hero, nonce 0 → bust 4.26×. Verify it yourself.

Real games publish their own schemes, which differ from ours. Our verifier explains how verification works; it does not certify any third-party game.

How we test it

  • A written specification, reviewed and approved by an independent panel of three AI reviewers before any code was written.
  • A reference implementation in Python using exact fractions generates 344 "golden" test cases.
  • Two independent TypeScript implementations, written separately, must both match every golden case exactly — and each other on thousands of random inputs.
  • The SHA-256 / HMAC code is checked against the Node.js crypto library; the risk-of-ruin calculation is checked against brute-force enumeration of every possible path.
  • A third, independently written implementation is compared with the reference on hundreds of random cases.

What we don't do

We don't take bets, link to casinos, accept affiliate payments or sell predictions. Game names such as Aviator, JetX or Spaceman are used only to describe what people search for; we are not affiliated with any game provider.