Ryan Walker · Where's my order? case study
Ryan Walker

Delivery & Fulfillment

Where's my order?

At ezCater, a catering marketplace, customers wanted to know where their food was, and restaurant partners (the restaurants that sell on ezCater) were about to pay a fee for every delivery they didn't track. I designed the tools that answered the first question and made the new rule fair.

RESTAURANT
1
ReadyMark Food Ready
11:55●●●ezcater
#UC9-UAC marked ready at 11:55AM
Step 1 of 3Order ready for pickup
RESTAURANT · DRIVER
2
HandoffOrder labels
Party meat platterSweet Rice Thai#KHK-GRV(1 of 3)
DRIVER · GUEST
3
On the wayLive delivery tracking
Arriving 12:30 PM
RESTAURANT
4
Look backOperational Metrics
Fully tracked orders 90%Goal: 100% 50 orders

Outcome

  • Helped raise fully tracked deliveries from 65% to 80% in seven months, as partners adapted to a new tracking requirement
  • Customer-to-driver calling, placed on the tracking page I designed, cut "where's my order" calls and chats to support by up to 15% and support costs by 7.7% in an A/B test
  • Rebuilt the performance page that can get a restaurant hidden from customers, after a survey found only 1 in 81 partners knew which metrics counted

Behind the work

Role
Senior Product Designer, sole designer across Delivery and Fulfillment
Team
Two PMs, two engineering teams, one UX researcher, one content designer
Timeline
2025–2026
Status
Four tools shipped; order labels validated and scheduled for development

When lunch for 50 is on the line, customers ask: where's my order?

You've watched the little car on DoorDash or Uber Eats inch toward your door. Now imagine you've ordered lunch for 50 and there's no map at all. Many restaurants delivering their own ezCater orders didn't share tracking, so customers called support to ask: Is it on time? Running late? Showing up before we're set up? Every call cost money.

Many restaurants delivering their own ezCater orders shared no tracking, so customers ordering lunch for 50 called support to ask where it was. Every call cost money.

ezCater's answer was a rule: starting in 2026, orders restaurants delivered themselves had to be fully tracked, meaning the customer could follow the driver live from pickup to drop-off, with a fee for each one that wasn't. Partner satisfaction was already falling, so we set an order of operations: insight and tools first, accountability second.

ezCater added a fee for orders that weren't fully tracked, starting in 2026. We set the order: insight and tools first, accountability second.

CUSTOMER "Lunch for 50 starts at noon. Where is it?" Can't see the driver
EZCATER SUPPORT "Let me check with the restaurant." Can't see the driver either
RESTAURANT "Our driver left a while ago." Didn't share tracking
Every call cost ezCater money, and nobody got a real answer.

Ready: Mark Food Ready. Third-party drivers sometimes claimed food wasn't ready, which triggered wait fees ezCater paid. Staff could mark an order ready from their phone, with photos and a package count, creating a timestamp both sides could trust. Staff mark an order ready from their phone, with photos and a package count, so wait-fee disputes have a timestamp both sides trust.

Step 1: Order ready for pickup, with the marked-ready timestamp at the top
STEP 1Mark it ready
Step 2: Enter package count
STEP 2Count the packages
Step 3: Photo of the bagged order before submitting
STEP 3Snap a photo
THE CASE FOR OPTIONAL

The business wanted Mark Food Ready required on every order with an ezCater-sourced driver. My researcher and I pushed back with the math below. It showed we'd be asking too much of partners: the time it cost them outweighed what requiring it would gain, so it stayed optional.

6,000orders a day
×
312days a year
×
1 minof staff time
×
$0.23per minute
=
$430,560a year in partners' labor

Handoff: one sticker label, three audiences. Restaurants print a sticker for every package of food, and that small label has to work for three people at three moments. I mapped the journey first: the restaurant packing the order (is anything missing?), the driver at pickup and drop-off (which order is mine, and is it all here?), and the guest at the table (what is this, and can I eat it?). Two rounds of testing with 18 partners and 14 drivers refined the hierarchy and simplified printing to one flow that defaults to one label per item. One label has to work for the restaurant, the driver and the guest. Testing with 18 partners and 14 drivers refined it to one print flow.

{{ cWhen }} {{ cQ }} {{ cWhy }}
Food label: Party meat platter, modifiers, dietary icons, Sweet Rice Thai Kitchen, Required: Utensils & Setup, order #KHK-GRV, 1 of 3

On the way: designed for an anxious host. Someone with 50 people waiting needs to know their event will be okay, so the page answers their questions in order: a plain-language status (is it on time?), a prominent "Updated 30 seconds ago" bar (how current is this ETA?), every vehicle on big orders (is it all coming?) and a one-tap Call driver button (what if something's wrong?). Partners see the same view from their order details. The page answers a nervous host's questions in order: is it on time, how fresh is this ETA, is it all coming, and who do I call.

Live Delivery Tracking on desktop: Omar is en route, status bar, estimated arrival 5:37 PM, Updated 30 seconds ago, driver, restaurant and destination, with a mapLive Delivery Tracking on mobile: map with restaurant, car and destination, Omar is en route, estimated arrival 5:37 PM, Updated 30 seconds ago and a Call driver button
Multi-driver tracking on desktop: estimated arrival at restaurant 12:15PM, Updated 30 seconds ago, 4 drivers with individual status cards and Call driver, and a map with numbered carsMulti-driver tracking on mobile: map with four numbered cars, estimated arrival 12:15PM, Updated 30 seconds ago and a card per driver with Call driver

Improve: Operational Metrics. The performance page sent mixed signals, with alarming red buttons and poor hierarchy. I put the metrics that can pause a store first and partnered with our content designer to rewrite the content in plain language. A concept test with 13 partners confirmed the paused state read clearly. Metrics that can pause a store come first, in plain language. A concept test with 13 partners confirmed it read clearly.

{{ oCur.label }}
{{ p.n }}{{ p.t }}
{{ oCur.alt }}

The tracking dashboard: ship an MVP early, iterate with evidence

Partners needed to see which orders weren't tracked, and why, before the fees kicked in.

{{ dCur.lead }} {{ dCur.body }} {{ dCur.short }}

{{ dCur.label }}
{{ p.n }}{{ p.t }}
{{ dCur.alt }}

Takeaways

  • Insight before accountability. People accept a standard they can see and act on, so partners got the tools before the fees. Partners got the tools before the fees.
  • Speed is a design decision. A simple V1 in a week bought partners time, and real use shaped the final version. A quick V1 bought time, and real use shaped the final.
  • Every extra step costs a busy kitchen. Mark Food Ready wasn't adopted by everyone, and I'm glad we never required it. Not everyone adopted it, and we never required it.
← All work