GPS Test Database

# Calculating the scores

## Lock Time

The GPS speed will be given a score, ranging from A++ to F, where of course A++ is the best. The score is calculated in the following way:

First we calculate a weighted time score. Let t[i] be the search time (in number of seconds) for test i. The time score is then calculated as:

TimeScore = t[1] + 5 * (t[2] + t[3] + t[4] + t[5] + t[6])
where 900 is the maximum possible value

Here we assume that a slow relock time is much worse than a slow first lock time. It is ok to wait a bit the first time you use your GPS, but if you have to wait a long time each time it is used, the user experience will be very bad.

Based on the weighted time score, the result will be given a mark based on the following formula:

Mark = TimeScore ^ (1/2.36)-1
rounded down to the nearest integer

This formula may look complex, but it just says that for the best marks (A++, A+, etc) the difference in time score between each mark is smaller than for the worst marks (F, E-, etc.)

A mark number of 1 will correspond to an A++, 2 will be A, 3 will be A-, and so on.

We can summarise the formula in the following table:

Timescore

From To Mark number Mark letter
1 4 1 A++
5 12 2 A+
13 25 3 A
26 43 4 A-
44 67 5 B+
68 97 6 B
98 134 7 B-
135 177 8 C+
178 228 9 C
229 285 10 C-
286 351 11 D+
352 424 12 D
425 505 13 D-
506 595 14 E+
596 693 15 E
694 800 16 E-
801 900 17 F

Also, if the first test uses more than 12 minutes, or one of the other tests uses more than 3 minutes, the test will end and the timescore will be set to 900.

## Accuracy

For each of the six tests done by the app, we will record the estimated accuracy from the GPS, in number of meters. This is the accuracy estimate which the GPS itself is providing. In addition, for each of the tests we will also get a location. If you are not moving, the locations should be exactly the same for all the tests. In practice however, they will most likely be different, and we can caclulate how many meters different they are.

We can then calculate an accuracy score:

AccuracyScore = (Avarage accuracy estimate + Avarage location difference) /2

To get the mark, we put this into the following forumula:

Mark = 16.2 * (1 - 1 / (1 + 0.05 * AccuracyScore))

The reasoning behind this formula is the same as for the lock time mark formula above. I.e. we want a small intervall between the best marks, and a bigger interval between the the worst marks. The table below shows the results of this formuala.

Meters
From To Mark
0 1 A++
2 2 A+
3 3 A
4 5 A-
6 7 B+
8 9 B
10 12 B-
13 16 C+
17 20 C
21 26 C-
27 35 D+
36 47 D
48 67 D-
68 106 E+
107 208 E
209 1333 E-
1334 and above F