The Stanford drop is at 11:45. So is Google. So is Apple. So is LinkedIn. On a good Wednesday, our catering channel had a dozen corporate lunches leaving the kitchen inside the same 90-minute window, and every one of them had a client contact standing in a lobby at exactly the promised minute expecting the food to be there. Miss the window by ten minutes and you have a room of hungry engineers, an embarrassed office manager, and a very short conversation with the enterprise account manager about whether we get the next order.

Enterprise catering logistics is not a driving problem. It is a windowing problem. The vehicles are the smallest constraint in the operation. The delivery window is the largest. Once you see it that way, the whole discipline reorganizes itself.

I ran a catering channel that served Stanford, Google, Apple, Meta, LinkedIn, Salesforce, Cisco, Adobe, and Nvidia out of our Bay Area kitchens. Peak morning volume ran up to fifteen simultaneous drops across the Peninsula and South Bay. What follows is how you build a schedule that holds under that load, and what breaks it when it does not.

Why catering logistics is different from restaurant logistics

A restaurant delivers to a table twenty feet away. The friction is timing on the pass. A catering operation delivers to a lobby thirty minutes away, and the friction is everything between the kitchen door and the client contact. The two logistics disciplines look similar and behave nothing alike.

In a restaurant, if the plate is 90 seconds late, the guest waits and the meal continues. In catering, if the drop is ten minutes late, the client's meeting has already started, the food goes cold, and the invoice conversation gets awkward. The tolerance is much smaller and the visibility is much worse, because you cannot see the client until the driver arrives.

The whole discipline of catering scheduling exists to close that visibility gap and hold the window.

Fleet sizing is a peak problem, not an average problem

The most common fleet sizing mistake I see is a group that has averaged its way into three vehicles when its peak Wednesday needs five. Average is comforting. Average is also wrong. Peak volume is what actually shows up on the schedule.

The right way to size the fleet is to look at the last twelve weeks of morning drop volume by day of week, take the 90th percentile of drops in the peak 90-minute window, and back into vehicle count using average drive time between stops in your delivery radius. In our Peninsula operation the math looked like this:

  • Peak morning window: 10:45 to 12:15, 90 minutes of usable delivery time before the first drop and 12:00 as the last acceptable arrival.
  • Average time per stop: 20 minutes of drive plus 10 minutes of setup and departure. Call it 30 minutes per drop, per vehicle.
  • Max drops per vehicle in the peak window: three, with a tight turn between them.
  • Peak 90th percentile morning drops: twelve.
  • Fleet requirement: four vehicles. We ran four with a fifth on standby for the top-decile Wednesdays.

Below-peak days used three vehicles and one driver flexed to prep. Above-peak days we activated the standby vehicle and pulled a driver from the delivery day pool. Both sides of the flex were planned in advance, not reactive.

The dispatch schedule that actually holds

Here is the schedule for a representative Wednesday morning. Three vehicles, eight drops, one dispatcher watching the whole thing.

Wednesday morning dispatch schedule 10:30 10:50 11:10 11:30 11:50 12:10 VAN 1 VAN 2 VAN 3 load Stanford · 11:15 Meta MPK · 11:40 LinkedIn · 12:00 load Google · 11:30 Google · 11:45 Nvidia · 12:00 tight load Apple · 11:35 Adobe SJ · 11:55 Load bars in gray. Delivery windows in gold. Tight-window drops flagged in red for dispatcher watch.

Fig. 1 · One morning, three vehicles, eight drops. Every window plotted before the day starts.

Sequence backwards from the tightest window

The instinct is to build a route starting from the kitchen and heading outward. That is the wrong direction. The kitchen is not the constraint. The tightest delivery window is the constraint, and you have to anchor to it or the whole route drifts.

Sequencing backwards means: for each vehicle, identify the drop with the tightest window (usually the earliest arrival time on the route). Work backwards from that drop through the earlier stops, computing drive time and setup time between each. The result gives you the load-out time for the vehicle at the kitchen. That load-out time is a hard number, not a suggestion.

Miss the load-out by five minutes and you will miss the first drop by five, the second by ten (because you skipped the recovery buffer), and the third by fifteen. Load-out discipline is the whole logistics discipline in one number.

The load-out cutoff is not a target. It is a promise the whole route depends on. Miss it once and the day's mistakes compound.

The onsite setup window dictates the whole schedule

What most operators miss is that the delivery is not done when the vehicle arrives. It is done when the client can eat. The setup window between vehicle arrival and food ready is where most misses hide.

Standard corporate lunch setup: ten to fifteen minutes for a two-driver drop, longer if the delivery includes chafing dishes, sternos, or a full display. If the client wants food ready at noon, the vehicle needs to be at the loading dock by 11:45. If you quoted the delivery window as noon, you already lost.

The fix is at the quoting stage. Every catering quote we sent specified two windows: the vehicle arrival window and the food-ready window. The client cared about the food-ready time. The dispatcher scheduled to the arrival time. That separation kept the schedule honest.

