District point calculation

Hi, can someone explain how the DP calculation works here?
What do the variables mean?

I suggest checking out section Qualification Round Performance. From that section:

Breaking this down further, the Error Function and its Inverse are non-algebraic functions with uses in heat transfer, among other things. But that isn’t important–all that matters here is that the Inverse Error Function (erf^{-1} or InvERF) takes in numbers evenly spaced between -1 and 1 and outputs numbers in a bell curve shape.


For the formula itself, we start by by zero-indexing the ranks so that best is 0, second best is 1, etc.
Nest we divide by the number of teams to get the rankings as a number between 0 and 1.
Now negate the whole expression to put the best team at the highest number, and rescale to give a number between -1 and 1.
Real quickly, take a look at what happens to the invers error function at 1 and -1. They spike off to infinity! This is because with a bell curve, you have an exponentially decreasing–but still positive–chance of getting an arbitrarily high number. Let’s limit ourselves to two standard deviations by scaling our input to be between ±0.94 , by dividing by \alpha = 1.07.
\displaystyle{\frac{N-2R+2}{\alpha N}}
Finally, we take the inverse error function to get our normal distribution.
\displaystyle{InvERF\left(\frac{N-2R+2}{\alpha N}\right)}
Divide by the maximum value to get an output between ±1.
\displaystyle{InvERF\left(\frac{N-2R+2}{\alpha N}\right)\left(\frac{1}{InvERF(1/\alpha)}\right)}
Now rescale to get a number between 2 and 22, centered at 12.
\displaystyle{10\cdot InvERF\left(\frac{N-2R+2}{\alpha N}\right)\left(\frac{1}{InvERF(1/\alpha)}\right)+12}
\displaystyle{=InvERF\left(\frac{N-2R+2}{\alpha N}\right)\left(\frac{10}{InvERF(1/\alpha)}\right)+12}
Finally, round up to get an integer value.
\displaystyle{\left\lceil InvERF\left(\frac{N-2R+2}{\alpha N}\right)\left(\frac{10}{InvERF(1/\alpha)}\right)+12\right\rceil}

Note that because we zero-indexed our rankings, we have a “rank 0” but not a “rank N”. This means that we do see 22 district points at the top, but at the bottom we usually see about 4 instead of 2.


Excellent explanation!

For those who want to check the calculations and are using Excel, the function InvERF(A) can be obtained as NORM.S.INV((A+1)/2)/SQRT(2).

A couple of examples:

Smaller district, with 34 teams competing:

Larger district with 42 teams competing:


Thanks for the lesson.

I always knew JZs formula worked, for a wide range of # of teams (N) but had no idea why or how that strange fornula was chosen… especially the ”magic” 1.07

Please take that printout and upload it as a CD white paper.

1 Like

This is a great walkthrough! Thank you.

I still don’t understand why FIRST couldn’t come up with something easier to explain?
As a strategy mentor I explain the students before season starts about the districts system and about how to earn district points.
I explain every way and how many points we can get for it, but when I need to explain the qualifications district points I just say “A very complicated formula which can be found on the manual ranging from 4-22 district points” and just move on.
I understand if the formula has to be a little complicated but the bare minimum would be that we can calculate it using a calculator and not with weird functions which we can solve with unknown tables found in university books.

1 Like

Before having the bonus ranking points in games, this part of the district ranking points was just 2 points per match win (and 1 for a tie) if I remember correctly, so on a range of 24 to zero points at the extremes. This formula tries to emulate that.

Because FIRST didn’t come up with it.

A really bright guy came up with it when FiM started the district revolution.

And this might blow your mind, but to him, the formula is so easy as to not be worthy of discussion.

About 5 years ago talking about districts, I brought up this with him about the complicated nature of it, and his casual reply was something close to “oh that’s easy, its just a scaled error function that gives the right answers” and then steered the conversation into the other more important stuff about why the whole point system works (to qualify for States, you need to attend and rank relatively high at two competitions and win a round of playoffs or two).

And to be honest actually, the way Andrew explained it, I now see that the function printed in the manual actually is easy and obvious (for someone who understands math) just reduced down to a nearly impenetrable form. Which is why it would be nice to upload to the CD whitepaper repository.

Kind like in college the first time long-haired Professor Taylor on a whim – in a diffy-Q class! – spent 5 minutes and a few of his dozen chalkboards showing us how the quadratic equation (which we’d all been using forever) was derived. Obvious in retrospect.

Anyhow, the district point function is probably a lot easier than computing component OPRs by hand which I used to have my strategy kids do (obviously in a ginned up reduced tournament) so they could learn how it works and why they are both useful AND imperfect.


The original 2009-2014 district points system was by FIM (i want to say Jim Zondag? Dont quote me on that though). With how 2015 worked though, a new (and our current) district points setup was needed, and was created with the help of all existing districts at the time, partly discussed in the linked blog:

There also was a whitepaper created for it, but despite using Wayback i have no way of finding that paper. (you’re free to try though, linked here.) I do have this Chief Delphi PDF file, I think from the 2015 Missouri State Championships(?) offseason event, that I think is the same paper, but I cannot verify. This whitepaper can be found here.

Edit: Looking at my rip of old FRC documents, I think the the whitepaper I linked is the correct one discussed. You can find the one that was on the old FIRST website here, but they are the same paper.

1 Like

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.