The model I used was to calculate the following quantity:

*sum of (gridPosition-racePosition)/racePosition) over all races*

The numerator (top term),

`gridPosition-racePosition`, gives the number of positions gained (positive), or lost (negative).

These values are scaled by dividing through by the final racePosition in each corresponding race, which means that position changes at the head of the field count for more than those at the back of the field. (There is a certain balancing effect going on here though, because cars that start at the back of the field may gain several places through non-finishers amongst the cars that started ahead of them). Here are the resulting rankings...

I then tweaked the model to add in a term that accounted for holding position, equal to 1/racePosition (so the equation became

`sum of ( (gridPosition==racePosition)/racePosition + (gridPosition-racePosition)/racePosition) over all races`. Here's the result this time:

A problem with that approach is that there is no differentiation between gaining a a place and holding position. We can account for this using the following refinement:

`sum of ( (gridPosition>=racePosition)/racePosition + (gridPosition-racePosition)/racePosition) over all races`

Here's a final chart, this time using the product of the grid and final positions as the denominator (that is, calculating

`sum of ( (gridPosition==racePosition)/(racePosition*gridPosition) + (gridPosition-racePosition)/(racePosition*gridPosition) ) over all races`).

So do any of these charts make (non)sense? (And if so, which make most (or least) sense and why?)