The system we filed in 2016 scores each event twice. First the magnitude - how hard the braking, how far above the limit, how long the phone call. Then a second factor for circumstances.
That second factor is the spatio-temporal index. It combines time of day banded by historic crash rates, weather at that moment, the crash history of the zip code, whether anyone else was in the vehicle, and seatbelt use. Multiply magnitude by index and you get the event score.
So the same pedal input produces different numbers, which is the whole point. Hard braking at one in the morning in the wet, in a zip code with a bad crash record, isn't the same event as hard braking on a clear Tuesday afternoon.
Vehicle weight comes in separately, further up the chain. A vehicle a thousand pounds above average carries a multiplier, because the same manoeuvre in something heavier is more dangerous to everyone outside it.
Scores are normalised against the fleet rather than an absolute scale - a typical driver lands near 70 - and adjusted for distance, so nobody is penalised for covering 400 km instead of 40.