Algorithm Details

Ranking Methodology

Every point explained. No black boxes.

Algorithm Flow

Base Win/Loss
+10 / -8
Location Modifier
x0.70-1.40
Opponent Strength
x modifier
Record Modifier
Opp W/L
Margin Bonus
+0.3 to +4.0
Quality Win Bonus
Top 5/10/25
Efficiency vs Expected
x0.85-1.15
Total Points
Final Score

Each game flows through this pipeline. Hover over any game on a team page to see the exact values at each step.

1
Base Points

Win +10 points
Loss -8 points

Starting point for every game. Modified by all subsequent factors.

2
Location Modifiers

Away Win x1.40
Home Loss x1.40
Neutral Win/Loss x1.15 / x0.85
Home Win / Away Loss x0.85 / x0.70

Road wins are harder. Home losses are worse.

Non-Division 1 Games

Games against non-Division 1 opponents (NAIA, Division II, Division III, USCAA, etc.) are not counted in the ranking algorithm.

Win vs Non-D1
0 points

Wins don't help your ranking

Loss vs Non-D1
0 points

Losses don't hurt your ranking

Why exclude non-D1 games?

  • - Non-D1 teams are not comparable on the same competitive scale
  • - These games are often scheduled as exhibition or tune-up games
  • - Including them would unfairly reward or punish teams for schedule quirks
  • - Focuses the algorithm on meaningful D1 competition

Non-D1 opponents are displayed in gray with a "Non-D1" badge and are not clickable on team pages.

3
Opponent Strength

Opponent strength combines their conference modifier and current ranking:

Opponent Strength Formula
opp_strength = conf_mod × (0.5 + 0.5 × rank_strength)

rank_strength = 1.0 - (rank - 1) / total_teams. Ranges from 1.0 (#1) to ~0.0 (last)

Different formulas apply based on strength threshold:

WIN vs Strong Opponent (str >= 1.0)
modifier = 0.5 + (1.5 × strength)

Example: str=1.2 → modifier = 2.3x

WIN vs Weak Opponent (str < 1.0)
modifier = 0.6 + (0.8 × strength)

Example: str=0.5 → modifier = 1.0x

LOSS vs Strong Opponent (str >= 1.0)
modifier = 0.6 - (0.3 × strength)

Example: str=1.2 → modifier = 0.24x (less penalty)

LOSS vs Weak Opponent (str < 1.0)
modifier = 1.4 - (0.8 × strength)

Example: str=0.5 → modifier = 1.0x (more penalty)

Quality Loss Floor

Loss modifier has a floor of 0.5 to prevent extreme penalties for losses to top teams.

4
Record Modifier

The opponent's win percentage further adjusts the modifier. Beating a team with a winning record is worth more:

Teams above .500
record_mod = 1.0 + (win_pct - 0.5) × 1.2

12-4 team (.750) → 1.3x multiplier

Teams below .500
record_mod = 0.4 + win_pct

4-12 team (.250) → 0.65x multiplier

5
Margin of Victory

Base bonus by margin, then scaled by opponent strength:

1+ pts
+0.3
5+ pts
+0.8
10+ pts
+1.5
15+ pts
+2.5
20+ pts
+3.5
25+ pts
+4.0
Margin Scaling Formula
final_bonus = base_bonus × (0.5 + 0.83 × opp_strength)

Blowouts against weak teams are worth less. Close wins vs strong teams still get rewarded.

6
Quality Win Bonuses UPDATED

Smooth curve bonus for beating top 10 opponents. No arbitrary tiers - each rank matters:

Formula
bonus = (11 - opponent_rank) × 0.4
#1
+4.0
#2
+3.6
#3
+3.2
#4
+2.8
#5
+2.4
#6
+2.0
#7
+1.6
#8
+1.2
#9
+0.8
#10
+0.4

No bonus for opponents ranked #11 or lower. Eliminates arbitrary tier cutoffs.

7
Efficiency Modifier NEW

Compares actual performance vs expected based on opponent strength and location:

Exceeded Expectations

Won by 15 when expected +5 → x1.08

+10 performance × 0.008 = +0.08 modifier

Below Expectations

Lost by 20 when expected -5 → x0.88

-15 performance × 0.008 = -0.12 modifier

Bounds

Efficiency modifier is capped between 0.85 and 1.15 to prevent extreme swings.

Final Week Recalculation

At the end of the season, all games are recalculated from scratch using final week parameters:

Conference Strength

Final week's values (evolved over the season based on cross-conference results)

Opponent Rankings

Final week's rankings (reflecting teams that improved or declined)

Efficiency Stats

Pre-calculated using complete season data for consistent evaluation

This ensures all teams are evaluated consistently using end-of-season data. A November win against a team that later improved to #20 is valued higher than if calculated at the time.

Conference Strength

Dynamic modifiers based on cross-conference results. Updates weekly:

1.15
Big East
1.12
SEC
1.08
Big Ten
1.05
Big 12
1.02
ACC
0.5-1.0
Others

See current values on the Conferences page.

Tiebreakers

1
Head-to-Head
If tied teams played, winner ranks higher
2
Common Opponents
Better record vs shared opponents wins

Example: Duke beats #3 Michigan State 66-60 on the road

Base Win +10.0
Location: Away × 1.40 = 14.0
Opp Strength (1.18, strong) → base mod × 2.27
Record Modifier (MSU 9-1) × 1.74 = 55.2
Margin (+6): base 1.5 × scale 1.48 +2.2
Top 5 Bonus +4.0
Efficiency (expected +6.4, actual +6) × 1.00 -
Total +61.2

See exactly how every team's ranking is calculated

View Rankings