An Explanation of the NPI
Beginning in 2026–27, the NCAA Power Index (NPI) is the sole metric used for selection and seeding of championships in Division II team sports (as it has been in Division III since 2024–25).
Each result is given a value, based mainly on outcome and opponent strength, and those values are averaged to give the team’s rating. This process is rerun, using each opponent’s new rating, and this continues until all the ratings stabilize.
One weakness of RPI is that beating a sufficiently bad team will always make your rating worse than it was before. NPI adopts a solution that’s been used in hockey for some time: simply leaving certain results out of the calculation. Basically, losses that would increase a team’s rating are excluded. And wins that would decrease a team’s rating are also excluded – but only once the team reaches a certain number of wins.
NPI is a customizable framework, with six different weights ("dials") in the formula that are set by each sport’s committee:
• Winning percentage / strength of schedule
• Home/away win/loss weights
• Quality win bonus
• Quality win bonus multiplier
• Overtime weight
• Minimum retained wins
Dials have been set for D2 sports as follows:
| Sport | W%/SOS | Home/Away | QWB | Multiplier | Overtime | Minimum Wins |
|---|---|---|---|---|---|---|
| Field hockey | 25/75 | 1.1/0.9 (Reg) 1.0/1.0 (Post) |
53.0 | 0.5 | 100/0 | 7.5 |
| Football | 25/75 | 1.05/0.95 | 52.0 | 0.5 | 100/0 | 5.5 |
| Men’s soccer | 25/75 | 1.1/0.9 | 53.5 | 0.6 | 100/0 | 10 |
| Women’s soccer | 25/75 | 1.1/0.9 | 54.5 | 0.5 | 100/0 | 9 |
| Women’s volleyball | 25/75 | 1.1/0.9 | 54.0 | 0.6 | 100/0 | 12 |
| Men’s basketball | 25/75 | 1.2/0.8 (Non) 1.1/0.9 (Conf) 1.0/1.0 (Post) |
52.0 | 0.6 | 100/0 | 14 |
| Women’s basketball | 25/75 | 1.2/0.8 (Non) 1.1/0.9 (Conf) 1.0/1.0 (Post) |
52.5 | 0.6 | 100/0 | 14 |
| Baseball | 20/80 | 1.05/0.95 (Reg) 1.0/1.0 (Post) |
52.5 | 0.6 | 100/0 | 24 |
| Men’s lacrosse | 25/75 | 1.05/0.95 | 53.0 | 0.5 | 100/0 | 8.5 |
| Women’s lacrosse | ||||||
| Softball | 25/75 | 1.1/0.9 (Non) 1.05/0.95 (Conf) 1.0/1.0 (Post) |
52.5 | 0.6 | 100/0 | 21 |
| Men’s tennis | 20/80 | 1.2/0.8 (Non) 1.1/0.9 (Conf) 1.0/1.0 (Post) |
52.5 | 0.5 | 100/0 | 8 |
| Women’s tennis | 20/80 | 1.2/0.8 (Non) 1.1/0.9 (Conf) 1.0/1.0 (Post) |
52.5 | 0.5 | 100/0 | 8 |
To calculate the value of a result the first time through, we mostly only need the first dial: winning percentage / strength of schedule. This determines how much weight is given to the game outcome and how much to the opponent’s strength – which, at this point, is just their winning percentage.
The winning percentage / strength of schedule dial is presented as two numbers that add up to 100%, such as 25/75. The basic formula is:
(outcome * W% portion of dial) + (opponent strength * SOS portion of dial)
Let’s say we’re using 25/75, and the game in question is a win over a team with a record of 12-8 (.600). The NPI operates on a scale of 0 to 100, so we need to scale up the opponent record to 60. The outcome value is 0 for a loss and 100 for a win, giving us:
outcome = 100
W% portion of dial = .25
opponent strength = 60
SOS portion of dial = .75
(outcome * W% portion of dial) + (opponent strength * SOS portion of dial)
= (100 * .25) + (60 * .75)
= 25 + 45
= 70
So the value for the game is 70. A loss to the same team would be 45. The way the NPI handles ties is a bit more complicated, and I need to go over one more dial first.
Home/away win/loss weights are another dial presented as a pair of numbers, in this case always adding up to 2. The first number is the weight given to home losses and road wins; the second is the weight for home wins and road losses. Thus, if the weights are 1.1/0.9, a game where the road team wins is weighted 1.1 for both teams; if the home team wins, the weight is 0.9 for both. (Neutral games are always weighted 1.0/1.0.)
I explained earlier that the values given to each result are averaged to give the team’s rating. That’s where the weights come in. Suppose a team has played and won 3 games, with values k, m, and n, and weights 1.1, 0.9, and 1.1 (i.e. two road wins and one home win). The calculation would then be:
(1.1k + 0.9m + 1.1n) / 3.1
The team’s adjusted win total is 3.1; the significance of that will be explained shortly. Note that a sport can have multiple sets of home/away win/loss weights depending on the type of game (conference, non-conference, conference tournament).
Rather than just using the same formula as a win or loss, with 50 for the outcome instead of 0 or 100, the system treats them as literally half a win and half a loss.
Suppose there’s a tie in a sport with 1.1/0.9 home/away win/loss weights. For the home team, this is treated as 0.45 wins (half of 0.9) and 0.55 losses (half of 1.1). The win and loss values are weighted accordingly in the formula; 0.45 is added to that team’s adjusted win total and 0.55 to its adjusted loss total.
After all the game values and weights are figured out, we can run the calculation for the first iteration of the NPI. Now that we have a prior rating to go off, in the next calculation the opponent’s initial NPI is used in place of their record.
The quality win bonus (QWB) dial, despite its name, refers not to the bonus itself but to the cutoff for what counts as a quality win. If the QWB is set at 54, any win over an opponent whose NPI is above that (through the last round of calculations) is counted as a quality win.
The actual amount of the bonus depends on two things: how far the opponent’s NPI is above the QWB dial, and the setting of the QWB multiplier dial. It’s a simple calculation: take the difference between the opponent NPI and the QWB dial, then apply the multiplier. If these two dials are 54 and 0.5, and the opponent’s NPI is 56.217, this works as follows:
(opponent NPI - QWB) * multiplier
= (56.217 - 54) * 0.5
= 2.217 * 0.5
= 1.109
So 1.109 is added to that game’s value.
Now let’s calculate a game NPI with the bonus applied.
outcome = 100
W%/SOS dial = 25/75
opponent strength = 56.217
QWB dial = 54.0
QWB multiplier dial = .500
(outcome * W% portion of dial) + (opponent NPI * SOS portion of dial) + ((opponent NPI - QWB dial) * multiplier dial)
= (100 * .25) + (56.217 * .75) + ((56.217 - 54.0) * .500)
= (100 * .25) + (56.217 * .75) + (2.217 * .500)
≈ 25 + 42.163 + 1.109
= 68.271
For a loss, no QWB is applied, of course.
outcome = 0
W%/SOS dial = 25/75
opponent strength = 56.217
(outcome * W% portion of dial) + (opponent NPI * SOS portion of dial)
= (0 * .25) + (56.217 * .75)
= 0 + 42.163
= 42.163
So the value of a win against this team is 68.271, and the value of a loss is 42.163. Ties are handled the same as before, with the QWB in effect for the win half. Home/away weighting is determined as before.
Now comes the time to apply the removal of certain games. We’ll start with the simpler portion: removing losses.
Let’s say we have a team whose NPI through the last iteration was 39.087, and they lost to that hypothetical opponent in the last section, a loss worth 42.163. To prevent that loss from bringing their rating up, that game is excluded from their NPI average; essentially, its weight is now 0.
Often if a team is winless, continuous iterations will keep dropping their rating and removing losses from the calculation one by one. In these cases, their worst loss will still be included and their NPI rating will simply be the value of that one result.
For a tie, the win “half” is ignored for this purpose and the loss “half” is included or excluded according to the same rules as an actual loss.
Removing wins works similarly, but only once a team has eclipsed the minimum retained wins dial.
Suppose the minimum wins dial is set to 12, and a team has a lot more wins than that. Essentially, you line them up all of those wins in descending order of the opponent’s NPI. As you go down the list, take a running total of wins, adjusted for location.
0.9 (total 0.9)
1.1 (total 2.0)
0.9 (total 2.9)
0.9 (total 3.8)
...and so on.
Once the total has passed 12, wins that are valued lower than the team’s NPI can be removed. A team must always retain at least the minimum number of wins, but can retain more if those wins don’t bring their NPI down.
When lining up a team’s wins as described, it’s entirely possible that you’ll reach the minimum somewhere in the middle of a result – e.g. one win takes you from 11.7 to 12.8. If that happens, that game (if damaging to the team’s NPI) is given partial weight, 0.3 in that example.
For a tie, again, the loss “half” is ignored for this purpose and the win “half” is included or excluded according to the same rules as an actual win. So when a tie is encountered while going down the list of wins, the appropriate location-weighted number (0.45, 0.55 etc.) is added to the total. The same rules for exclusion apply, and it’s completely permissible for one “half” of the tie to be retained and the other excluded.
After determining which results to retain, exclude, or partially exclude, the calculation is run again, with the weightings in both numerator and denominator adjusted for those exclusions.
The process is then repeated. Each time the results of the previous iteration are used to recalculate game values, quality win bonuses, and which results to exclude. After enough iterations, the results will settle enough that running it again won’t change anything.
The overtime dial has not yet been used outside hockey. It allows overtime results to be counted as less than a full win or full loss, similar to how ties are handled. D3 hockey has this set at 67/33 (except conference tournament games); in connection with the 1.1/0.9 home/away win/loss weighting, this means that e.g. an overtime home loss is counted as .733 losses and .367 wins.
For further details on the NPI dials for each sport, click the links in the table above.