Performance grades
How match data becomes a score in Standard, Ranked and Street Brawl.
- Letter grade
- Your score compared with historical performances for that game mode.
- Match placement
- Your position among players in this match. First place does not guarantee S+.
Street Brawl
Match contribution
Kills, assists and damage are compared across all eight players. Deaths count through time spent respawning; healing and shields are combined.
Round time
Active time is the sum of reported round durations. Drafting is excluded. Time-based contributions use recorded respawn seconds, without a separate kill-timing bonus.
Different rules
The letter uses Brawl-only history, without economy, rank or hero-role weights. Brawl grades stay separate from normal-match player and hero averages.
Contribution weights
| contribution | Weight |
|---|---|
| Kill participation | 20 percent |
| Enemy time removed | 15 percent |
| Survival | 15 percent |
| Objective damage | 20 percent |
| Hero damage | 15 percent |
| Healing and shields | 15 percent |
Weights total 100% with all inputs available. A missing input removes that part for everyone and redistributes its weight; missing is not zero. A grade requires reported round durations and a valid 4v4 roster.
Calculation details & data requirements
Part measurements
- Kill participation
- (Kills + assists) ÷ team kills. Capped at 100% participation.
- Enemy time removed
- Enemy respawn seconds from your kills ÷ active time. Counts only enemies you killed.
- Survival
- 1 − your respawn seconds ÷ active time. Cannot fall below zero.
- Objective damage
- Your boss damage ÷ match-wide boss damage. Share across both teams.
- Hero damage
- Your hero damage ÷ match-wide hero damage. Share across both teams.
- Healing and shields
- (Your team healing + shields) ÷ match-wide combined total. Healing and shielding are combined before dividing.
Time-based parts use recorded respawn seconds. Longer overtime or later-round respawns count naturally, with no extra timing bonus or penalty.
If any player lacks a part’s input, remove that part for everyone and renormalize the remaining weights. Missing is not zero. A recorded zero total contributes no separation.
Impact, calibration & availability
Convert each part to a z-score against all players in this match, clamped to −2.5…+2.5. Placement orders weighted impact, highest first; it does not assign a letter.
impact = Σ(weight × part z) ÷ Σ(available weights)Use the historical mean and population deviation for the exact available part set. Dropping a part changes the spread; the all-part baseline cannot replace it.
historical z = (impact − mean) ÷ deviationscore = clamp((historical z + 3) ÷ 6, 0, 1)Missing round durations mean no impact. A grade also needs a valid 4v4 roster and calibration with at least 30 historical observations and positive deviation. Otherwise no grade or average score is invented; placement can still be available when impact is known.
Complete API-indexed matches supply each supported part combination’s calibration. This sampled window is not the entire player population: balance patches and non-random API coverage can shift it. The shared letters do not imply a normal-mode percentile. No normal-mode economy, rank, archetypes or phases enter Brawl scoring.
Calibration: 900 matches · 7,200 player performances · 32 part combinations. Sep 9, 2026–Oct 8, 2026 (UTC).
Standard & Ranked
What is measured
Combat, farming, objectives, support and frontline contribution. Rates use the full match clock; combat points also account for the phase of play.
What it is compared with
Historical matches by rank and hero archetype, with adjustments for the resources available during each phase.
When no grade is shown
Complete timestamped resource context is required. Missing context is not treated as a neutral baseline.
Archetype weights
- Combat
- Farming
- Objectives
- Support
- Frontline
| archetype | Combat | Farming | Objectives | Support | Frontline |
|---|---|---|---|---|---|
| Gun carry | 61.1 percent | 22.2 percent | 16.7 percent | 0.0 percent | 0.0 percent |
| Spirit carry | 61.1 percent | 22.2 percent | 16.7 percent | 0.0 percent | 0.0 percent |
| Assassin | 72.2 percent | 16.7 percent | 11.1 percent | 0.0 percent | 0.0 percent |
| Vanguard | 45.0 percent | 15.0 percent | 20.0 percent | 5.0 percent | 15.0 percent |
| Guardian | 44.4 percent | 22.2 percent | 16.7 percent | 16.7 percent | 0.0 percent |
| Controller | 47.4 percent | 15.8 percent | 15.8 percent | 21.1 percent | 0.0 percent |
Each row totals 100% of active weight. These weights apply to calibrated performance, not raw stat totals; an absent segment has no influence.
Calculation details
One match clock
Early ends at the first walker (10-minute fallback); mid ends at the first base guardian. All rates use total match duration, so a short phase cannot inflate the score. Phase weights express when combat happened; deaths can subtract points.
Historical precision
Lookup falls back from badge → tier → band → global, trying the hero archetype before the global archetype at each level. Exact badge precision needs the player’s badge captured at match start; team-average rank starts at tier. Sparse bucket calibration can fall back to historical total-point calibration.
Bounded context
Bucket points become z-scores: distance from the historical mean in standard deviations, bounded at −3 to +3. Combat and objectives receive a fitted adjustment from phase-start net worth—the player and other allies relative to opponents—capped at ±0.6 z per adjustment.
Final score & mode coverage
score = clamp((weighted z + 3) ÷ 6, 0, 1)Every active bucket can help or hurt; zero-weight buckets do not affect the grade. The letter comes from the score, not placement. Unknown heroes use fallback weights. Normal-rules Private Lobby games use this same model.
Letter scale
Both modes use these cutoffs, with separate historical baselines. A score of 50 means baseline-level performance, not the 50th percentile. Grades use the unrounded score.
0–<35
35–<43
43–<55
55–<61
61–<68
68–<75
75–<82
82–100