How It Works
The actual formulas behind your verdict, with a worked example
"Losers queue" is a community theory, not something Riot Games publishes or confirms — matchmaking is a black box. This tool doesn't see the matchmaker's decisions; it does arithmetic on the outcomes of your last 20 ranked games, comparing your team to the enemy one role at a time. Below is every formula it runs, in order, finishing with a full numeric example so you can check the math yourself.
1. Per-player metrics
For every participant in every one of your last 20 Solo/Duo ranked games, four rate stats are computed from the raw match data (t = game length in minutes):
Vision score is taken straight from the match data as a fifth metric.
2. Pairing players by role
Players are then matched up role against role — top vs top, jungle vs
jungle, mid vs mid, bot vs bot, support vs support — using the position Riot records
for each participant (teamPosition, falling back to lane/role on older matches).
This matters more than it sounds. Averaging four teammates into one number and comparing it against five enemies mostly measures role mix: a support's ~1.2 CS/min sitting next to an ADC's ~8 averages into a figure that describes nobody, and a game where your support roamed while theirs farmed shows up as a gold gap that never existed. Two players in the same role are doing the same job, so the gap between them means something.
The pair containing you is set aside as your own lane matchup (section 7) and never counts toward the verdict — the question is what the matchmaker gave you, not how you played. So a verdict normally rests on the 4 remaining roles, and on games where you filled a different position, each role is scored from however many games it was actually paired in.
Support is reported but not scored, unless support is a role you played in at least one of the games analysed. The thresholds in section 4 are absolute gaps calibrated for players who farm and deal damage; a support pair trips them on style rather than skill. One support roams while the other sits bot, and the gold, damage, CS and ward-score gaps that follow say which support picked which job — not which team got the weaker player. For someone who never queues support, that's noise with a vote on their verdict, so it's removed from the score. Its numbers still appear in full in the comparison chart, marked as not counted.
3. Averaging each role pair
For a role r paired in n games, each of the five metrics is averaged across those n games, once for your side and once for theirs:
4. Scoring one role
For each of the five metrics, we take diff = avgAlly − avgEnemy and convert
it into points, using a "dead zone" so small gaps are ignored:
| Metric m | Weight w | Threshold t |
|---|---|---|
| KDA | 35 | 0.3 |
| Gold / min | 25 | 20 |
| Damage / min | 20 | 50 |
| CS / min | 10 | 0.5 |
| Vision score | 10 | 2 |
Each metric can swing a role's score by its full weight in either direction, so
score(r) runs from −100 (your player lost that matchup on
everything) to +100. The weights are the same for every role, and for the four
scored roles they don't need to be role-specific: comparing like with like already handles it.
A jungler isn't punished for farming less than a mid, because the number they're measured
against is another jungler's.
The dead zone is an absolute gap, though, and that's exactly where support breaks down. A 2-point ward-score threshold is meaningful between two ADCs and meaningless between two supports who end games on 40 and 70; a 20 gold/min gap separates a roaming support from a lane-sitting one rather than a worse player from a better one. Rather than invent a second set of support-specific thresholds and pretend they're calibrated, support is scored only for the players who actually play it (section 2).
5. Combining the roles
The scores of the counted roles are averaged into one performance score, weighted by how many games each role was actually paired in, so a role seen twice can't outweigh one seen twenty times:
The result stays on the same −100 … +100 scale. Alongside it we count how many roles came out ahead and behind — that's the "enemies win 3 of 4 role matchups" line above the chart, and the worst role is the one named in the verdict. An uncounted support is absent from all of it: it can't be the worst role, and it isn't in the denominator.
6. The teammate streak signal
A single bad game is noise, so we also look at each unique teammate's own last 3 ranked games (independent of the game they played with you) and tally wins/losses across all of them:
A teammate counts as "on a losing streak" if they lost more of their last 3 than they won, and vice versa for "winning streak." The adjustment is added straight onto the score from step 5.
7. Turning the score into a verdict
The final score = performanceScore + adjustment is read together with your
own win rate W = wins / totalGames over the 20 games. Both must point the
same direction:
8. Worked example
Here's a full run through the formulas above. You played mid in all 20 games, so your own lane is set aside — and since you never queued support, the support pair is measured and shown but left out of the score. That leaves three scored roles. Bot was only paired in 18 of the games (two remakes had no recorded position for it):
| Role | Games | KDA | Gold/min | Dmg/min | CS/min | Vision | score(r) |
|---|---|---|---|---|---|---|---|
| Top | 20 | −0.1 → 0 | −5 → 0 | +20 → 0 | +0.2 → 0 | −3.0 → −10 | −10 |
| Jungle | 20 | −0.9 → −35 | −48 → −25 | −140 → −20 | −1.1 → −10 | −4.2 → −10 | −100 |
| Bot | 18 | −0.6 → −35 | −30 → −25 | −80 → −20 | −0.3 → 0 | −1.4 → 0 | −80 |
| Support (not counted) | 20 | −0.4 → −35 | −24 → −25 | −55 → −20 | +0.1 → 0 | −6.0 → −10 | (−90) |
That's exactly the math behind a "Losers Queue Detected – High confidence" result: the teammates you were given lost their own role matchups, their recent form points the same way, and your win rate over the sample backs it up. Note that Top being roughly even doesn't rescue the verdict — but it does keep the score off −100, which a pooled team average would have hidden entirely. Counting that −90 support would have read −69.7 instead of −62.8: a worse-looking verdict built on the one pair whose gaps we can't honestly attribute to skill.
9. The self-check
Before blaming the team, your own numbers are checked against the enemy who played your role — your direct opponent, not teammates doing a different job. With K = KDA and D = damage/min:
The same numbers power the "Your lane" tab in the comparison chart, so you can see the matchup that produced the message.
10. Honest limitations
This is arithmetic over public match history, not access to Riot's matchmaking algorithm — nobody outside Riot has that. Twenty games is a small sample, role pairing depends on the position Riot records for each player, five stats can't capture objectives or macro play, and a losing stretch can just as easily be variance or tilt as "the system." Leaving support out of the score is a deliberate trade too: a genuinely lost support matchup won't show up in your verdict unless support is a role you play. Treat the verdict as a fun, data-backed talking point, not a diagnosis.