What breaks and how to catch it

Three failure modes account for almost every catering delivery miss I have seen across the years:

The kitchen ran late on load-out

The order was not ready at load-out cutoff. Usually a prep failure or a packing failure. The dispatcher needs a running visibility on order readiness by drop, updated every 15 minutes in the peak load-out window. If an order is trending late by 6:30 for a 10:45 load-out, that is a proactive client call at 7:00, not a scramble at 10:30.

Drive time was under-scoped

Google Maps says 22 minutes. Actual peak-hour drive with parking and check-in at a corporate campus is 35 to 45. Every drive time in the schedule should be a peak-hour number from a real historical log, not a fresh routing estimate. Under-scoping drive time is the number one cause of cascading misses.

The client changed the ready time day-of

An account manager pushed the meeting up. The client emails at 9:30 asking for delivery at 11:15 instead of 11:45. The dispatcher's answer is a written yes or no in ten minutes, based on the schedule as it exists. Not a maybe. Not a "we will try." A firm answer. Trying to accommodate every day-of change is the fastest way to blow the schedule for the other drops on the route.

The one metric that runs the fleet

Every catering channel I have run tracks a lot of numbers. Revenue per drop. Miles per drop. Driver hours per drop. Cost per drop. Only one of them matters as the operating metric: on-time-in-window percentage.

On-time-in-window is the share of drops that arrived inside the promised delivery window on the promised day. It captures everything: fleet sizing, sequencing discipline, load-out timing, drive-time realism, and dispatcher decision quality. When it drops, one of those five is broken. When it is above 97 percent, all five are running.

In our Bay Area operation, the target was 98 percent and the alarm was any week below 96. Any week below 96 got a Monday morning review of every miss, root cause identified, and a written fix logged before the following Wednesday's peak. That review discipline was the single biggest reason the metric held.

What the dispatcher's morning actually looks like

Fleet sizing, sequencing, and metrics are the strategy. The dispatcher is the person who runs it. A good dispatcher is worth two vehicles of extra capacity because a good dispatcher catches trouble before it turns into a missed window.

Here is what the peak morning looks like from the dispatcher's seat. This is not aspirational. This is the running discipline in a channel doing 60 to 80 drops a week.

5:30am to 6:30am, the pre-load review

Every order confirmed against the ready board in the kitchen. Any order not on track for load-out cutoff gets flagged and the account manager gets notified so the client call happens before the client asks. Vehicle assignments confirmed. Driver call-in confirmed. Route sheets printed and handed off with any special instructions written in the margin.

6:30am to 9:30am, load-out enforcement

Dispatcher stands at the loading dock, not at a desk. Every vehicle load is checked against the packing list before the doors close. Any missing item gets sourced or communicated to the client in real time. Vehicle departure time is logged for every route. This is the single most operationally intense hour of the morning.

9:30am to 12:15pm, live dispatch

Every vehicle tracked on a live map with a countdown to the next drop window. Any vehicle trending late by more than 8 minutes triggers a proactive client call. Same-day change requests get triaged in under 90 seconds each. Traffic incidents get rerouted in the moment.

12:15pm to 2:00pm, the debrief

Every driver checks back in with any incident from the morning. Any late drop gets a written root cause the same day. Any client complaint from the morning gets logged into the complaint log with a category and a resolution note. Tomorrow's schedule gets first-pass review based on today's actuals.

A dispatcher who runs this rhythm every morning holds a 98 percent on-time-in-window rate. A dispatcher who runs a looser version of it holds 92 percent, and the four points of slippage is where the enterprise account risk accumulates.

Mistakes I would not repeat

Three logistics mistakes I made in the early days that I would not make again:

Over-owning the fleet

I bought a fifth vehicle when we needed a fifth vehicle two days a month. The vehicle sat 22 days a month. The right move was a contracted third-party driver for surge days, at higher per-drop cost but much lower annual carrying cost. Own to average peak. Contract for the surge.

Under-investing in the dispatcher

I ran the schedule myself for the first six months because I trusted the schedule and did not want to hire a dispatcher. That worked until the day I could not be in the office by 6am and three drops missed their windows because there was nobody watching the load-out floor. The dispatcher is a real job, not an afterthought.

Quoting delivery windows too tight

We quoted 15-minute windows to win business. We should have quoted 30-minute windows and honored them 99 percent of the time. A wider quoted window plus a higher hit rate beats a tighter quoted window plus a miss every time. Enterprise clients care about honesty more than they care about narrowness.

The point

Catering logistics is a windowing discipline. Fleet size is set by peak, not average. Routes are sequenced backwards from the tightest window. Load-out is a hard cutoff. Drive times are historical, not fresh estimates. The dispatcher is a real seat. And the whole operation is measured on one metric: on-time-in-window percentage, tracked weekly, with any miss below the alarm threshold getting a same-week fix.

Get those five right and the catering channel will grow. The clients that pay for enterprise catering will pay a premium for a group that holds the window. They will not pay for the group that runs cheap and misses.