MATH OF LUCK

Plinko, priced: why the middle bucket pays ×0.2 and the edge pays ×1,000

Illustration for “Plinko, priced: the binomial behind every board”
A Plinko ball bounces left or right at every row with equal chance, so the bucket it lands in is a binomial count: on a board with n rows, bucket k is reached with probability C(n, k) ÷ 2ⁿ. On the 16-row board the centre bucket takes 19.6% of drops and each ×1,000 edge bucket 1 in 65,536. Weighting the engine’s multiplier tables by those probabilities, every one of the 27 boards returns about 99% of what is dropped — the risk setting changes how the 1% is collected, not how much. Low risk pays close to ×1 most of the time; high risk pays ×0.2 on most drops and hands the difference to the edges. The multipliers are read from the game source (plinko/plinkoApi.ts); the probabilities are arithmetic.
BETKYO RESEARCHPUBLISHED 2026-09-04UPDATED 2026-09-049 MIN READ

A coin per row

Strip the pegs and the bouncing ball off a Plinko board and what remains is a coin. At each row the ball goes right or left; after n rows it has gone right some number of times between 0 and n, and that count is the bucket it lands in. Nothing about the physics changes the arithmetic — the animation exists to show you a path, and any path with the same number of right-bounces ends in the same bucket.

ENGINE-VERIFIEDplinko/plinkoApi.ts: “the bin index equals the number of right-bounces, so any path with that many rights lands identically.” In demo play the bin is derived by adding 1 to result on each of the rows iterations where Math.random() < 0.5; makePath() then draws a route with exactly the same number of right-bounces, shuffled so the ball meanders. ROW_MIN = 8, ROW_MAX = 16, RISKS = LOW / MEDIUM / HIGH.

A count of fair coin flips has a name: it is binomially distributed. The probability of landing in bucket k on an n-row board is C(n, k) ÷ 2ⁿ — the number of paths with k rights divided by the number of paths altogether. That is the whole probability model of the game, and every number below follows from it.

Where the ball goes on a 16-row board: 65,536 equally likely paths
BUCKET (RIGHTS)PATHSPROBABILITYHIGH-RISK PAYLOW-RISK PAY
0 or 16 (the edges)1 each1 in 65,536 each×1,000×16
1 or 1516 each1 in 4,096 each×130×9
2 or 14120 each1 in 546 each×26×2
3 or 13560 each1 in 117 each×9×1.4
4 or 121,820 each2.8% each×4×1.4
5 or 114,368 each6.7% each×2×1.2
6 or 108,008 each12.2% each×0.2×1.1
7 or 911,440 each17.5% each×0.2×1
8 (the centre)12,87019.6%×0.2×0.5

Paths are binomial coefficients C(16, k). The multipliers are the engine’s 16-row tables, which are symmetric, so each row of this table covers a mirrored pair of buckets.

Every board returns about 99%

Multiply each bucket’s multiplier by its probability and add the products, and you have the expected return of a drop. Done for all 27 boards in the source file, the answer barely moves.

Expected return per drop, computed from the engine’s multiplier tables and the binomial bucket odds
ROWSLOWMEDIUMHIGHCHANCE OF THE EDGE BUCKET
898.98%98.91%99.06%1 in 256
1099.00%98.91%99.06%1 in 1,024
1298.98%98.99%99.12%1 in 4,096
1499.00%98.99%98.98%1 in 16,384
1699.00%98.99%98.98%1 in 65,536

Odd row counts sit in the same band (98.9–99.2%). The exception is discussed below.

ENGINE-VERIFIEDplinko/plinkoApi.ts, PLINKO_MULT: the three tables L, M and H keyed by row count 8–16, “verbatim from the pixi config so the rendered bins match the server’s payout exactly”. Examples: H[16] = [1000, 130, 26, 9, 4, 2, 0.2, 0.2, 0.2, 0.2, 0.2, 2, 4, 9, 26, 130, 1000]; L[16] = [16, 9, 2, 1.4, 1.4, 1.2, 1.1, 1, 0.5, 1, 1.1, 1.2, 1.4, 1.4, 2, 9, 16]; M[8] = [13, 3, 1.3, 0.7, 0.4, 0.7, 1.3, 3, 13]. Each expected return above is Σ multiplier × C(rows, k) ÷ 2^rows over the table’s buckets.

