The spreadsheet is a symptom
Nearly every fleet operation has one: a workbook with a row per vehicle, columns for insurance and fitness expiry, and conditional formatting that turns cells red. It is maintained by someone diligent, and it is accurate for about a week after they last touched it.
The spreadsheet isn't the problem. It is the artifact of a process that has no other place to put the data.
Start with a reconciliation, not a migration
Before changing any process, run the whole list through a batch verification once. The output is a reconciliation: which records match, which have drifted, and which were never right. Teams are frequently surprised by the third category.
This single run is also the business case. It is much easier to justify a scheduled job once you can point at the number of vehicles currently out of compliance.
Then schedule it
Once the baseline is clean, a recurring batch job replaces the manual chase. Weekly is sufficient for most fleets; daily if your expiry windows are tight. The job submits the roster, receives a structured report, and writes the deltas somewhere people will see them.
Alert on the delta, not the state
A report that lists every vehicle is a report nobody reads. A report that lists the eleven vehicles whose status changed since last week is a report that gets acted on. Alerting on change rather than state is the difference between a system that works and a dashboard that gets muted.
Design for partial failure
In any large batch, some records will fail for reasons that have nothing to do with compliance — a malformed registration number, an upstream timeout, a vehicle that genuinely isn't in the source. Treat those as a separate bucket with its own retry path. Mixing data-quality failures into compliance exceptions is how both get ignored.
Keep the history
Store each run's results rather than overwriting the current state. Compliance questions are almost always historical — not what is true now, but what was true in March, and when you knew it.
Written by the MuVertex team. Questions about anything here? Get in touch.