Project

Fleet Maintenance and Inventory Optimization

A Python pipeline helps ready-mix fleet planners combine maintenance demand and engine-hour telemetry to compare spare-parts inventory scenarios and truck-level maintenance signals.

Period
February–March 2026
Status
Industry analytics project
Stack
PythonpandasNumPySciPylifelinesPlaywrightMatplotlibSeabornopenpyxl
381Parts modeledReal mechanical-parts model coverage: 322 Croston-SBA and 59 Weibull on engine hours.

Inventory optimization

How many of each part to keep. And when to reorder.

Stock plan · 10-day supplier lead time · 95% service levelunits to keep on the shelf and when to reorder, per partDrive tireMixer drum bearingChute hook & bandBatteryFilterU-jointAir valveunits to keep (order-up-to)reorder point

The result of the project: for every part, how many units to keep on the shelf and the point at which to reorder, set for the supplier's lead time at a 95% service level.

Supplier lead time

Built on a company's real operating data. Under a confidentiality agreement, the numbers shown come from a masked replica that keeps the data's shape, not its values. Values marked real result are the company's real aggregates.

What it does

How many spare parts to stock, and which trucks will need them.

  • Sets a reorder point and stock level per part for the supplier's lead time at a 95% service level.
  • Forecasts sporadic part demand month by month.
  • Flags the trucks approaching a part's replacement interval.
381mechanical parts modelled on the company's data (real result)
322 · 59Croston-SBA demand forecasts · Weibull models on engine hours

01Context

The problem,and my part in it.

The problem

Spare-parts planning combines two clocks: warehouse demand arrives by calendar month, while wear accumulates through engine use. Long runs of zero consumption are interrupted by uneven replacement quantities. Averaging only active months changes the demand signal; treating every truck as equally used changes the exposure signal.

What I did

I built the pipeline end to end and made the modelling calls: from maintenance exports and engine-hour telemetry to a stock plan per part and a signal per truck.

  • Joined maintenance records to telemetry across mismatched vehicle IDs, and rebuilt each truck's engine-hour history.
  • Forecast sporadic demand with Croston-SBA, keeping the zero months that simple averages hide.
  • Fitted Weibull replacement intervals on engine hours where failures repeated enough, with a fallback where they didn't.
  • Turned the forecasts into reorder points and stock levels at a 95% service level, delivered as data the planners' tools read.

02Decisions

How it was built,and why.

Decision 01Keep zero months

A complete monthly panel preserves the intervals between demand events. Croston-SBA smooths size and timing separately, making inactivity part of the forecast. Compared with averaging active months alone, this requires explicit calendar completion and an additional interval state.

03Two clocks

Parts are ordered by the calendar;they wear out by the engine hour.

Calendar

Warehouse demand is counted per month, zero months included, and forecast with Croston-SBA. That sets the stock plan.

Engine hours

Replacements are timed on each truck's engine-hour clock, rebuilt from telemetry, with Weibull fits where failures repeat.

Both

The shelf follows the calendar; the truck signals follow the hours. A truck that runs more reaches its interval sooner.

04Next

Where it goesfrom here.

  1. 01

    Pilot with the warehouse team using real lead times, costs and stock levels.

  2. 02

    Backtest on rolling windows and add calibrated prediction ranges.

Next projectFutBot Tracker