StackFight

How scoring works

read this first
These are opinions, not benchmarks. A rating says what people picked when shown two options, which is a different claim from "this one is better", and a much smaller one.

Elo, the chess kind

Everything starts at 1,500. After a vote, the winner takes points off the loser:

expected_winner = 1 / (1 + 10 ^ ((loser_elo - winner_elo) / 400))
delta           = round(K * (1 - expected_winner))

winner_elo += delta
loser_elo  -= delta

Beating something rated far above you pays more than beating something below you. The delta is rounded once and applied to both sides, so a pair is always zero-sum: the winner's gain is exactly the loser's loss, and ratings never inflate.

One K per pair

K is 32 while either side is under 30 votes, and 16 once both are past it. New contenders move fast; settled ones stop lurching.

The trade, stated plainly: a newcomer can't move fast while its established opponent stays still. A newcomer's matchups move fast for both sides. That's the price of the pair staying zero-sum.

Two ratings, never blended

Every contender carries two: one from every vote, one from signed-in voters only. A signed-in vote moves both. There is no weighting and no multiplier, so no vote is ever worth more than another — and there is nothing to farm. "Rails leads overall, Django leads among verified devs" is a real thing this can say.

One vote per pair

Your vote on a given pair counts once. We store a hashed fingerprint — a random token from your browser plus your IP, run through a keyed hash. The raw IP is never stored, and nothing links a fingerprint to an account. Vote again on the same pair and it's recorded, but it moves nothing.

Past 30 votes a minute you get a cooldown card. That's faster than anyone can read two logos, so nobody legitimate will see it.

Sponsorship buys exposure

A sponsor slot puts a logo in the rail. It cannot buy a vote or an Elo point, and there is no column in this database that would let it. The moment sponsors can buy wins, the leaderboard stops being data.

back to the arena