Win a match and your trophy count climbs. Sometimes it leaps; sometimes it barely twitches. Sometimes you win and the reward feels almost insulting. None of that is mood or randomness — there's a small, well-behaved machine deciding exactly how much your rank should change, and it has been running quietly in the background of competitive games for sixty years. This is the whole thing, taken apart on the table.
01Two numbers, one engine
Every Quizzer player actually carries two skill numbers, not one. There's ELO — a hidden, internal rating used to find you a fair opponent — and there are Trophies, the number you actually see on your profile and the leaderboard. They are not really separate systems. They're the same engine read off two different dials.
Trophies are the player-facing skill rating and the competitive leaderboard value. Players never see ELO terminology; the backend keeps a standard ELO rating internally and trophies move with it. — Quizzer game design principles
The two numbers change by the same amount after every match. The only differences are where they start and a single protective rule at the bottom. Internally, every player begins at an ELO of 1600. On the dial you see, every player begins at 0 trophies. From then on, they rise and fall in lockstep.
02The formula
The math is textbook ELO — the same system chess has used since 1960. For a single player in a match, it's two lines:
Three constants do all the work: a K-factor of 32 (the biggest swing any single match can produce), the classic divisor of 400, and a starting rating of 1600. The actual term is simply your result from your own point of view — 1.0 for a win, 0.5 for a draw, 0.0 for a loss.
The whole idea lives in that last line: your rating moves by how you actually did minus how you were expected to do. Beat the expectation and you gain; fall short and you lose. Which leads to the part that feels intuitive once you see it:
- Beat someone much stronger — the model expected you to lose, so the reward is big.
- Beat someone much weaker — you were supposed to win, so the gain is tiny.
- Lose to someone weaker — that wasn't supposed to happen, so the drop is steep.
- Lose to someone stronger — forgivable; the dip is small.
It's perfectly symmetric. In a 1-vs-1, each side's calculation is run independently against the other player's pre-match rating, so the points one player gains mirror what the other side's math hands back.
03Why you start at zero
If the internal rating starts at 1600, why does your trophy count start at 0? Because trophies are defined as “how far above the baseline you've climbed.” When the system seeds a player, it uses exactly that:
A brand-new player sits at ELO 1600 and therefore 0 trophies. Win a few games and both numbers rise together, the trophy count trailing the ELO by that fixed 1600-point offset. It's the same line on the same graph — just relabelled so the number you see starts at a satisfying, honest zero.
04The floor that protects your number
Here's the one place the two dials deliberately disagree, and it's the most considered decision in the whole system. Trophies can never drop below zero. Internal ELO, however, keeps falling on a loss even when your visible trophies have already hit the floor. That gap is on purpose: it keeps matchmaking honest while protecting the number you care about.
A player sitting at 0 trophies loses a match worth −16. Their trophies stay at 0; the result screen shows a delta of 0. Behind the curtain, their hidden ELO still drops the full 16.
A player at 10 trophies loses −16. Trophies land on 0, and the displayed delta is −10 — clamped to what they actually had, not the full −16.
So near the bottom of the ladder, your visible trophy losses can be gentler than your true rating losses. Anywhere above the floor, the two move in perfect step: trophy delta equals ELO delta, exactly.
05When the numbers actually move
Ratings change at exactly one moment: a match completing — either both players finishing, or a forfeit. When that happens, the backend does the whole update inside a single, all-or-nothing transaction:
- Mark the match complete and record the winner and the reason it ended.
- Read both players' current ELO and trophies.
- Compute each player's ELO delta from the result and the opponent's pre-match rating.
- Apply the trophy change, including the floor clamp.
- Award XP and bump the win / loss / draw and games-played counters.
- Write before / after / delta snapshots for both numbers onto the match record — which is exactly what your result screen reads to show you what changed.
It all runs at the strictest isolation level the database offers, with automatic retries, so two opponents finishing at the very same instant can never corrupt each other's update. Your rating change is atomic: it either happens completely or not at all.
06What doesn't count
It's worth being clear about what cannot tilt the math, because this is where a competitive system earns trust. There are no multipliers. Power-ups never touch the rating calculation:
- A match where you spent brainpower still counts fully and normally toward your trophies.
- Double Down changes a question's displayed points in the heat of the round — it never changes the ELO or trophy delta.
The only three inputs to a rating change are your ELO, your opponent's ELO, and the result: win, lose, or draw. Nothing you can buy, and nothing you can spend, bends that curve.
07Where the number shows up
You'll only ever meet the trophy side of the machine. The leaderboard is sorted by trophies, highest first. Your profile shows your trophy total. The match result screen shows the journey — trophies before, trophies after, and the delta between them. The word “ELO” appears nowhere in the app.
There are no named leagues or tiers stacked on top. The one tier-like idea is a simple global rank decile — “you're in the top 10%, 20%, and so on” — computed straight from where you sit in the standings:
08XP and levels: the other track
Running alongside all of this is a second, completely separate progression — and it's separate by design. Where trophies measure skill and can fall, XP measures time invested and only ever goes up. You earn it just for showing up and finishing:
Your level isn't stored anywhere — it's derived from your total XP whenever it's read. The amount needed to reach the next level grows in a straight line, so each level asks a little more than the last:
| Transition | XP needed |
|---|---|
| Level 1 → 2 | 1,100 |
| Level 10 → 11 | 2,000 |
| Level 50 → 51 | 6,000 |
| Level 100 → 101 | 11,000 |
The split is the whole point. Trophies are zero-sum and can drop — they answer “how good are you right now?” XP and levels are monotonic — they answer “how much have you played?” Neither one pretends to be the other.
09The questions have ELO too
One last, slightly delightful detail: players aren't the only things with a rating. Every question carries its own ELO — same K of 32, same 1600 starting point — to measure how hard it really is. It updates on every answer, with the result flipped relative to the player:
- Answer a question correctly and the question “loses” to you — its rating drops, marking it a little easier.
- Answer wrong and the question “wins” — its rating rises, marking it harder.
From that self-calibrating number we read the difficulty you see on the card — earned from thousands of real attempts rather than an author's guess:
Quizzer rates players with a hidden, standard ELO — start 1600, K-factor 32, divisor 400. Every 1-vs-1 match produces a delta from the two players' pre-match ratings and the win / lose / draw result, with no power-up multipliers anywhere. That same delta moves a player-facing trophy count, which starts at 0 and is floored at 0 — and at that floor, displayed losses are clamped while the hidden ELO keeps dropping, so matchmaking stays accurate. Trophies drive the leaderboard and every visible rank. A parallel, non-competitive track grants +100 XP per game (+25 for a win) and derives levels from total XP on a gently rising curve. And the questions carry their own ELO, so difficulty calibrates itself.