Driver Score Core Calculation Formula
Driver Score - Summary
What is Driver Score? A 0–100 metric of driving quality based on events like harsh acceleration, braking, cornering, speeding, idling, and fatigue. Calculated as: Score = 100 - (total penalty / distance * 100), where penalty is the sum of event values multiplied by their configured weights. The daily score uses a rolling 7-day window (current day plus the previous 6 days) to provide a more stable assessment.
Where it's used:
- Mobile App
Drivers can view their current score, daily/weekly reports, and a leaderboard ranking them against other drivers in the organization.
- Web ReportsManagers can access several driver score reports:
- Driving score breakdown (driverScore) - Shows individual events with timestamps
- Driving score summary (driverScoreSummary) - Aggregated scores per driver with event category totals
- Driving score day (driverScoreDay) - Daily driver score report
- Driving score daily (driverScoreDaily) - Daily scores with rolling 7-day period
These reports show detailed breakdowns, summaries, and trends over time.
- KPI DashboardsDriver score appears as a KPI showing average scores across drivers or within the organization for performance monitoring.
- Map/Track VisualizationDriver score events are displayed as markers on maps and in track logs, allowing users to see where and when driving events occurred during trips.
Configuring Driver Score
Organization Settings. Organizations can configure driver score in their settings. This includes customizing event values (0–10 per event type) to weight different driving behaviors according to organizational priorities. Administrators can adjust how harsh acceleration, braking, cornering, speeding, idling, and fatigue events impact the overall score calculation.
Score Calculation
The driver score is calculated using this formula :Score = 100 - floor(penalty / distance * 100)
Where:
- penalty = sum of all event penalty values
- distance = total distance traveled (kilometers)
Penalty meaning and values
The penalty is the sum of all driver score events, where each event contributes:
- Harsh Acceleration (harshAcceleration/severity1): value = 1
- Harsh Braking (harshBraking/severity1): value = 1
- Harsh Cornering (harshCornering/severity1): value = 1
- Speeding (multiple severity levels):
- < 10 km/h over: value = 1
- < 20 km/h over: value = 2
- < 30 km/h over: value = 3
-
30 km/h over: value = 4
- Driver Fatigue: values 1-3 depending on duration
- Idling (environmental): values 1-3 depending on duration
Data Sources
Driver score data can come from three sources (configured per organization):
- Journal - Events from trips where driver is matched via journal entries
- Autolog - Events from trips where driver is matched via autolog
- Default Driver - All events from vehicles where the driver is set as default driver
Daily Score Calculation
For daily reports, the score uses a 7-day rolling window (6 days before + current day).
Example
If a driver has:
- Total distance: 10,000 km
- 50 harsh braking events (value = 1 each) = 50 penalty points
- 20 speeding events (value = 2 each) = 40 penalty points
- Total penalty = 90
Score = 100 - floor(90 / 10,000 * 100) = 100 - floor(0.9) = 100 - 0 = 100.
If penalty was 500: Score = 100 - floor(500 / 10,000 * 100) = 100 - floor(5) = 95.
The score ranges from 0-100, with 100 being the best (no penalty events).
What does floor() do? Floor() is a function that rounds a number down to the nearest integer (toward negative infinity).