DRIIVER

Driver & Fleet Safety Score

What the score means, why it is defensible, and exactly how it is calculated — written for the person who signs off on it and the person who runs it.

For owners, COOs and fleet & safety managers · September 2026
Two-minute version How it compares Reading a score The calculation Setting weights Fleet numbers Questions Settings reference
For the CEO, COO and owner

The two-minute version

What the score is

Every driver carries one number from 0 to 100. It answers a single question: how much risk did this person generate per mile driven?

Not how many events they had — a driver who runs 3,000 miles a month will always out-event one who runs 400. Everything is measured per 100 miles, so your busiest driver and your lightest driver are judged on the same terms.

The score moves when behaviour changes. It is recomputed on a rolling 30-day window, so a bad week fades on its own instead of following someone for a quarter.

Why you can defend this number

Three things separate it from a black box, and all three matter the first time a driver, a union rep, or an insurer asks you to justify a score.

It is your own data and your own weights

The rules come from your MyGeotab database. The weights are set by you, in the portal, and can be changed in a minute. Nothing is imported from another fleet and nothing is modelled off an industry average.

Every point is traceable

Open any driver and the score decomposes into the exact behaviours that produced it, the count of each, the miles they were measured against, and the points each one cost. There is no residual, no unexplained remainder.

It only counts trips they signed into

This is the part no competitor can do. A shared truck does not penalise whoever drove it last. If nobody claimed the trip, nobody is charged for it — it lands on the unattributed list instead of on a person.

Nothing is invented

Where a number cannot be computed, the screen says so by name rather than showing a zero or a flat line. A blank is a known gap, never a guess.

The commercial point

Insurers and customers do not ask "what is your fleet score." They ask "how many drivers are below 60, and what are you doing about them." The score exists to make that list short, ranked, and defensible — and the coaching record exists to answer the second half.

02

How this differs from Samsara, Lytx and Geotab's own score

All four produce a number out of 100. They disagree about what the number is for.

 Typical vendor scoreGeotab nativeDriiver
Who is charged The vehicle, then mapped to a driver The vehicle, then mapped to a driver Only the person who signed in. Unclaimed trips are excluded and listed separately.
Weights Vendor-set, largely fixed Configurable, applied to a rule score Per-rule, set by you. Speeding 10-over and Speeding 20-over can carry different numbers.
Shape of the curve Usually linear from a baseline Linear: 100 − occurrences per 1,000 mi, weighted Linear per 100 work miles, on a 100-mile evidence floor. Every deduction is a weight you set times a repeat multiplier — no curve constant, nothing to calibrate.
Repeat behaviour Counted the same each time Counted the same each time Escalates. The eleventh hard brake costs more than the first.
Improvement Slow to move Slow to move Events age out of the 30-day window, clean miles dilute the rate, and a 30-day clean streak (500+ mi) earns credit back.

Why linear — and why this linear

A naive linear score fails at the bottom: run 100 − weighted events per 1,000 mi against a real fleet and dozens of drivers pin at exactly zero — unrankable, and unable to ever show improvement. An exponential curve fixes the ranking but buys it with a calibration constant nobody in the room can explain.

The deployed formula keeps the straight line and removes the reasons it used to fail:

On a live 357-driver fleet this scores 161 qualifying drivers from the 70s to 100 with a clean spread through the coaching bands — and nobody pinned at zero, because the floor, the collapse and the pricing take away every path to it.

On Geotab's own score

We reproduced Geotab's formula exactly from a customer's own export: rule score = 100 − (occurrences per 1,000 miles), then total = Σ(weight × rule score). It matched to zero error. It is a reasonable measure of rule compliance. It is not a measure of risk per mile, and it charges the vehicle rather than the driver.

03

Reading a score

80–100  Good 60–79  Fair Below 60  Needs work

Below 60 is the number that matters commercially. It is the first thing an insurer or a customer asks for, and it is the list the Dashboard surfaces at the top of the briefing.

Drivers who are not scored

