Skip to content
77tests970,000spins open data closed rig 18+
published 2026-09-21 8 min read

Inside One Test: Gates of Olympus, Five Runs, 50,000 Rounds

Every review here is built from logged runs, but what does a run actually look like? This article follows one game, Gates of Olympus, from the first request to the demo server to the published page: what is recorded, what is checked, what is computed, and how five separate runs ended up as one number.

Slot cabinet wired to laboratory instruments on a test bench
Inside One Test: Gates of Olympus, Five Runs, 50,000 Rounds

Every figure on a review page comes from a session that was actually played and written down round by round. This article follows one of them end to end. The game is Gates of Olympus, chosen because it has been tested five times since 3 September 2026, so the same procedure can be seen repeating and disagreeing with itself. Figures about this game are from those five runs and carry their dates; the lab-wide numbers in the text are live, recalculated from the current test set of 77 tests when the page loads.

The build that gets played

A test starts with the provider’s own demo server, not a casino copy. The rig asks the provider’s catalogue for the game symbol, here vs20olympgate, opens a demo session with virtual credits and reads what the server reports about the build: a 6×5 tumbling grid, 20 lines, a 5,000x round ceiling and a single RTP profile of 96.50% for ordinary play, ante play and purchases alike. That profile is the number the review compares against. If the server had reported a lower profile, the review would compare against that instead, because the same title ships in several RTP versions and only the build in front of the test can be measured.

Rules screen of the Gates of Olympus demo build with its RTP and win cap
The build’s own rules screen, captured during the test. Seven pages of it are stored with the review, which is where the declared 96.50% and the 5,000x cap are read from.

One session, ten thousand rounds

The statistical part of a run uses no browser. The rig speaks to the game server directly, one request per round at a fixed stake of USD 2, and waits for the full settlement of each round before sending the next. Gates of Olympus tumbles, so a single round can take several exchanges: the fifth run, played on 21 September 2026, needed 19,695 requests for its 10,000 rounds, 16,797 spins and 2,898 collect calls, and took 52 minutes of wall-clock time. Every request and every response is appended to a log as it happens, 11.5 MB of raw text for that run alone.

Gates of Olympus demo at USD 2 a spin, the stake used for every logged round
The same build in a browser at the stake the test uses. The statistical run plays it without a window; this screen comes from the separate media session described below.

Nothing is sampled and nothing is discarded. A run is exactly the rounds it played, in the order it played them, which is what makes a balance check possible later: the sum of wins minus the sum of stakes has to equal the distance the credit balance actually travelled.

What one round looks like in the log

The raw file keeps the conversation with the server. A second file, the round journal, keeps the reading of it: one line per round with the stake, the settled win, the multiple of the stake, the balance after settlement, how many tumbles the round took, how many requests it needed, the symbols that paid and, when a feature triggered, the full anatomy of it spin by spin.

{"i": 6571, "bet": 2.0, "win": 2233.9, "x": 1116.95, "balance": 101779.8,
 "steps": 33, "requests": 3, "fs": {"triggered": true, "count": 15,
 "win": 2224.9, "x": 1112.45, "spins": [ ... 15 entries ... ]}}
One round of a slot test: a request to the game server and the settled response coming back
One round is one exchange with the game server: the request goes out, the settled response comes back, and both are written to the log before the next round starts.

That line is the largest round of the five runs: round 6571 of run five, where a 100x multiplier orb landed on the thirteenth free spin, lifted the running multiplier from 3x to 103x and turned USD 19.30 of symbol wins into USD 1,987.90. The review’s text about that round is written from this line, not from memory of watching it.

Purchases are a separate sample

Where a game sells its feature, the run buys it 50 times at the listed price, here 100x the stake, USD 200 a ticket. Those rounds never enter the ordinary series: mixing a bought feature into a measured RTP would inflate both the return and the bonus frequency. They are logged in their own file and reported as their own number, the share of the ticket price that came back. Across the five runs of this game that number is 0.98x of price over 250 tickets, with 173 of them below cost, as of 21 September 2026.

