How Virtual Horse Racing Works
A virtual horse race looks like a broadcast, but it is a draw. This page follows one race from the race card to the payout.
The race cycle
One virtual horse race takes about 65 seconds from the first bet to the next race card.
Step 1. The field is drawn
Each race gets eight horses with names, saddlecloth numbers and silks. Each horse also gets a strength: its chance of winning. The server draws these at random, so most races have one or two strong horses, a few weak ones and the rest in between. The weakest horse keeps at least a 2.5% chance.
Across 100,000 test races the favourite won 28% of the time. Its win odds usually sat between 2.36 and 4.55, and the outsider's between 14.7 and 36.8.
What the form figures mean
The race card shows each horse's last five finishes, such as 2-1-4-1-3. They come from five practice draws with today's strength. A horse with a run of 1s and 2s is strong in this race. Horses do not carry over between races, so treat form as a hint about today, not a career record.
Step 2. Odds come from probabilities
The game uses the Harville model, the standard way to turn win chances into finishing orders. The winner is drawn by strength. Second place goes to one of the remaining horses, again in proportion to strength, and so on down the field.
The model gives an exact probability for every bet. For a forecast on horse A to win and horse B to finish second:
P(A then B) = pA × pB ÷ (1 − pA)
Say horse A has a 30% chance and horse B a 20% chance. P = 0.30 × 0.20 ÷ 0.70 = 0.0857. Fair odds would be 11.67. The forecast market returns 88%, so the price is 0.88 ÷ 0.0857 = 10.27, rounded down to 10.26.
Each market has its own return to player. The full table and the test results are on the odds and RTP page.
Step 3. The draw happens when betting closes
When the countdown reaches zero, the server stops taking bets and requests numbers from a cryptographic random number generator (the Web Crypto API built into Node.js). Those numbers pick the finishing order, using the same strengths that set the odds.
Nothing gets decided earlier. During the betting window the result does not exist on the server, in your browser or anywhere else, so nobody can look it up. That includes us.
Your browser draws nothing. It shows what the server sends.
Step 4. The animation follows the result
Once the order is known, the server writes a race script. Each horse gets a finish time: the winner at about 24 seconds, the others behind it by gaps between 0.02 and 0.6 seconds. About 15% of those gaps are under 0.06 seconds, which gives you the occasional nose finish.
Along the way each horse gets its own pace. Some go fast early and fade. Others close with a late run. The script guarantees one thing: horses cross the line in the drawn order. A horse can lead at halfway and still finish last, as happens in real racing.
Step 5. Bets settle
When the last horse finishes, the server checks every bet against the result. A winning bet pays stake × odds, at the price shown when you placed it. Prices do not move after you bet.
Stakes run from 1 to 500 credits per selection, with up to 20 selections on one slip. A single bet pays at most 100,000. The race then joins the results archive and the leaderboard updates.
Can you predict a virtual horse race?
No. Each race is a fresh draw. Past results do not affect the next one, and no number pattern repeats. What you can read is the price: a horse at 2.50 wins far more often than a horse at 25.00. The odds already include the house margin, so over many races every staking plan returns about the market's RTP.
Systems sold as a way to beat virtual horse racing cannot change this. Bet for fun, with amounts you are happy to lose.
How this compares with commercial virtual horse racing
Bookmakers buy virtual horse racing from suppliers such as Inspired Entertainment, Sportradar (Betradar), Kiron Interactive and Golden Race. Their races use 3D graphics, TV-style camera angles, commentary and bigger fields. The principle matches this game: a random number generator draws the result and the video shows it.
Commercial operators set their own margin per market, and players rarely see it. Sportradar's documentation, for example, lists a 90% RTP for its default win market. We publish the margin for every market and the bet types page shows what each one pays.