So the risk switch is not a price switch. Low, medium and high all give back about the same 99 cents on the dollar over many drops; what they change is where the missing cent is taken from. Low risk takes it as a ×0.5 centre bucket on an otherwise near-fair board. High risk takes it by paying ×0.2 on the five or six central buckets — which together catch four drops in five on a 16-row board — and spending what that saves on the edges.

What a typical drop looks like on the 16-row board
LOW RISKHIGH RISK
Share of drops that lose money (multiplier below ×1)19.6%79.0%
Most likely outcome×0.5 (the centre, 19.6%)×0.2 (buckets 6–10, 79.0%)
Chance of at least ×91 in 1,928 (the ×9 and ×16 buckets)1 in 47 (the ×9 to ×1,000 buckets)
Chance of the top bucket1 in 65,536 (×16)1 in 65,536 (×1,000)
Expected return99.00%98.98%

Rows change the shape, not the price

Adding rows sharpens the binomial: the centre becomes relatively narrower and the edges become far rarer. On 8 rows the edge bucket is 1 in 256; on 16 it is 1 in 65,536, two hundred and fifty-six times rarer. The multiplier tables track that curve almost exactly — the high-risk edge goes from ×29 to ×1,000, a factor of 34, while its probability falls by 256, so the edge bucket is worth less per drop on a tall board than a short one, and the central buckets make up the difference.

  • Short boards concentrate value in the edges. On 8 rows high risk, the two ×29 buckets alone contribute 22.7 points of the 99.06% return.
  • Tall boards concentrate value in the shoulders. On 16 rows high risk, buckets 1 through 5 on each side — ×130 down to ×2 — carry most of the return; the two ×1,000 buckets contribute about 3 points between them.
  • The centre is a tax on every board. At every row count and every risk setting, the most likely bucket pays below ×1. That is where the edge lives, and it is why a long session of Plinko feels like a slow leak punctuated by rare spikes.

This is the same lesson as the minefield’s one fraction and the keno risk dial: the operator publishes a table, the table implies a return, and every knob the player is given redistributes that return across outcomes without changing its total. A game that let the knob change the total would be one where a setting was simply better than the others; a well-built one makes every setting cost the same and lets the player choose the shape of the ride.

One cell that did not fit

Pricing every table by hand turned up one anomaly, and it was worth reporting rather than hiding. Twenty-six of the twenty-seven tables are left-right symmetric, as a fair coin demands. The 9-row high-risk table was not: it listed ×0.6 in the fourth bucket from the left and ×1.6 in the mirrored bucket on the right. Priced as printed, that board returned about 115% — a board that pays the player — which is not something any operator ships on purpose.

ENGINE-VERIFIEDplinko/plinkoApi.ts: H[9] now reads [43, 7, 2, 0.6, 0.2, 0.2, 0.6, 2, 7, 43]. The seventh entry read 1.6 until 4 September 2026; the 0.6 its mirror image implies gives an expected return of 99.06%, in line with every other board. The client file states the tables were copied verbatim from the pixi configuration and that the server’s payout is authoritative.

The same ×1.6 sat in the older pixi configuration the React table was copied from, so it was never a slip between the two client files; it was a cell both of them inherited. The file itself says which side wins a disagreement: the server pays what the server’s table says, and the client’s tables exist to draw the buckets. Whether the server’s cell read 0.6 or 1.6 was not visible from here, so this article asked the game team to check.

It read 1.6. The row had carried it since the payout table was first written, and the board really was returning 115.469% — the arithmetic above, not a client-side display quirk. The cell has since been corrected in both client tables, in the seeded schema, and in the databases the game reads on every drop, and a test now holds all twenty-seven boards to their own mirror symmetry and to the 99% band, so the same slip cannot come back unnoticed. Nothing had to be unwound: no drop had ever landed on 9-row high risk, which takes moving both the risk and the rows selector to reach. That is the argument for publishing tables at all — an error in a printed table can be found by a reader with a calculator, and an error in a hidden one cannot.

