How a formula works
A points formula turns one player's night into points. It can use these numbers, written in braces:
{players}: players in the game{place}: this player's finish{buy_in}: the buy-in, in dollars{spent}: what they paid in: buy-in + rebuys + add-ons, in dollars{rebuys}: their rebuys{add_ons}: their add-ons (0 or 1){knockouts}: players they knocked out{prize_pool}: the game's prize pool, in dollars
Combine them with + − × ÷ and ^ (powers), and with sqrt, ln, min, max, round and if(test, then, else). A test like {place} <= 3 is 1 when it's true and 0 when it isn't. Points for showing up are added on top, and a formula never scores below 0.
New to points systems? Read poker league points systems first: the presets there are the starting point for most of the ideas below.
The sample night
Every idea is scored on the same game: 10 players, a $20 buy-in, a $240 prize pool. The winner knocked out 3 players, 2nd knocked out 2, 3rd to 6th one each; 5th and 8th rebought once. Points for playing are left out.
Scale with the field
Share of the field beaten
100 * ({players} - {place}) / ({players} - 1)Reads as 100×(Players−Place)÷(Players−1)
100 for a win, 0 for last, and the same scale every night whatever the turnout.
Suits: Leagues whose turnout swings a lot and who don't want a big night to decide the season.
| 1st | 2nd | 3rd | 5th | 8th | 10th |
|---|---|---|---|---|---|
| 100 | 88.89 | 77.78 | 55.56 | 22.22 | 0 |
Square root, capped at 20 players
10 * sqrt(min({players}, 20) / {place})Reads as 10×√(min(Players,20)÷Place)
Grows with the field like square root, but stops growing past 20 players.
Suits: Leagues with one huge night a year (a holiday game) that shouldn't swamp the season.
| 1st | 2nd | 3rd | 5th | 8th | 10th |
|---|---|---|---|---|---|
| 31.62 | 22.36 | 18.26 | 14.14 | 11.18 | 10 |
Log curve, never below 1
max(1, 10 * ln(({players} + 1) / {place}))Reads as max(1,10×ln((Players+1)÷Place))
A steep log curve where even last place keeps 1 point.
Suits: Leagues that like the log curve but don't want deep finishes to score nothing.
| 1st | 2nd | 3rd | 5th | 8th | 10th |
|---|---|---|---|---|---|
| 23.98 | 17.05 | 12.99 | 7.88 | 3.18 | 1 |
Reward deep runs
Final-table points, scaled by the field
max(0, 10 - {place}) * sqrt({players} / 10)Reads as max(0,10−Place)×√(Players÷10)
Only the top 9 score (9 for 1st down to 1 for 9th), and a bigger field scales them up.
Suits: Bigger leagues that want the final table to be what counts.
| 1st | 2nd | 3rd | 5th | 8th | 10th |
|---|---|---|---|---|---|
| 9 | 8 | 7 | 5 | 2 | 0 |
Players outlasted + top-3 bonus
{players} - {place} + 1 + if({place} <= 3, 5, 0)Reads as Players−Place+1+if(Place≤3,5,0)
A point for everyone you outlast, plus 5 for a top-3 finish.
Suits: Leagues that pay the top 3 and want points to follow the money.
| 1st | 2nd | 3rd | 5th | 8th | 10th |
|---|---|---|---|---|---|
| 15 | 14 | 13 | 6 | 3 | 1 |
Bonus for the top quarter
{players} - {place} + 1 + if({place} <= ceil({players} / 4), 5, 0)Reads as Players−Place+1+if(Place≤ceil(Players÷4),5,0)
Like the top-3 bonus, but the bonus places grow with the field: 3 of 10, 5 of 20.
Suits: Leagues whose paid places grow with the field.
| 1st | 2nd | 3rd | 5th | 8th | 10th |
|---|---|---|---|---|---|
| 15 | 14 | 13 | 6 | 3 | 1 |
Winning counts double
if({place} == 1, 2, 1) * 10 * sqrt({players} / {place})Reads as if(Place=1,2,1)×10×√(Players÷Place)
Square-root points, doubled for the winner.
Suits: Leagues that want wins, not steady cashes, to decide the season.
| 1st | 2nd | 3rd | 5th | 8th | 10th |
|---|---|---|---|---|---|
| 63.25 | 22.36 | 18.26 | 14.14 | 11.18 | 10 |
Reward knockouts
Square root + knockout bonus
10 * sqrt({players} / {place}) + 2 * {knockouts}Reads as 10×√(Players÷Place)+2×Knockouts
Square-root points plus 2 for every player you knock out.
Suits: Bounty leagues that want knockouts on the season board, not just in the bounty pot.
| 1st | 2nd | 3rd | 5th | 8th | 10th |
|---|---|---|---|---|---|
| 37.62 | 26.36 | 20.26 | 16.14 | 11.18 | 10 |
Bounty hunter
{players} - {place} + 1 + 3 * {knockouts}Reads as Players−Place+1+3×Knockouts
Players outlasted, plus 3 for every knockout: an aggressive player can outscore a cautious one.
Suits: Loose, action-heavy games.
| 1st | 2nd | 3rd | 5th | 8th | 10th |
|---|---|---|---|---|---|
| 19 | 15 | 11 | 9 | 3 | 1 |
Knockouts count, up to 3
10 * sqrt({players} / {place}) + 2 * min({knockouts}, 3)Reads as 10×√(Players÷Place)+2×min(Knockouts,3)
A knockout bonus that stops at 3, so one big stack can't farm the table.
Suits: Leagues that like the knockout bonus but saw one player run away with it.
| 1st | 2nd | 3rd | 5th | 8th | 10th |
|---|---|---|---|---|---|
| 37.62 | 26.36 | 20.26 | 16.14 | 11.18 | 10 |
Rebuys and money
Log curve, rebuys cost points
max(0, 10 * ln(({players} + 1) / {place}) - 2 * {rebuys})Reads as max(0,10×ln((Players+1)÷Place)−2×Rebuys)
A log curve minus 2 for every rebuy, never below 0.
Suits: Rebuy leagues that want buying back in to cost something besides money.
| 1st | 2nd | 3rd | 5th | 8th | 10th |
|---|---|---|---|---|---|
| 23.98 | 17.05 | 12.99 | 5.88 | 1.18 | 0.95 |
Dr. Neau
sqrt({players} * {buy_in}^2 / {spent}) / ({place} + 1)Reads as √(Players×Buy-in^2÷Spent)÷(Place+1)
The classic: field size and buy-in raise points, what you spent lowers them.
Suits: A starting point to tweak: change the (place + 1), or multiply it by 10.
| 1st | 2nd | 3rd | 5th | 8th | 10th |
|---|---|---|---|---|---|
| 7.07 | 4.71 | 3.54 | 1.67 | 1.11 | 1.29 |
Scales with the prize pool
{prize_pool} / 10 / {place}Reads as Prize pool÷10÷Place
A bigger pot means more points for everyone in it.
Suits: Leagues where the buy-in changes from night to night.
| 1st | 2nd | 3rd | 5th | 8th | 10th |
|---|---|---|---|---|---|
| 24 | 12 | 8 | 4.8 | 3 | 2.4 |
Mistakes to avoid
- Dividing by something that can be 0.
10 / {rebuys}breaks for everyone who didn't rebuy. Wrap it:if({rebuys} > 0, 10 / {rebuys}, 10). - Bonuses bigger than the game. A 10-point knockout bonus on top of a 12-point win makes the season about knockouts, not finishes. Keep bonuses to a fraction of what 1st scores.
- Negative points. A penalty can push a deep finish below 0. Final Table stops at 0, but
max(0, …)makes it plain to everyone reading the formula. - Numbers nobody can check. If the players can't work out roughly what they scored, they won't trust the standings. Simpler usually wins.
Test it before the season
Put the formula through a few made-up nights: a small game and a big one, a winner with no knockouts and one with five, a player who rebought twice. If any of the results surprise you, they'll surprise your players too.