Math: How to solve ranking equation

I no do math, can someone give me a quick math lesson on solving the ranking equation.


Do you mean in Qualifications? They just take your average score from each game you played in quals, then rank the teams from highest to lowest.

They average your alliance’s score as your Qualification Average and they go in the following order:

Qual Avg
Cooperative pts
Auto pts
RC pts
Tote pts
sum of Noodle pts
Random FMS sorting

See 5.3.4 of the Game Manual.

What ranking equation do you mean? Ranking is simple: more points is better. To a first approximation, a team ranks above other teams with fewer points, and below other teams with more points.

i mean this:

This was discussed in Frank’s blog.

There is a document that elaborates further on the equation. You can scroll to the bottom to see what values would come out for a 32, 40, 55, 60 and 64 team event.

That formula is only relevant for district events. It converts ranking to “District Qualification Points”. A comprehensive explanation of the Inverse Error Function belongs in an advanced statistics class. All you need to know is that it is built in to tools like Matlab.

I was curious about the function, did a little digging found someone already made one for Excel VBA. I hope this helps.

Function invERF(y As Double) As Double
Dim pi As Double, x As Double, d As Double
pi = 3.14159265358979
If y < 0 Then
    invERF = 0 'interval includes the mean only
    Exit Function
ElseIf y >= 1 Then
    invERF = 10 'makes the interval include everything
    Exit Function
'for my purposes, I only want the function to process input from 0 to 1
ElseIf y < 0.596 Then
    x = sqr(pi) / 2 * y * (1 + (pi / 12) * y * y)
    x = sqr(-Log((1 - y) * sqr(pi)))
End If
d = (y - ERF(x)) / (2 * Exp(-x * x) / sqr(pi))
x = x + d
Do While Abs(d) >= 0.00000001
    d = (y - ERF(x)) / (2 * Exp(-x * x) / sqr(pi))
    x = x + d
invERF = x
End Function

Function ERF(x As Double) As Double

Dim f As Double, c As Double, pi As Double
Dim j As Integer
c = 0
pi = 3.14159265358979
If 1.5 < x Then
    c = 2 - c
    j = 3 + Int(32 / x)
    f = 0
    Do While j <> 0
        f = 1 / (f * j + x * sqr(2))
        j = j - 1
    f = f * c * (3 - c * c) * Exp(-x * x) / sqr(2 * pi) + (c - 1) * (3 * c * c + c - 8) / 6
    j = 3 + Int(9 * x)
    f = 1
    Do While j <> 0
        f = 1 + f * x * x * (0.5 - j) / j / (0.5 + j)
        j = j - 1
    f = c + f * x * (2 - 4 * c) / sqr(pi)
End If
    ERF = f
End Function

You just have to be careful about this, the input into InvERF with the District Qual Points Formula will be negative on one side of the -1, 1] range, and this function can only handle positive input values. Also at the midpoint it’s possible to get a divide-by-zero error with this function too. Both issues are easily worked around with a little formula/programming magic, but it’s important to know this isn’t a perfect drop-in solution.


Basically the formula is given you just have to plug and chug, some calculators will have an inverse error function ability, if your does you find it use it and plug in the necessary values for the variables, N= number of teams at event, R=your final ranking position and alpha is a constant set by the committee based on averages of event size at 1.07. The lines on each end tell you just to round up to the nearest whole number give it a shot for our first event it would look like this:

invERF( 33-2x13+2)/(1.07*33)]X(10/(invERF 1/1.07)+12) 13. … rounded up to nearest whole integer =14

remember inverse is NOT the same as going to the power of -1 if you don’t have a calculator with the function already…

if you don’t have this function at all on your calculator then it gets much more complicated solving for invERF as its a function itself requiring integrals and such

The inverse of a function f(x) is not 1/f(x).

The inverse of f(x) is g(x), such that g(f(x))=x

For example, the inverse of f(x)=x2 is g(x)=sqrt(x), not 1/x2

octave-3.6.4.exe:10> erfinv(0.33)
ans =  0.301332146133706
octave-3.6.4.exe:11> 1/erf(0.33)
ans =  2.78335488667249

Plus, for Qualifications, if the number of teams is not divisible by six, there are surrogate matches, which are the third match for teams that fill the surrogate role.

More Math!

I knew Ether would show up and clear all this up :smiley:

When the student is ready, the master appears.

If you’re looking for a more visual explanation (or a simpler one), I wrote up this summary for my team:

I tried to explain the math behind it without calculus or too much statistics, which makes it easier to read but not nearly as in depth as the official explanation (in my opinion). It’s mostly a graphical / algebra based analysis to get at the basics of what district ranking is and how your ranking at an event factors into it.

Note: I haven’t taken any statistics classes and we’re not yet in districts, so I’m not sure if everything I wrote is completely accurate. Please let me know if anything is wrong and I’ll try to correct it.

There’s an extra word in that sentence.

Thanks for catching that. :slight_smile: Did you find any errors in my analysis?

Based on the paper you wrote for Math Quiz 6, I wouldn’t expect to find any :slight_smile:

Not quite correct.

If the number of teams * the number of matches per team is not a multiple of six, then you will have surrogates.

Michigan (and I believe most other district systems) gives each team 12 matches. A benefit to this is that there will never be a surrogate.