What the fairness ticket shows, and what it does not

Plinko here is one of the house games whose landing bucket is chosen on the server and returned with the bet, together with the seed-pair nonce the drop drew on; the client animates a path into that bucket. The seed panel shows the same committed server-seed hash and client seed as every other original, and the ticket for a round carries the nonce, so a drop can be tied to a specific committed pair and round number.

ENGINE-VERIFIEDplinko/plinkoApi.ts: the /bet response carries result (landing bin, 0..rows), multiplier, and nonce (“the seed-pair nonce this drop drew on; null in demo, which has no pair”); the ticket type carries clientSeed, serverSeedHashed and nonce. _shared/useSeedPair.ts: the pair is per user and global across every original, shared by the house games that never had a seed panel of their own (dice, plinko, mines, hilo, rps, baccarat, slot).

What this article can and cannot claim should be said exactly. The multiplier tables are read from the source and the bucket probabilities are arithmetic on a fair per-row coin, which is what the demo implements and what a Plinko board means. The server-side function that turns a seed pair and nonce into a bucket is not in the client repository, so the live draw is verified through the ticket and the committed seed rather than by reading its code here — the same boundary the verification walkthrough draws for the other house games. Everything priced above is a property of the published table; the ticket is where you check that a given drop honoured it.

Plinko, with the tables in the source
Eight to sixteen rows, three risk settings, every bucket priced above
Plinko →
FAQ

What are the odds of hitting the ×1,000 bucket in Plinko?

On the 16-row high-risk board, 1 in 65,536 for each edge bucket — 2 in 65,536 for either edge. The ball must bounce the same way on all sixteen rows.

What is the RTP of Plinko?

Computed from the engine’s multiplier tables and binomial bucket odds, every board returns between about 98.9% and 99.2% per drop, low, medium and high alike. One board — 9 rows on high risk — sat outside that band on a mirrored cell that was out of place. It was found while this article was being written, reported, and corrected on 4 September 2026; the article says what it was.

Does high risk have a worse house edge than low risk?

No. The expected return is about 99% on both. High risk pays below ×1 on about four drops in five and concentrates the value in the rare edge buckets; low risk pays close to ×1 on most drops. The total is the same; the shape is different.

Do more rows improve the odds?

They do not change the return, which stays near 99% at every row count. More rows make the edges rarer and the multipliers larger in step, so the ride gets spikier without getting cheaper or dearer.

Why does the middle bucket pay less than ×1?

Because it is where the ball most often lands — 19.6% of drops on 16 rows, more on shorter boards — and a game that paid ×1 or better there could not afford its edges. The centre is where the house edge is collected on every Plinko board.

Can I verify a Plinko drop?

Each live drop returns the landing bucket and the nonce it drew on, and the seed panel shows the committed server-seed hash and your client seed; the ticket ties a drop to that pair and round. The server-side derivation itself is not in the client code, so verification runs through the ticket and the commitment.

SOURCES & REFERENCES
  • Betkyo game source: plinko/plinkoApi.ts — PLINKO_MULT tables (L, M, H for 8–16 rows), the bin-equals-right-bounces rule, the demo bin derivation and the /bet and ticket shapes; _shared/useSeedPair.ts for the shared seed pair
  • All probabilities in this article are binomial counts C(rows, k) ÷ 2^rows for a fair per-row bounce; expected returns are the multiplier tables weighted by those counts. No figure is taken from a third-party odds page.
THE GAMES IN THIS ARTICLE
Betkyo Research — written by the team that builds these games. Every probability quoted in the Journal is derived from our engine source or a cited reference, never copied from another site. Figures are re-checked whenever the engines change.

18+ · PLAY RESPONSIBLY · THE JOURNAL IS EDITORIAL CONTENT, NOT BETTING ADVICE