Decision 3 · Service resilienceAll decisions

Can we keep our delivery promise when demand more than doubles?

The answer

Yes, without buying a van. Add two hours of overtime, send vans out again as they come back, and buy the rest from a delivery partner under a contract sized for 2,000 packages.

Peak day
3,906
packages ordered, against 1,600 the fleet can carry
Packages outsourced
25% fewer
1,447 handed to the delivery partner instead of 1,922, because vans go out again as they come back
Cost of the peak day
5–19% less
$29,500 to $35,000, against $36,651 for the best one-dispatch plan, with every package delivered and no new vans. The range depends on what a van's second trip costs.

Independent project · Simulated city of 500 stops around a New York depot · December 2025 · Python, Google OR-Tools

Fig. 1 · Each dot is 20 packages. The dashed line is everything 32 vans can carry.Normal day 1,490 · Peak day 3,906 (up 162%)
I · feasible

Doing nothing breaks the promise.

On the busiest day of the season, a city fulfillment center gets more than twice its normal orders. Its fleet can carry 1,600 packages. Every other package needs a plan.

  • A normal day is 1,490 packages. The peak day is 3,906, across 500 stops in eight neighborhoods.
  • The fleet is 32 vans carrying 50 packages each: 1,600 a day.
  • Do nothing, and 59% of packages arrive late. Late penalties alone reach $41,508 for the day.
  • Overtime by itself is not enough: even two extra hours deliver only about half the packages.
1,600packages the fleet can carry
2,306packages over capacity
59%late if nothing changes
$41,508in late penalties for one day
Overtime$6.25

per extra package, up to two hours before driver fatigue becomes the risk

Delivery partner$12.50

per package, as much as the contract allows

Late delivery$18.00

per package in penalties, and possibly the customer

Timingfree

vans come back after four hours, and can go out again

Six ways through the day, priced per package delivered.

