How we simulate crash games — and how we check our own scripts
Every figure in a Chicken Road Productions study comes out of a simulation: one million rounds generated by a documented model, then re-read, recomputed and tested against theory before publication. This page describes that pipeline in full — the model, the five checks we apply to our own scripts, and the limits we declare alongside the results.
Key takeaways
- This page explains how the figures in Chicken Road Productions’ crash-game studies are produced: a documented model, a published generator and a stream of one million rounds.
- Readers get what they need to check every figure without taking our word for it: the formula, the parameters, the seed, the numerical checks and the datasets are public.
- The stream is tested point by point against the values theory fixes exactly: 48.80% of rounds reach 2.00x, against 49.0% expected.
- Before publication, every figure is recomputed independently, from the raw data, by a separate pass from the one that produced it.
- Stated limit: our simulations describe the documented crash-game distribution — not InOut Games’ per-step multiplier ladder, which is not published and which we do not invent.
- 18+ — gambling carries risks of financial loss and addiction: set your limits before you play.
What model produces our simulated rounds?
The model is the documented continuous crash-game distribution (the Bustabit family), as derived by Scott, Sher & Daigle in “Cash or Crash” (UNLV Gaming Research & Review Journal, February 2026). Its survival law reads P(B ≥ x) = RTP / x: the probability that a round reaches multiplier x is the RTP divided by x.
The generator applies that law directly: for each round it draws U uniform on (0,1) and computes B = max(1.00; RTP / (1 − U)). The RTP is 0.98 — the value InOut Games publishes for Chicken Road. Busts are recorded floored to 2 decimals, as games display them: the “1.00” bucket in the data (3.00% of rounds) therefore combines the model’s 2% immediate busts with about 1% of busts landing between 1.00 and 1.01.
The reference stream holds 1,000,000 rounds, generated by Python’s random (Mersenne Twister) with seed 20261013 — the same seed, printed in every study that uses this stream. Changing the seed would change the stream; publishing it makes the stream identifiable and its exact reproduction possible.
How do we check that our scripts are right?
A script that runs proves nothing: it can compute wrongly with complete confidence. Every study therefore passes five checks, none of which comes from the script itself.
1. The formula is derived on paper, inside the script
The generator’s header carries the derivation: starting from B = max(1.00; RTP / (1 − U)), the algebra must land exactly on the published law — P(B ≥ x) = RTP / x, and an immediate-bust probability equal to the 2% margin. If the code’s formula did not produce the documented distribution, the proof would not close.
2. The stream is tested point by point against theory
The generated stream is measured where theory fixes the value exactly — not “roughly”, point by point:
| Check | Measured on the stream (1,000,000 rounds) | Theoretical value |
|---|---|---|
| Rounds reaching 2.00x | 48.80% | 49.0% |
| Rounds reaching 10.00x | 9.80% | 9.8% |
| Rounds reaching 100.00x | 0.975% | 0.98% |
| Median bust | 1.95x | 1.96x |
| Busts recorded at 1.00 | 3.00% | 2% immediate + ~1% between 1.00 and 1.01 |
| Realised RTP by cash-out target | 97.46% to 98.19% | 98% |
The gap between the two columns is the sampling noise of a single stream — even one of a million rounds. It is published as it stands, never smoothed over: a systematic gap, by contrast, would signal an error and block publication.
3. Reproduction is exact, byte for byte
The seed is fixed: re-running the published scripts reproduces every output file byte for byte, verified by hash. The deposited datasets carry checksums, re-verified at every packaging step. An unstable or environment-dependent computation cannot hide behind “it worked on our machine”.
4. Every figure is recomputed independently before publication
House rule: no result is validated in the pass that produced it. Before publication, a separate pass recomputes every figure from the raw data. For the low-cashout cost study, that check took the form of a three-way reconciliation — the article against the summary file, the summary file against the raw stream — with zero discrepancies beyond rounding tolerance.
5. Everything is public: verification does not depend on us
Scripts, seed, parameters and the full datasets are published with the studies — the Zenodo deposits cited below, and downloadable CSVs on the study pages. A journalist, a researcher, a competitor or a reader can re-run the generator and compare the outputs with ours.
What this model does not claim
The documented distribution is not the game itself. Chicken Road is a step-based game whose per-step multiplier ladder InOut Games does not publish; our simulations therefore describe the documented continuous model, never that ladder — we have not invented it, and no figure on this site claims to measure it.
The figures price the game’s margin, and only the margin: bonus value, cashbacks, game-weighting percentages toward wagering requirements and maximum-bet rules are excluded. And because the empirical values come from a single stream, the theoretical values are printed alongside them wherever sampling noise pulls the two apart.
Data, scripts and records
The studies built on this pipeline are deposited, with their datasets, in public archives:
- Study 01 — “Crash game statistics: what 1,000,000 simulated rounds reveal”: the stream itself. Zenodo deposit, DOI 10.5281/zenodo.23597144; the one-million-round CSV also downloads from the study page (direct link).
- Study 02 — “The real cost of low cashout”: the wagering runs computed on this stream. Zenodo deposit, DOI 10.5281/zenodo.23613581; both CSVs — the per-target summary and the 6,000 runs — download from the study page.
- A third study on the same stream — “Is the big multiplier ‘due’ after a bust streak?”: same data, same seed, same checks.
Frequently asked questions
Can I re-run the simulation myself?
Yes. The formula, the parameters and the seed (20261013) are published on this page; the full datasets download from the study pages and the Zenodo deposits. With Python’s random generator set to the same seed, you regenerate the same stream, byte for byte.
Do your figures come from real games played?
No. These are rounds simulated from the documented crash-game model, not rounds measured at an operator. Chicken Road’s real multiplier ladder is not published by InOut Games; we therefore describe the model, and we say so on every page that uses it.
Why is the realised RTP not exactly 98%?
Because a single stream, even of one million rounds, keeps its sampling noise: depending on the cash-out target, this stream’s realised RTP runs from 97.46% to 98.19%. The studies print the theoretical value beside the measured one whenever the gap matters.
How to read this page: this is independent analysis, published for information. It does not recommend buying, using or avoiding any product, and it is not financial advice. Every figure is computed from data published with this study or from the operator's published terms. Chicken Road Productions is funded by affiliate commissions disclosed on this site; no operator reviewed or approved this analysis before publication.
References
- Scott, Sher & Daigle, “Cash or Crash: Return to Player Percentages and Expected Value of Crash Games”, UNLV Gaming Research & Review Journal, vol. 30, February 2026 — source of the distribution model and the survival law used by all our simulations.
- InOut Games, Chicken Road product page — the game’s publisher; source of the published RTP value (98%) used as the model’s parameter.
- Chicken Road Productions, “Crash game statistics: what 1,000,000 simulated rounds reveal”, 2026 — Study 01, Zenodo deposit, DOI 10.5281/zenodo.23597144.
- Chicken Road Productions, “The real cost of low cashout”, 2026 — Study 02, Zenodo deposit, DOI 10.5281/zenodo.23613581.