Delivery capacity is a bet placed days or weeks before the parcels arrive. Hire too few drivers and windows are missed; book too many vehicles and fixed cost eats the margin. Machine learning demand prediction gives planners a quantified view of volume by zone, day, and hour, with a range of outcomes rather than one fragile number. This guide explains model selection, feature engineering, validation, and the operational steps that turn a forecast into labor, fleet, and partner decisions, and it shows where Oxmaint maintenance management software protects the vehicle capacity you plan to use.
Predict delivery demand, then plan the capacity to meet it
A forecast only creates value when it changes a decision. Build demand prediction that feeds staffing, routes, and fleet availability, and keep the vehicles behind the plan ready to run.
Why simple baselines run out of road
Moving averages and seasonal models are still useful starting points. They struggle once demand depends on many interacting drivers at once.
| Approach | Works well when | Starts to fail when |
|---|---|---|
| Moving average | Demand is stable and trendless | Promotions, holidays, or growth change the level |
| Seasonal naive | Weekly patterns repeat cleanly | Events shift the pattern from one week to the next |
| Classical time series | A single series with clear seasonality | Hundreds of zones need forecasting with shared signals |
| Machine learning | Many external drivers and many related series | Data is sparse, short, or poorly governed |
Keep a baseline as the benchmark
- Always compare a new model against a seasonal naive forecast
- If the model cannot beat the baseline reliably, simplify it
- Report improvement in operational terms, such as avoided overtime or missed windows
Decide what you are actually predicting
Many forecasting projects fail because the target does not match the decision. Define the target from the choice it will inform.
Parcels per zone per day
Supports route design, driver count, and hub labor for the next planning cycle.Stops per route
Parcels are not stops. Drop density changes how many vehicles you need.Volume by hour
Drives sortation shifts, dock scheduling, and same-day cutoffs.Service time per stop
Apartments, business parks, and rural stops behave very differently.Returns volume
Reverse flows consume capacity and are often forecast too late.Peak-day probability
A risk view of exceeding capacity is often more useful than an average.Feature engineering: the signals that move volume
Model choice matters less than the quality of inputs. Group features by how far ahead you will know them.
Feature rules that prevent embarrassing errors
- Only use values you will genuinely have at forecast time
- Treat promotions as planned inputs, not as surprises
- Handle stockouts, outages, and cancelled days explicitly, because they hide true demand
- Keep a clean record of feature definitions so results can be reproduced
Choosing a model family
There is no single best algorithm. Match the model to your data volume, number of series, and the explanation your planners need.
| Model family | Strength | Watch-out |
|---|---|---|
| Gradient boosted trees | Strong with tabular features and many zones, relatively quick to train | Needs careful lag features and time-aware validation |
| Hierarchical statistical models | Keeps forecasts consistent from zone to region to network | Less flexible with many external drivers |
| Neural sequence models | Can learn shared patterns across many related series | Needs more data, tuning, and monitoring effort |
| Quantile models | Produce ranges that suit capacity risk decisions | Ranges must be checked for calibration |
| Ensembles | Blend methods to reduce the chance of a single large miss | More moving parts to maintain |
A forecast is only as good as the fleet that can deliver it
Plan demand with confidence, then keep vehicles, scanners, and hub equipment ready with preventive schedules, inspections, and work orders in one platform.
Data foundations that decide model quality
Most disappointing forecasts trace back to data, not algorithms. Audit these areas before you tune a single model.
| Data area | Common problem | Practical fix |
|---|---|---|
| Order history | Order date and delivery date are mixed, so volume appears on the wrong day | Forecast the date that drives the work, usually dispatch or delivery, and store both |
| Geography | Zones are redrawn over time, breaking continuity | Map old zones to a stable grid or maintain a zone version table |
| Cancellations and returns | Net volume hides real handling workload | Keep gross, cancelled, and returned counts as separate series |
| Capacity limits | Sold-out delivery slots suppress true demand | Flag capped periods so the model does not learn the limit as demand |
| Promotion calendar | Campaign data lives in marketing tools only | Share a planned-events feed with the forecasting team |
| Operational outages | Days with vehicle or system failures look like low demand | Annotate disruption days and exclude or adjust them in training |
A short data-readiness test
- Can you rebuild yesterday's volume by zone from raw records?
- Are holidays and events stored as structured fields rather than notes?
- Do you know which days were capped or disrupted?
- Is there one owner for each source feed?
Peaks, promotions, and new zones
Average days are easy to forecast. The expensive misses happen at the edges, so design for them deliberately.
Seasonal peaks
Train with several prior peaks and weight them properly. Add features for days to peak and days since peak, because demand builds and decays in a pattern.Promotions
Treat promotion type, depth, and channel as inputs. Forecast the uplift and the following dip, since pulled-forward demand reduces later volume.New zones and products
With no history, borrow from similar zones using demographics and density. Replace the borrowed estimate as real data arrives.Plan for the unpredictable
- Hold a defined contingency, such as standby drivers or partner agreements, sized from the upper forecast bound
- Agree escalation rules before the peak, not during it
- Run a lightweight daily re-forecast during peak weeks using the latest orders
Earning planner trust with explainable forecasts
Planners override forecasts they do not understand. Transparency raises adoption more than a marginal gain in accuracy.
What to show with every forecast
- The forecast range, not only the central value
- The top drivers behind a change from last week
- Recent accuracy for that zone and horizon
- Any known data issues affecting the number
How to handle overrides
- Make overriding easy and record the reason
- Compare overrides with the model after the fact
- Learn from planners who beat the model consistently
- Feed confirmed local knowledge back as features
Common pitfalls and how to avoid them
| Pitfall | Why it hurts | Better practice |
|---|---|---|
| Optimizing a single accuracy score | A model can look good on average and fail on peak days | Report error by segment and by decision impact |
| Leaking future information | Results look excellent in testing and collapse live | Build features strictly from what is known at forecast time |
| Forecasting without an owner | Nobody acts on or maintains the output | Name a business owner and a technical owner |
| Ignoring asset constraints | The plan assumes vehicles and equipment that are unavailable | Include maintenance calendars in capacity planning |
| Over-engineering first | Complex models arrive before the data is trustworthy | Start simple and add complexity only when it earns its place |
A staged roadmap you can follow
Deliver value in small increments. Each stage should change one operational decision.
Validation that reflects real planning
Random train and test splits leak the future into the past. Use rolling-origin backtests that mimic how the forecast will actually be used.
Metrics worth reporting
Accuracy measures
- Weighted absolute percentage error, which copes with small zones better than plain percentage error
- Bias, to show whether you consistently over or under forecast
Decision measures
- Interval coverage, to check ranges contain outcomes as often as claimed
- Cost of error, using overtime, idle capacity, and missed window cost
From forecast to capacity decision
Use the forecast range to set thresholds in advance. Planners then act on rules instead of debating each number.
Turn low-demand periods into maintenance windows
- Use forecast troughs to schedule preventive work on vehicles and hub equipment
- Avoid taking critical assets out of service ahead of predicted peaks
- Plan inspections and tyre or battery replacement around demand, not around habit
Deploying and monitoring the model
A model that is not monitored will quietly degrade. Treat it like any other operational asset with an owner and a schedule.
Deployment checklist
- Automate data pulls and feature creation
- Publish forecasts where planners already work
- Store every forecast with its model version
- Allow planners to record manual overrides and reasons
- Keep a documented fallback to the baseline
Retraining triggers
- Sustained bias in one direction
- New service area or product line launched
- Change in delivery options or cutoffs
- Input data definitions altered
- Error rising against the baseline
Forecast capacity includes vehicle availability
A plan that assumes every vehicle is ready will fail the first time an asset is down. Connect demand planning to maintenance reality.
| Capacity input | Risk if ignored | Oxmaint capability |
|---|---|---|
| Fleet readiness | Planned routes lack a roadworthy vehicle | Asset management and preventive maintenance scheduling |
| Daily vehicle condition | Defects found only on the road | Digital inspections and mobile work orders |
| Repair lead times | Vehicles stuck waiting for parts | Inventory tracking and corrective work order status |
| Maintenance timing | Service falls on peak days | Scheduling aligned to low-demand periods |
| Downtime history | Availability assumed, not measured | Dashboards and reports on downtime by asset |
Put a cost on forecast error
Over-forecasting and under-forecasting cost different amounts. Quantify both so the model can be tuned toward the cheaper mistake.
Cost of forecasting too low
- Overtime and premium-rate partner capacity
- Missed delivery windows and failed first attempts
- Rushed routes that raise damage and exception rates
- Customer contacts and compensation
Cost of forecasting too high
- Idle drivers and underused vehicles
- Fixed leasing and fuel for routes that run light
- Hub labor with no parcels to process
- Lower stop density and higher cost per parcel
How to use the cost view
- Estimate the cost of one missed unit in each direction, using your own finance data
- Choose a forecast quantile that balances those costs rather than defaulting to the median
- Revisit the choice each quarter as rates, contracts, and service promises change
Governance that keeps the program healthy
- Review forecast accuracy in the same meeting that reviews delivery performance
- Keep a change log for models, features, and data definitions
- Document who may approve manual capacity decisions outside the thresholds
- Audit access to customer-level data and keep forecasts at an aggregated level wherever possible
Questions to ask in every quarterly forecast review
- Which zones or days produced the largest misses, and what did they have in common?
- Did planners override the forecast, and were the overrides better or worse than the model?
- Which capacity decisions were made too late because the forecast arrived after the deadline?
- Did any vehicle or equipment downtime reduce capacity below what the plan assumed?
- What single data or process fix would improve next quarter the most?
Frequently asked questions
Is machine learning always better than a statistical forecast?
No. It helps most with many series and many drivers. Always test it against a seasonal baseline before adopting it.
How much history do I need?
Enough to cover at least one full seasonal cycle, ideally more. Short histories favor simpler or hierarchical models.
Why use forecast ranges instead of one number?
Capacity risk is asymmetric. Ranges let you set thresholds for staffing, vehicles, and partner overflow in advance.
How does maintenance affect demand planning?
Unavailable vehicles cut real capacity. You can track fleet readiness in Oxmaint to plan around it.
Can I see maintenance scheduling around peaks?
Yes. Book a demo to see preventive scheduling and inspections for a delivery fleet.
Plan demand ahead, keep capacity ready
Pair your forecasts with maintenance planning that protects vehicle and equipment availability during the periods that matter most.