The figure on the right is the cost per package: everything the peak day costs (the fleet's normal day, overtime, partner fees and late penalties) divided by the 3,906 packages ordered. Lower is better. The bar shows the same number.

Overtime onlyOnly 51% delivered on time
$12.09
Partner takes all overflow2,306 packages outsourced
$10.00
48 min overtime + partner
$9.75
72 min overtime + partner
$9.63
96 min overtime + partner
$9.51
2 hours overtime + partnerBest one-dispatch plan · $36,651 for the day
$9.38
II · optimal

The cheapest capacity is the van already coming back.

Every package moved from the partner to overtime saves $6.25, so the best one-dispatch plan uses all the overtime drivers can safely give. Then I asked a different question: what if the vans go out more than once?

8:00Scroll to run the day
0orders so far
0carried by our vans
0sent to the partner
  1. 8:00859 orders. The vans leave with room for 1,600, half empty, and are away until noon.
  2. 10:001,020 orders. Every van is out, so all 1,020 go to the partner.
  3. 12:001,156 orders. All 32 vans are back. 16 go out again with 800 packages; 16 wait for the 2 o'clock orders. 356 go to the partner.
  4. 14:00871 orders. The 16 waiting vans carry 800; 71 go to the partner. They are back at 18:00, after two hours of overtime.
Fig. 2 · Wave dispatch on the peak day. Dark is loaded van space, the dashed box is the space that went out; the dotted line under it is the four-hour round trip.

One dispatch, two hours overtime

On our vans
1,984
Sent to the partner
1,922
Cost of the day
$36,651
Per package
$9.38

Waves: vans go out again

On our vans
2,459
Sent to the partner
1,447 (−25%)
Cost of the day
$29,500 to $35,000
Per package
$7.56 to $8.95

Same 32 vans, every package delivered, and 475 fewer packages handed to someone else.

The saving is a range because it depends on what a van's second trip really costs: 5% if every in-house package is charged at its full share of the fleet's day, 19% if drivers and vans are already paid for and only overtime and the partner add cost.

III · engineered

The cost holds when the forecast is wrong.

Forecasts are never exact, so I tested the plan 20% either side. Move demand and watch what one package costs under the best one-dispatch plan.

Against the forecast of 3,906 packages.

Cost per package moves by under a dollar either way. The pressure point is the partner: above about 4% over forecast, it needs more than the 2,000-package contract, so the contract should allow a flexible top-up.

Cost per package delivered
$9.38
Packages 3,906Sent to the partner 1,922Cost of the day $36,651

The real safety net is the partner contract.

Partner capacity 1,500422 late

11% of the day's packages miss the promise.

Partner capacity 1,800122 late

Still 3% late, and penalties start to bite.

Partner capacity 2,0000 late

Every package delivered, with a small buffer for a bad hour.

To
Chief Operations Officer
From
Arnav Chudiwale
On
Keeping the delivery promise on peak days

Keep the promise without buying a van.

  1. Make two hours of overtime the peak-day protocol. Each package it moves off the partner saves $6.25.
  2. Sign a partner contract that guarantees 2,000 packages. Below about 1,900, packages start going late.
  3. Pilot wave dispatch. Re-sending vans as they return cuts partner volume by 25% on the same fleet.
  4. Next test: don't send the whole fleet at 8:00. The early wave leaves half empty, which is why nothing is left for the 10:00 spike. Holding vans back is the next saving.
Arnav Chudiwale

What the model can't tell you.

  • The 500 stops are simulated around a New York depot, clustered in eight neighborhoods.
  • Orders arrive in four fixed windows, every round trip takes four hours, and there is no traffic, breakdown or failed delivery.
  • What a van's second trip really costs is uncertain, which is why the saving is a range.
  • The wave run was first checked on a demand profile that summed to 3,037 packages; the figures here are re-run on the full 3,906.

For technical readers.

Models, data and tools

1 · Peak-day plan (linear program). Decides how to cover the gap between what is ordered and what the fleet can carry, at the lowest cost.

Given
D = 3,906 packages ordered · B = 1,600 packages the fleet carries in a normal day (32 vans × 50) · r = 192 extra packages per hour of fleet overtime (6 per van-hour × 32 vans) · co = $1,200 per fleet overtime hour ($37.50 per van-hour) · cu = $12.50 per partner package · cl = $18 per late package · U = partner contract limit · F = $10,225.81, the fleet's fixed day cost
Decide
o = overtime hours for the fleet (0 to 2) · u = packages sent to the partner · l = packages delivered late

Objective · lowest cost of the dayminimize   F + co·o + cu·u + cl·l ConstraintsB + r·o + u + l = D every package is delivered by someone, or late
0 ≤ o ≤ 2 at most two hours of overtime
u ≤ U the partner takes no more than the contract
u, l ≥ 0

Result: o = 2, u = 1,922, l = 0, for $36,651. Overtime is used first because it costs $6.25 per extra package, against $12.50 for the partner and $18 for a late delivery. The six strategies above are this model with o fixed at 0, 48, 72, 96 or 120 minutes; "Overtime only" also sets u = 0.

2 · Routing (capacitated vehicle routing, Google OR-Tools). Builds the van routes for a normal day.

Given
N = 500 stops plus one depot · K = 32 vans · Q = 50 packages per van · qi = packages for stop i · cij = travel distance from stop i to stop j
Decide
xijk = 1 if van k drives from i straight to j, otherwise 0

Objective · shortest total drivingminimize   Σk Σi,j cij xijk Constraintseach stop is visited by exactly one van, once
each van starts and ends at the depot
Σi on route k qi ≤ Q no van carries more than 50 packages
no loops that skip the depot

3 · Wave dispatch (simulation). Tests sending vans out again as they come back, instead of once in the morning.

Given
Windows w = 8:00, 10:00, 12:00, 14:00 · aw = packages ordered in each window (859, 1,020, 1,156, 871) · round trip = 4 hours · vw = van space at the depot when the window opens (1,600, 0, 800, 800): all 32 vans leave at 8:00 and are back at noon; 16 go out again at noon, so only the other 16 are free at 2 o'clock
Rule
On our vans in window w = min(aw, vw); the rest goes to the partner

Result: 2,459 packages on our vans and 1,447 to the partner, against 1,984 and 1,922 with one dispatch. Any split of the noon fleet between 12:00 and 2 o'clock gives the same 2,459, so the result does not depend on that choice. The day costs $29,513 to $34,964 depending on the price of a second trip, 5–19% below $36,651.

Sensitivity. Demand ±20% in 5% steps, partner capacity 1,500 to 2,000, overtime from 30 minutes to two hours. Maps in Folium.

Code on GitHub →