Expert guide

Fleet Maintenance Log in Excel

Services due by miles or months, full history per vehicle, and the cost per mile that tells you when to replace

Short answer: keep a Vehicles table, a Service Plan table (vehicle type × service type with mile and month intervals), a Service Log of every job with odometer, work, parts, labour, vendor and cost, and an Odometer table updated from fuel cards or drivers. Calculate next due by miles and date for each vehicle-service pair, flag due within 500 miles or 14 days, and report cost per mile per vehicle. For shop work orders and technicians, see the work order management database.

Whether it is ten service vans or eighty trucks, fleet maintenance comes down to two disciplines: doing preventive maintenance on time, and knowing what each vehicle costs to run. Missed services lead to breakdowns on the road, and breakdowns cost far more than the service would have. Without a cost history, vehicles are kept long after they stopped making economic sense.

The Tables

TableKey columns
tblVehiclesUnit, VIN, Plate, Year, Make, Model, Type, InServiceDate, Driver/Depot, Status
tblPlanVehicleType, ServiceType (oil, brakes, tyres rotation, annual inspection), IntervalMiles, IntervalMonths
tblServiceLogUnit, Date, Odometer, ServiceType, Description, Parts, Labour, Vendor, Cost, Downtime days
tblOdometerUnit, Date, Reading, Source (fuel card, driver, telematics)
tblComplianceUnit, Item (registration, insurance, inspection, permits), ExpiresOn

Next Due by Miles or Months

Create a Schedule table with one row per vehicle per applicable service type (a FILTER of tblPlan by each vehicle's type), then calculate:

Last done date:
=MAXIFS(tblServiceLog[Date], tblServiceLog[Unit], [@Unit],
        tblServiceLog[ServiceType], [@ServiceType])

Last done odometer:
=MAXIFS(tblServiceLog[Odometer], tblServiceLog[Unit], [@Unit],
        tblServiceLog[ServiceType], [@ServiceType])

Current odometer:
=MAXIFS(tblOdometer[Reading], tblOdometer[Unit], [@Unit])

Due at miles:   =[@[Last odo]] + [@IntervalMiles]
Due on date:    =EDATE([@[Last date]], [@IntervalMonths])
Miles left:     =[@[Due at miles]] - [@[Current odo]]
Days left:      =[@[Due on date]] - TODAY()

Status:
=IFS(OR([@[Miles left]] < 0, [@[Days left]] < 0), "OVERDUE",
     OR([@[Miles left]] <= 500, [@[Days left]] <= 14), "Due soon",
     TRUE, "OK")

For a new vehicle with no service history, MAXIFS returns 0; seed the log with an "in service" entry at the delivery date and odometer so the first due date calculates correctly.

Keeping Odometers Current

  • Fuel card exports often include odometer at each fill-up; import them weekly with Power Query.

  • Telematics platforms export daily readings or trip mileage.

  • For anything else, a weekly driver check-in form with a photo of the dashboard.

  • Flag readings that go backwards or jump implausibly; they are entry errors.

Importing several data sources each week is a typical Excel data consolidation job. The same fuel and mileage data supports IFTA fuel tax reporting.

Cost per Mile and Replacement Decisions

Per vehicle, last 12 months:
Maintenance cost:  =SUMIFS(tblServiceLog[Cost], tblServiceLog[Unit], [@Unit],
                           tblServiceLog[Date], ">=" & EDATE(TODAY(), -12))
Miles driven:      =[@[Current odo]] - MINIFS(tblOdometer[Reading], tblOdometer[Unit], [@Unit],
                           tblOdometer[Date], ">=" & EDATE(TODAY(), -12))
Fuel cost:         from the fuel card table, same filter
Cost per mile:     =([@[Maintenance cost]] + [@[Fuel cost]]) / [@[Miles driven]]
Downtime days:     =SUMIFS(tblServiceLog[Downtime days], tblServiceLog[Unit], [@Unit],
                           tblServiceLog[Date], ">=" & EDATE(TODAY(), -12))

Rank vehicles by cost per mile within each model. A unit costing far more than its siblings, with rising downtime, is the next replacement. Comparing models over years shows which makes to buy next time.

Compliance Dates

Expiring in the next 30 days:
=SORT(FILTER(tblCompliance, tblCompliance[ExpiresOn] <= TODAY() + 30, "Nothing expiring"), 3, 1)

Registration, insurance, annual inspections, permits and driver licence checks. Put this list at the top of the dashboard; a lapsed registration can take a vehicle off the road immediately.

Defects From Driver Inspections

  • Drivers report defects from daily inspections; each becomes a row with severity and status.

  • Safety-critical defects mark the vehicle as out of service until a repair is logged.

  • Repeat defects on the same component are flagged for a root-cause look.

Where AI Helps

  • Reading vendor repair invoices into the service log, including parts and labour split.

  • Classifying free-text repair descriptions into service types for consistent history.

  • Summarising a vehicle's history before a keep-or-replace decision.

  • Drafting the weekly 'due and overdue' email to depot managers.

Invoice capture follows extracting PDF invoice data with AI. HVAC and field-service businesses tracking customer equipment as well as vans should also read the HVAC maintenance agreement tracker. For a bespoke fleet workbook, see custom Excel spreadsheets.

FAQ

Fleet maintenance log FAQ

Scheduling, costs and compliance

Each vehicle's details (unit number, VIN, plate, make, model, year), service schedules by mileage and time, every service and repair with date, odometer, work done, parts, labour, cost and vendor, inspections and defects, and compliance dates such as registration, insurance and inspection renewals.

For each vehicle and service type, store the interval in miles and in months. Next due = last service odometer + mile interval, or last service date + month interval, whichever comes first. Compare against current odometer and today's date to flag due and overdue services.

Cost per mile = (maintenance + repairs + fuel + tyres, and optionally depreciation and insurance) ÷ miles driven in the period. Compare by vehicle and by model to spot units that are becoming uneconomical to keep.

Import them from telematics or fuel card data where possible; fuel cards often record odometer at each fill-up. Otherwise collect weekly readings from drivers. The maintenance schedule is only as accurate as the latest odometer.

When several people log work orders, technicians need a shop-floor entry screen, parts inventory is tracked, or the fleet passes a few dozen vehicles. An Access database or fleet maintenance software handles work orders and history more reliably than a shared workbook.