The Outlier

By Me, Ethan!

What is The Outlier

The Outlier finds the most unusual performances in basketball games. When a team or player steps far outside the average performance, that's what really determines the outcome. The Outlier finds these stats for you, and displays them neatly ranked from 1-10, with 1 being the most impactful performance. For example:

It's like a data-driven sports highlight reel - that you can read. Showing you what was genuinely weird or special about each game, not just who scored the most points.

Scoring Overview

Scoring formula

Each player stat is measured as a z-score relative to both the player’s own season averages and the league’s averages. The final hybrid score blends these components:

// compute player z-score and league z-score
player_z = (actual - player_mean) / player_std
league_z = (actual - league_mean) / league_std

// combine using configured weights
combined_z = player_weight * player_z + league_weight * league_z

// apply stat weight for final score
weighted_score = combined_z * stat_weight

Stat Weights

Not all stats influence game outcomes equally. To reflect their impact, each stat is multiplied by a stat weight in the scoring formula. Higher-weighted stats contribute more heavily to outlier ranking.

Why this method

The hybrid model balances two important perspectives: individual consistency and league-wide rarity. A performance might be ordinary for one player but extraordinary in the league context—or vice versa. Weighting both helps highlight the most meaningful statistical outliers without overreacting to small-sample noise.

Example

If a player who averages 8 points (std 4) scores 24 in a game, their player_z = (24−8)/4 = 4.0. With player_weight = 0.6, league_weight = 0.4, and a stat weight of 1.2, that game becomes a significant positive outlier that rises to the top of the rankings.

Back to Home

Stat Weights & Detection Rules

Each statistic is evaluated using custom thresholds and multipliers to determine whether a performance is a meaningful outlier. More impactful stats receive higher weights, while less predictive or negative stats (like turnovers or fouls) receive lower or negative weights. Here's the actual thresholds and values I currently have applied (open to suggestions).

Stat Player Threshold (Z) Team Threshold (Z) Weight Minimum Raw Difference
Counting Stats
PTS0.51.21.25
AST0.51.01.24
OREB1.01.01.54
DREB1.01.01.24
STL1.21.20.83
BLK1.01.01.03
TOV1.01.0-1.03
PF0.50.5-0.63
Shooting – Made Shots
3PM0.50.51.33
FTM0.81.00.85
Shooting Percentages
3P%1.51.21.50.30
FT%1.21.00.80.08
TS%0.51.52.50.10
Advanced Metrics
AST/TO0.31.0-4
AST%1.2-1.00.05
REB%0.31.0-0.10
PLUS MINUS1.01.00.75
Team-Only Advanced Metrics
OFF RATING1.01.53
DEF RATING1.0-1.53
PACE1.01.57
PTS OFF TOV1.02.53
PAINT PTS1.01.54
FASTBREAK PTS0.32.04
SECOND CHANCE PTS1.01.84