A Pizza Delivery Operation in 2004
A constantly evolving optimization problem, with real maps!
I saw some goofy post recently asking how food delivery drivers managed to arrive at the right house before GPS.
Well, here’s how we did it at American Pie in Monroe, CT (a business I still somehow manage on Google Maps!) circa 2004. I worked there as a delivery driver (and delivery coordinator) at the tail end of high school and during breaks from college for a couple of years.
At the very busiest, we had almost 20 drivers on duty. This was many years before third-party delivery services, or the Gig Economy, came to be. Driver experience ranged from a couple weeks to several months.
We entered orders in a (at that point in time state-of-the-art) Point of Sale system (which I helped design!), and delivery orders would go into a queue we could monitor on the Deliveries screen at one end of the long counter.
On the Deliveries screen, we could see (from what I recall) the Address, Number of Items (maybe…) and Time Since Ordered. Once an order exceeded 30 minutes (or so), it went Red on the screen (meaning “Get It The Fuck Outta Here!”). We normally promised 30–35 minute deliveries, though I often extended that to 40–45 at peak periods. A typical order would be out the door in 15–20 minutes.
Drivers were assigned to orders through the simple touch screen interface on the Deliveries screen, and there was a simple queue on the screen to see whose turn it was based on when the driver signed back in after returning from a delivery. Fortunately, any driver who was signed back in could take any orders; the automatic queue was just for convenience. Any number of orders could be assigned to a given delivery.
Once orders started to stack up, there was a very simple rule:
Don’t take just one order.
We had terms for deliveries with multiple orders. I recall calling a two order delivery a “Two Bagger”, as it required two (or more) warming bags. We tried to aim for as many “Three Bagger” trips as possible, as it was the optimal delivery size. Some drivers got antsy and would just take a One Bagger which was in the red. That was frowned upon, and drivers who did so were shamed mercilessly.
We delivered to (at that point in time) three towns: Monroe, Trumbull, and (my hometown) Easton. The combined area of the three towns was about 75 square miles.
We had large laminated maps of the towns served taped to the wall near the Deliveries screen, and would trace out routes on that map using dry erase markers. Typically, the smarter drivers would help the less-experienced drivers to trace out a route. Complicated routes were written down on receipt paper, but more experienced drivers memorized the route. No GPS. Most of us were teenagers.
What factors did we incorporate into our routing?
From what I recall:
1. Order Time: try to get the first order delivered first, if possible. Don’t have it be the last in a Three Bagger, for instance. You also didn’t want to wait too long to take the final order: if it was gonna take another 10 minutes, you just left it for the next guy.
2. Order Total: this may surprise you, but drivers were (and are) paid meager (below minimum) wages and relied heavily on tips. If you deliver three orders that are each just a large cheese pizza, you’d get something like $6 in tips for your troubles. If one of those orders was, say, three pizzas: that’d typically be an additional $5 in tips for the same route. If you don’t keep drivers happy, they stop showing up to work.
Get Pat Canny’s stories in your inbox
Join Medium for free to get updates from this writer.
3. Destination Proximity: you try to cluster orders together, even if it means skipping over an order. If you had three orders all to South Trumbull near the Bridgeport line (i.e., far away), even if they came in 10–15 minutes apart, you took all three. You can think of this as “clustering”.
4. Driver Experience: don’t dump a Four Bagger on the new guy. Give them something easier, even if it’s not optimal. If you know your top driver is coming back soon, give them the more complicated delivery. You’ve gotta work with what you got.
5. Customer Reputation: I can’t say how we tracked this, but… we knew where the shitty tippers lived. If you happened to fit into that category, you may have found your delivery was going to take a bit longer. We also favored new addresses; good first impressions tend to lead to bigger tips and repeat business.
We also had to deal with the occasional “timed order”, such as a delivery to an event or school. Those simply had to be planned around; if you happened to get a nearby order ready to go when you left with a timed order, you took it.
Timed orders suck for drivers.
Oh, and at any point in time, any of the following could disrupt the operation:
1. Modified order
2. Cancelled order
3. Kitchen or ordering error
4. Lost or missing driver
5. Non-responsive customer (e.g., won’t answer the door)
6. Wrong address
7. Accident
8. Bad traffic
9. Driver on a break
10. Forgotten item (often a drink)
My primary job towards the end of my tenure was to route orders, though I would still make over 10 deliveries each shift. The way I think about it now is as a constantly evolving optimization problem. It was great fun.






