I got tired of KenPom's paywall.
So I built my own ratings model.

Ridge-regression efficiency ratings for all 365 D-I teams, updated every morning after games finish. Game spreads, player BPM, and 11 seasons of data if you want to go deep.

365
D-I Teams Rated
11+
Seasons of Data
5k+
Games Modeled
Free
Every Feature, For Now

Current Top 10 by Adjusted Net Rating

Points per 100 possessions above average, adjusted for schedule strength. Updated end of 2024–25 regular season.

#
Team
Conf
Net Rating
Record
1
Duke
ACC
+32.4
28–6
2
Florida
SEC
+29.8
30–4
3
Auburn
SEC
+27.6
27–7
4
Tennessee
SEC
+25.9
26–8
5
Alabama
SEC
+24.3
25–9
6
Houston
Big 12
+23.1
27–7
7
Iowa State
Big 12
+21.8
25–8
8
Kansas
Big 12
+20.4
24–9
9
Kentucky
SEC
+19.7
23–10
10
Gonzaga
WCC
+18.9
25–7

What's inside

Free

Adjusted Efficiency Ratings

Offensive and defensive efficiency per 100 possessions, adjusted for schedule strength. See which teams are actually good versus who just played bad schedules.

Free

Spread Model & Win Probability

My projected spread for every game, built from the efficiency delta, pace, home court, and rest days. Shown alongside win probability so you can see both the margin and the confidence.

Free

Player Box Plus/Minus

BPM for every player with enough minutes. It estimates per-100-possession contribution from box score stats alone, which is useful for finding players who don't show up in the scoring column.

Free

Transfer Portal Tracker

Roster changes with projected production impact. I find this useful in the offseason when trying to figure out which teams actually got better or worse.

Free

H2H Matchup Explorer

Pick any two teams and compare efficiency, pace, style, and history head-to-head. I use this before tournament games more than anything else on the site.

Free

11 Seasons of History

Efficiency ratings going back 11 seasons for every program. Useful for putting a team's current run in context. Is this a rebuilding year or the new baseline?

How the model works

The core is a ridge-regression model fit on every game result from the season. It jointly estimates offensive and defensive efficiency for all 365 teams at once, rather than calculating each team independently.

The "ridge" part adds a shrinkage penalty that pulls extreme estimates back toward average, which matters a lot early in November when you've seen six games. As the season goes on and samples grow, the model trusts the data more and shrinks less.

Spreads are built on top of the efficiency gap between teams, adjusted for pace, home court, and rest. It's not magic, and Vegas still has the edge, but it works as a reasonable second opinion.

Ridge Regression Schedule Adjustment Pace Neutral Home Court Factor Margin Scaling Player BPM

Free right now. Freemium later.

Every tool on the site is free while the app is in beta. Down the road, likely next season, a few of the heavier betting tools will move behind a low-cost membership. The core ratings will always stay free.

Available now
Free during beta
$0

No account, no card, no catch. Open the app and use all of it.

  • Adjusted ratings for all 365 teams
  • Team profiles, rosters, and player BPM
  • Game spreads and win probability
  • Transfer portal and recruiting
  • Conference dashboard and matchups
  • 11 seasons of historical data
Open the app
Planned membership
Later

A low monthly plan that helps cover data and hosting. Targeted for next season. Nothing is locked today.

  • Daily betting picks and edges
  • A few advanced betting tools
  • Alerts for your favorite teams
  • Core ratings stay free, always
Read the FAQ

Common questions

Short version: points scored or allowed per 100 possessions, adjusted for who you played. A team that goes 20-0 against a weak schedule looks very different from one that went 20-0 against a brutal schedule, and adjusted ratings capture that difference. We use ridge regression to keep things stable, especially early in the season when you've only seen a handful of games.
Honest answer: similar spirit, different execution. KenPom has been refining his four-factor model for 20+ years and it's great. Barttorvik (T-Rank) is also excellent and mostly free. LangIndex uses ridge regression that jointly estimates every team's efficiency at once, with automatic shrinkage toward the mean for small samples. Whether it's "better" depends on what you're doing with it. Having multiple independent models to compare is the real value.
BPM estimates a player's per-100-possession impact using only box score stats like points, boards, assists, steals, blocks, turnovers, and fouls. Zero is an average D-I player. The best players in the country are in the +8 to +10 range. It's a rough tool but useful for finding players who contribute in ways that don't show up in scoring totals.
Every morning during the season. After the previous night's games are in, the model re-runs on all results through that date. So if Duke and Carolina played Tuesday night, both teams' ratings update Wednesday morning. Preseason ratings are based on returning production, recruiting, and portal activity.
Yes. Every part of the app is free right now, no account needed. Down the road, probably next season, a few of the heavier betting tools like daily picks will move behind a low monthly membership that helps cover data and hosting costs. The core efficiency ratings for all 365 teams will always stay free. Think of it as freemium, with the free tier being generous.
Publicly available game-by-game results and box scores from NCAA Division I men's basketball. All the modeling is done independently, so this isn't a re-skin of an official data product. The spread model is for informational and entertainment purposes only, not financial advice.

Worth a look.
Free to use.

The whole app is free right now and doesn't require an account. Jump in and explore the ratings, spreads, and player numbers for every team.

Open LangIndex CBB →