A driver needs miles before they get a number. Under 20 miles in the window the tile shows —; under 100 miles it is tagged low mileage and the driver leaves the ranking — not ranked last. Newly activated drivers spend their first 14 days in a baseline window, scored but unranked. A score built on eleven miles would be noise, and ranking someone last for being new is how a safety programme loses the room in week one.

What a manager should do with it

  1. Work the below 60 list first. It is short by design.
  2. Open the driver. The screen tells you which single behaviour costs them the most, and what their score would be if that one behaviour were cleared.
  3. Coach that one thing. Not the list of nine.
  4. Check it held. The score moves on its own as clean miles accumulate.
04

How the number is actually calculated

This section is for the person who has to defend the number in a room. Everything below is the deployed formula, not a description of one.

Step 1 — collapse bursts into events

Exceptions from the same driver and behaviour inside that behaviour's cooldown (5–60 minutes, set per behaviour) collapse into one coachable event that keeps every exception as a source. Different rules firing on the same behaviour within 60 seconds are also one event. The event is charged once, at the heaviest enabled rule that fired — supporting rules are shown, never billed twice.

Step 2 — keep a 30-day window, work hours split out

The score reads a rolling 30-day window; an event simply ages out at day 31 — no decay constant. Events are stamped in or out of the fleet's work schedule (default Mon–Sat 06:00–18:00, tenant-editable), and each driver carries two scores: the work-hours score, which ranks, and an after-hours score alongside it.

Step 3 — escalate repeats, bounded

The second event of the same behaviour in a work week multiplies by 1.5, the third and later by 2.0 — capped there. The counter resets Monday at midnight local, so an old bad week never inflates a new one.

Step 4 — deduct per 100 work miles

deducted = Σ ( rule weight × repeat multiplier )
score    = 100 − deducted × 100 / max( work miles , 100 )
The 100-mile floor is the evidence line: below it, deductions cannot amplify.

The weight is the price of one event of that behaviour per 100 miles — 0.5 for posted-limit speeding, 5 for phone or seatbelt, 20 for a collision. Rules land in six behaviour categories — Collision, Speeding, Seatbelt, Phone Use, Distraction, Harsh Driving — and each rule keeps its own price inside its category. When several rules fired in one event, only the heaviest enabled one is charged (worst wins). A rule switched off on the Scoring rules screen produces nothing at all — no deduction, no lane, no streak break.

Step 5 — earn some back

A 30-day clean streak with at least 500 miles earns +2, capped at 100. Beyond the credit, recovery is structural: every clean mile dilutes the rate and every day moves an old event closer to the edge of the window. Scores recover on their own when behaviour changes — no reset button needed.

Step 6 — no curve

That is the whole formula. It is linear and bounded, every point traces to a named event with a weight the fleet set, and the same arithmetic runs for a 2-truck fleet and a 2,000-truck fleet. There is no fleet-level constant, so a fleet-wide improvement moves the fleet average — the number is comparable month over month out of the box.

The bands are product-wide

Good is 80 and up. Fair is 60–79. Below 60 needs work. The cut lines are the same for every fleet on Driiver, so "a 74 at your fleet" means the same thing at the next one — insurers and customers can trust the label without asking how it was tuned.

05

Setting weights

Weights live in Scoring rules. Every rule carries its own number — categories only group the list. Speeding 10-over, Speeding 20-over and Speeding over 80 mph can each be weighted differently, because they are different risks.

The scale runs 0.25 to 20 — a weight is a price

A weight is not an abstract 1–10 rating. It is the exact number of points one event of that behaviour costs per 100 work miles, so the scale runs from trivial to catastrophic, each step roughly double the one below it:

WeightUse it forCatalogue examples
20The worst thing on the cardCollision
5–10Directly causes collisions, or legal exposurePhone Use, Seatbelt, top speeding tiers
2Serious, coachable patternsDistraction (eating, drinking, smoking, fatigue)
1Symptoms worth watchingHarsh Driving (braking, acceleration, cornering, rolling stops)
0.25–0.5Policy and noise-level itemsPosted-limit speeding
0 / offEngine and vehicle-data rulesTyre pressure, oil temperature — shown, never scored

