xellstorm Learning center
EN
Open the app

What is the chance a delivery arrives on time?

Worked example · Delivery lead times · Updated October 2026

Fit plausible distributions to comparable past lead times, then measure the share that arrive within the promised time. In this synthetic example, 77.8% of 18 completed deliveries took at most 10 days. A lognormal fitted to those observations gives 73.8% on-time outcomes in 10,000 simulated deliveries. The history is deliberately small: this is an illustration, not a carrier’s performance record.

The history and the promise

History!B2:B19 contains 18 synthetic elapsed lead times in days, from 3.2 to 24.3, with a mean of 8.4. Fractions of a day are retained. On the Delivery sheet, B2 holds the 10-day promise and B4 is the uncertain lead time.

Three formulas make the result explicit: B6=B4 reports the lead time, B7=B6-B2 reports signed lateness and B8=IF(B6<=B2,1,0) flags an on-time delivery. Arrival exactly at the promise counts as on time. Negative lateness means early arrival. The model draws one future delivery per trial; it has no activity network, calendars, capacity queues or sequence of project tasks.

Compare plausible distributions

The example compares lognormal, gamma and Weibull distributions, each fitted by maximum likelihood with its lower bound fixed at zero. These positive families allow a long right tail: occasional slow deliveries. The table ranks these three candidates by AIC, a measure of fit with a penalty for the number of estimated parameters; lower is better.

Three fitted families on the same synthetic history; predictions hold the fitted parameters fixed
FamilyAICΔAICK-SOn timeP90 days
Lognormal101.580.000.10073.8%13.8
Gamma104.442.860.13770.1%14.2
Weibull107.626.040.16666.7%15.1

Lognormal has the lowest AIC among these candidates. That ranking is a relative comparison, not proof that it is the true distribution. The K-S distance is the largest gap between the observed and fitted cumulative probabilities; smaller means a closer in-sample match. Its usual p-value is optimistic when the same observations were used to estimate the parameters.

From a fitted shape to an on-time probability

Observed and fitted cumulative delivery lead timesCumulative share by lead time in days: 18 synthetic observations and 10,000 simulated deliveries from their fitted lognormal. At 10 days, 77.8% of the history and 73.8% of fitted simulations are on time.0%50%100%0102010 daysObserved historyFitted simulation
Dashed steps show the observed history; the solid curve shows simulations from the fitted lognormal. Read the cumulative share at the promised lead time to get the on-time probability.

Under the fitted lognormal, the simulated median lead time is 7.3 days and P90 is 13.8 days. P90 is a modeled promise met by about nine deliveries in ten, not a 90% confidence interval for the true lead time. The probability of meeting the current 10-day promise is 73.8%; the remaining 26.2% arrive later.

The observed on-time share and the fitted probability need not match. One counts this finite history at a single threshold; the other uses a smooth distribution fitted to all its values. The table also shows how the choice of family changes the prediction.

A small sample remains small after simulation

Running 10,000 trials reduces numerical noise in the fitted model’s answer. It does not turn 18 observations into 10,000 pieces of real evidence. The simulation holds the fitted parameters fixed; it does not include uncertainty about their estimates or the choice of family.

With so little history, a few slow deliveries can move the fitted tail substantially. Check the individual observations and the histogram or P-P plot, compare plausible families, and test predictions against later deliveries. Before fitting real data, separate routes or service levels that behave differently and check for trends. An order still in transit has an incomplete lead time: dropping all such orders can make performance look faster than it is.

This fit describes comparable completed deliveries under stable conditions. It does not model a new supplier, a strike, a changed route or a shared disruption that delays many orders together. Those need explicit assumptions or scenarios beyond this one-delivery example.

Try it yourself

  1. Open the example and run it. Its saved input is the lognormal fitted to the bundled history, with the on-time flag as a target.
  2. On the Distributions step, select Delivery!B4, choose From data, enter History!B2:B19 and choose Fit range. The app tries additional suitable families, so its full ranking can differ from this three-family comparison.
  3. Review the fitted shapes and their support, select a plausible family and use it for the input. Run again and compare the on-time target and P90.
  4. If you replace the history, fit it again and apply the new distribution. A fitted input is a snapshot of the data, not a live link that automatically refits after an edit.

Questions

How many historical deliveries are enough?

There is no universal number. Tail promises need more evidence than a typical delivery time, and changing or mixed processes can make a large sample misleading. This small example demonstrates the workflow; it does not establish a reliable service guarantee.

Should I use the family with the lowest AIC automatically?

No. Check whether its range and tail make operational sense, whether close alternatives change the decision and whether later data support its predictions. A fit can describe the observed sample well and still predict the future poorly.

Is this the same as project schedule risk analysis?

No. This model fits the elapsed time of a single delivery from historical observations. Project schedule risk analysis combines uncertain activities, dependencies and risk events to calculate a project finish.

Related

xellstorm is a browser-based Monte Carlo simulation tool for Excel models: no add-in, and the workbook never leaves your computer.