Vehicles as first-class ERP records
Each vehicle, trailer, and piece of yard equipment became an ERPNext asset record carrying its registration, acquisition cost, depreciation schedule, insurance and technical-inspection expiry, and current odometer. Cost lines from fuel, maintenance, and parts post against that record, so the running cost of a vehicle is a report in the ERP rather than an exercise in spreadsheet archaeology.
Telematics polled, not trusted blindly
A Node.js connector polls the telematics provider on a schedule and writes trip distance, engine hours, and odometer readings into ERPNext through a PostgreSQL queue with idempotency keys. Readings that jump implausibly, a common failure when a GPS unit reconnects after a dead zone, are flagged for review instead of silently corrupting the maintenance schedule they feed.
Fuel reconciled against distance actually driven
Fuel card transactions import and match to vehicle and driver by card number and timestamp. Litres are compared against the distance the telematics recorded for the same period, so a consumption figure that drifts away from a vehicle's own baseline surfaces as an exception, whether the cause is a mechanical fault or a fuelling that never reached the tank.
Maintenance scheduled from odometer, not memory
Preventive maintenance plans are defined per vehicle type in kilometres and engine hours. The odometer feed triggers a maintenance work order in ERPNext before the interval is passed, with parts drawn from ERP stock so a service consumes inventory and posts cost like any other operation. The workshop spreadsheet was retired rather than integrated.
A driver app that asks for almost nothing
Drivers confirm a trip, photograph a fuel receipt or delivery note, and report a defect from one screen. Submissions queue on the device and sync when signal returns, because the alternative on a domestic freight route is data that is simply never captured. A reported defect opens a workshop request against that vehicle immediately.
Expiry dates that chase people
Insurance, technical inspection, vignette, and driver licence expiry dates live on the ERP records and generate escalating notifications ahead of the date. An immobilised truck at a roadside check costs a day of revenue; the renewal that prevents it costs an email nobody had been sending.