Fleet Fuel Efficiency Prediction Model (v3)
Predicts per-trip fuel efficiency (km/L) for Volvo heavy trucks based on driving behaviour and route features.
Performance
- Test R2: 0.838
- 5-fold CV R2: 0.808 +/- 0.025
- MAE: 0.191 km/L
- Overfit gap: 0.015
Data
- 6 months (Jan-Jun 2026)
- 56638 clean trips after dedup + validity + IQR outlier removal
Features (37)
Speed Bands (% of total distance)
- speed_0_16_pct
- speed_16_32_pct
- speed_32_48_pct
- speed_48_64_pct
- speed_64_80_pct
- speed_80_96_pct
Weight
- weight_median_kg
Acceleration Zones (% of distance)
- accel_harsh_brake_pct_dist
- accel_moderate_brake_pct_dist
- accel_light_decel_pct_dist
- accel_cruising_pct_dist
- accel_light_accel_pct_dist
- accel_moderate_accel_pct_dist
- accel_harsh_accel_pct_dist
Torque Zones (% of distance)
- torque_very_low_torque_pct_dist
- torque_low_torque_pct_dist
- torque_mid_torque_pct_dist
- torque_high_torque_pct_dist
- torque_very_high_torque_pct_dist
Idle
- idle_pct_duration
- idle_fuel_pct
Coasting
- coasting_pct_distance
Cruise Control
- cruise_pct_distance
Green Area
- green_area_pct_distance
Time of Day (% of distance)
- dist_pct_00_04
- dist_pct_04_08
- dist_pct_08_12
- dist_pct_12_16
- dist_pct_16_20
- dist_pct_20_24
Braking
- brake_count
Altitude (15-min smoothed)
- pct_dist_flat_v2
- pct_dist_climb_mild_v2
- pct_dist_climb_steep_v2
- pct_dist_descent_mild_v2
- pct_dist_descent_steep_v2
- total_altitude_gain_v2
Driving ratio
- driving_ratio
Example Payload
{
"speed_0_16_pct": 1.4,
"speed_16_32_pct": 6.9,
"speed_32_48_pct": 15.3,
"speed_48_64_pct": 65.0,
"speed_64_80_pct": 10.9,
"speed_80_96_pct": 0.5,
"weight_median_kg": 28500,
"accel_harsh_brake_pct_dist": 1.2,
"accel_moderate_brake_pct_dist": 4.1,
"accel_light_decel_pct_dist": 28.3,
"accel_cruising_pct_dist": 30.5,
"accel_light_accel_pct_dist": 31.2,
"accel_moderate_accel_pct_dist": 4.0,
"accel_harsh_accel_pct_dist": 0.4,
"torque_very_low_torque_pct_dist": 46.0,
"torque_low_torque_pct_dist": 38.5,
"torque_mid_torque_pct_dist": 12.0,
"torque_high_torque_pct_dist": 2.5,
"torque_very_high_torque_pct_dist": 0.3,
"idle_pct_duration": 4.8,
"idle_fuel_pct": 0.95,
"coasting_pct_distance": 16.0,
"cruise_pct_distance": 1.2,
"green_area_pct_distance": 79.5,
"dist_pct_00_04": 15.0,
"dist_pct_04_08": 25.0,
"dist_pct_08_12": 30.0,
"dist_pct_12_16": 20.0,
"dist_pct_16_20": 8.0,
"dist_pct_20_24": 2.0,
"brake_count": 650,
"pct_dist_flat_v2": 91.6,
"pct_dist_climb_mild_v2": 3.7,
"pct_dist_climb_steep_v2": 0.3,
"pct_dist_descent_mild_v2": 3.1,
"pct_dist_descent_steep_v2": 1.3,
"total_altitude_gain_v2": 1200,
"driving_ratio": 0.89
}
Expected output: ~4.11 km/L
Usage
from xgboost import XGBRegressor
import json
model = XGBRegressor()
model.load_model('fleet_fe_xgboost.json')
with open('feature_cols.json') as f:
feature_cols = json.load(f)
prediction = model.predict(trip_features[feature_cols])
Changelog
- v3: Speed bands as %, smoothed altitude features (15-min rolling median), CV R2=0.808
- v2: Raw speed bands, 6-month data, CV R2=0.796
- v1: Initial model, May only
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support