Sense-check any change against the arithmetic: at weight 5, four events in a 500-mile week costs 4 × 5 × 100 / 500 = 4 points. At weight 20, one collision on a 100-mile week costs the driver 20 — off the Good band in one event, which is the point.

Check this before you trust the first scores

If a rule is enabled in MyGeotab but its threshold is set so tight that it fires on everybody, it is measuring your threshold, not your drivers. The Dashboard flags rules firing on more than 80% of the fleet for exactly this reason. Fix the threshold or drop the weight — do not coach it.

06

The fleet-level numbers

The Dashboard opens with a briefing built from the same snapshot rows the driver list uses — one set of numbers everywhere, by construction.

NumberWhat it meansWhat to do with it
Fleet safety scoreMean of all qualifying drivers A trend line, not a target. Remember K recalibrates.
Below 60Count of drivers in the red band The number an insurer asks for. Work it down.
Attribution rateShare of trips carrying a verified driver The number the whole product exists to move. Below 85% means the scores under-cover the fleet.
Unattributed tripsTrips nobody claimed, rolled up by vehicle A truck at the top of that list is missing a fob or has a driver who was never shown how to use it.
Risk concentrationHow few drivers carry half the deduction Usually far fewer than people expect. A handful of conversations moves the whole number.
Rules firing on everyoneRules hitting over 80% of drivers A threshold problem, not a driver problem.
Dead rulesEnabled, fired zero times in the window Either the threshold is unreachable or the behaviour genuinely does not happen.
07

Questions you will be asked

"Why did my score drop when I didn't do anything?"
Either an event aged into more weight through the weekly repeat multiplier, a clean stretch aged out of the 30-day window, or a recent event landed. Every cause is visible on the driver's own breakdown — there is no fleet-level recalibration.
"Someone else was driving my truck."
Then they were not charged for it — the trip only counts if they signed in. If the trip was unclaimed it appears on the unattributed list, against the vehicle, not a person. This is the single most common objection to every other scoring system, and it does not apply here.
"Why is a light-duty driver ranked below a long-haul one?"
Because everything is per 100 work miles, on a 100-mile floor. Low mileage does not protect a score. Under 100 miles a driver is tagged low mileage and leaves the ranking; under 20 the tile shows —.
"If everyone improves, does the average move?"
It does now. There is no curve constant and no recalibration — the formula is fixed, so a fleet-wide improvement shows up as a fleet-wide improvement, comparable month over month and year over year.
"Can a driver see their own score?"
Yes, in the driver app, with the same breakdown their manager sees. There is no manager-only version of the number.
"How often does it recalculate?"
On every pass, against a rolling 30-day window. Snapshots older than five minutes are refreshed on read.
08

Every setting, and its default

All of these are per-fleet and adjustable. The defaults are what a new tenant starts on.

SettingDefaultWhat it controls
Scoring window30 daysHow far back events are counted; an event ages out at day 31
Evidence floor100 miDeduction denominator is max(work miles, 100); under it the driver is tagged low mileage and leaves the rank
Display floor20 miBelow this the tile shows — instead of a number
Rule weight0.25–20, per rulePoints one event costs per 100 work miles; the heaviest enabled rule wins inside an event
Repeat multiplier×1.5 / ×22nd / 3rd+ event of a behaviour per work week; resets Monday 00:00 local
Clean-streak credit+230 clean days with 500+ miles; credit only, capped at 100
Cooldown5–60 min, per behaviourExceptions inside it collapse into one event with sources
Work scheduleMon–Sat 06:00–18:00Stamps events work / after-hours; the work-hours score ranks
Baseline window14 daysNewly activated drivers are scored but unranked
A note on units

MyGeotab reports trip distance in kilometres. Driiver converts on ingest. This was verified against odometer deltas on a live vehicle; without the conversion every per-100-mile rate reads 1.61× too generous.