A bought feature starting in the Gates of Olympus demo during the media session
A purchase opening the feature during the recorded media session. The statistical purchases run headless in the same way as the ordinary rounds.

A real browser plays the game once

Numbers do not need a screen, but a reader does. After the statistics, a separate session opens the build in a real Chrome window at 1280×720 and plays it: the intro slides, every page of the rules, a stretch of ordinary spins with the wins above a few stakes captured as frames, and one feature recorded from the tab with sound. That video on the review is a real round of this build, not a promotional clip, and the frames in the gallery are stills from the same session. Media rounds are excluded from every statistic on the page, because their stake, their speed and their purpose differ from the measured series.

The checks that run before anything is published

Three of them decide whether a run is usable. The balance check replays the journal against the credit balance and requires the win of every round to equal the change in balance, to the cent, with zero mismatches; a single mismatch means the game’s protocol was misread and the run is not published. The incident log has to be empty: no timeouts, no unknown server actions, no refills mid-series. The parser is tested against the mechanics of that specific game, and for a tumbling game with multiplier orbs that means the orb values on screen have to add up to the multiplier the server applied to the sequence, round after round.

Test logs block of the Gates of Olympus review listing five files per run with checksums
What each run publishes: a spin log, a CSV of rounds, and gzipped JSONL of the raw conversation, the round journal and the purchases, each with its SHA-256.

What gets computed from the journal

The page’s figures are arithmetic on those files, and the formula for each one is on the how we test page: measured return and its approximate 95% band, hit frequency, the longest run of rounds without a win, the distribution of round sizes, the deepest drawdown in bets, how long fixed bankrolls of 50, 100 and 200 stakes survived, the bonus rate in bHz, and the value of the bought features. Nothing on a review page is typed in by hand: the text is written after the numbers exist, every figure in it has to appear in the computed facts, and a check runs over the draft to catch any number that does not.

Five runs on one game

One run of 10,000 rounds is a small sample of a high-volatility game, and this game shows why. The five runs returned 80.16%, 94.41%, 98.61%, 92.14% and 106.53% of stake against the same printed 96.50%, a spread of 26 points between sessions that played identical rules at an identical stake.

Five runs of Gates of Olympus with measured return, 95% band, bonus count and buy value
The run dossier of the review, as of 21 September 2026. Each run keeps its own return, its own uncertainty band, its own bonus count and its own purchase result.
Five separate test runs converging into one pooled line
Five runs joined into one series. The more rounds a game accumulates, the narrower the band around its measured return, while each run keeps its own row on the page.

Joined in order, the 50,000 rounds return 94.37% with a band of 86.0 to 102.8%, and the printed figure sits inside it. That pooled number is the one the page leads with, because it rests on five times the evidence, and the individual runs stay on the page rather than being replaced: a reader who wants to know how far a single session of this game can land from the average can read it off the five rows.

The rest of the picture barely moved between runs. Hits landed on 28.5 to 30.0% of rounds every time, the median winning round was 0.8x throughout, and natural features arrived 113 times in 50,000 rounds, one per 442. What moved was the tail: run five’s 1,112x round is worth about ten points of return on its own, and run one had nothing above 250x.

Verify a run without trusting the page

Each run publishes its rounds as a CSV. Downloading one and recomputing the headline number takes three lines, and the result has to match the figure on the page for that run:

import csv
rows = list(csv.DictReader(open("rounds.csv")))
print(sum(float(r["win"]) for r in rows) / sum(float(r["bet"]) for r in rows))

The same page prints the SHA-256 of every file it offers, so a downloaded copy can be checked against the checksum recorded when the run was published. If the two disagree, the file is not the one the numbers were computed from.

What a test like this cannot tell you

It cannot establish the theoretical RTP of the game: 50,000 rounds is a large sample for a reader and a small one for a design value carried by rare rounds. It cannot say what a specific casino serves, because operators may run a different RTP version of the same title. It cannot predict a session: the five rows above are five answers to the same question, and a sixth run would be a sixth. What it does establish is narrower and checkable: this build, at this stake, over this many logged rounds, returned this much, paid this often, and made a player wait this long between features, with the files to prove each of those statements.