Case Study · Jack in the Box · Ordering Experience & Speed

We cut ordering time in half —
by removing work guests never asked for.

Slow ordering times weren't a performance problem — they were a design problem. Every unnecessary field, every extra tap, every round-trip API call was time guests didn't have. We took it all back.

50%
Reduction in end-to-end ordering time — from opening the app to completing checkout
Sign-up fields eliminated — birthday, zip code, and other unnecessary data collection removed
1-tap
Reward redemption — from a multi-step flow requiring navigation to a single in-context action
0
Unnecessary back-navigations in the happy path — the guest stays in flow from start to finish
Brand
Jack in the Box
Role
Director of Product
Scope
iOS, Android, Web
Focus
Ordering, UX, Performance

A user's time is measured in minutes — and we were wasting them.

The promise of digital ordering is speed. A user who opens the app instead of waiting in line is trading one channel for another — and they expect the digital experience to win. When it doesn't, they don't come back.

At Jack in the Box, the ordering funnel had accumulated friction over time in the way most digital products do: incrementally, invisibly, and with good intentions. A birthday field was added to personalize offers. A zip code field was added to localize content. A reward redemption flow required guests to leave the cart, navigate to the offers screen, select a reward, and return. Each decision made sense in isolation. Together, they were adding meaningful time — and drop-off — to an experience where seconds matter.

The problem wasn't any one thing. The problem was the accumulation. When we mapped the full ordering flow end-to-end and measured where time was actually going, the picture was clear: friction had compounded into a guest experience that was working against the product's core job.

"Every unnecessary tap, every extra form field, every screen a guest had to navigate back from — it was all time that belonged to the guest. We set out to give it back."

Speed isn't just performance —
it's every decision that slows a guest down.

Making an app faster is not one problem. It's the product of dozens of smaller decisions about what to ask guests to do, when to ask them, and whether to ask at all. We identified four distinct categories where time was being lost.

01
Sign-up fields no one needed to complete
Birthday, zip code, and other data collection fields were adding length to account creation before a guest had ever placed an order. The data had marginal value. The cost — in drop-off and time — was real.
02
Reward redemption buried in navigation
To apply a loyalty reward, guests had to exit the cart, go to an offers screen, select the reward, and navigate back — often losing their place in the process. A perk designed to drive engagement was creating detours.
03
API latency adding invisible wait time
Menu loading, cart updates, and location resolution were producing perceptible delays at key moments in the flow. The UX felt slow even when the design was clean — because it was slow underneath.
04
Navigation patterns that interrupted momentum
Product detail, customization, and bag editing required full-page navigations — pushing guests into new screens for interactions that could happen inline. Every back-nav was a moment where guests could lose the thread.

None of these were abstract concerns. We could measure where guests were slowing down, where they were abandoning, and how long each step was actually taking. The data pointed to the same conclusion from multiple directions: the ordering flow had too much work in it. Our job was to remove as much of that work as possible without degrading the experience or losing signal we legitimately needed.

Remove the work first.
Optimize what remains.

The ordering speed initiative wasn't a single feature — it was a coordinated effort across sign-up, rewards, performance, and UX patterns. Each workstream attacked a different category of friction. Together, they cut ordering time in half.

Sign-up Stripped the registration flow to what actually mattered
We audited every field in the sign-up form against a single question: does this unlock something meaningful for the guest right now? Birthday and zip code didn't pass. Both were removed. Account creation got shorter, faster, and stopped asking guests to invest in a relationship before they'd had a single experience worth investing in. First impressions improved measurably — and the guests who made it through were the guests who actually wanted to order.
Rewards Brought reward redemption into the cart — no navigation required
Reward redemption was rebuilt as an in-context action. Available offers surfaced directly within the ordering flow — guests could apply a reward without leaving the cart or interrupting their momentum. The previous flow required four navigation steps. The new one required one. Redemption rates went up. Drop-off from the cart went down. The feature started doing what it was designed to do: make guests feel rewarded, not rerouted.
Performance Treated API speed as a product requirement, not an infrastructure footnote
Slow API responses were adding invisible time to the ordering experience — delays guests felt but couldn't name. Menu hydration, location resolution, and cart operations were optimized with the same rigor applied to the visual UX. Response times at key moments in the flow came down substantially. The app felt fast because it was fast — not because we'd masked the latency with loading states.
UX Architecture Made the happy path modal and inline — stay in flow, get the food
Product detail views, item customization, and bag editing were redesigned to happen inline or in contextual modals — without pushing guests to new screens. Guests could preview items, adjust quantities, and edit selections without losing their place. The architecture prioritized forward momentum: once a guest started ordering, the only logical direction was toward checkout. Back-navigations in the happy path became nearly nonexistent.

"We kept asking: who does this step serve — the guest or the business? When the answer was only the business, it came out. Speed is a product of that discipline applied consistently."

Don't optimize friction — eliminate it. Faster loading states don't fix unnecessary screens. The fastest step is the one that doesn't exist.
Data collection is a tax on the guest. Every field in a form is time and attention spent. The question is never "what could we collect?" but "what do we need right now?"
The happy path should feel inevitable. A well-designed ordering flow doesn't require the guest to figure anything out — it simply moves them forward.
Performance is a design decision. API latency belongs in the same product conversation as button placement. Both affect how fast the experience feels.

Half the time. Cleaner flow.
Guests who actually finish.

The 50% reduction in ordering time was the result of every workstream landing together. No single change produced the headline — but each one made the headline possible. Taken as a system, the changes eliminated the compounded friction that had built up across the flow.

50%
Reduction in end-to-end ordering time — from first tap to completed checkout
Reward redemption rate — more guests applied offers when redemption happened in the cart
Sign-up abandonment — removing unnecessary fields reduced drop-off at account creation
Order completion rate — fewer interruptions in the happy path meant more guests who made it through
0
Required back-navigations in the core ordering flow — inline and modal UX kept guests moving forward
Perceived and actual API latency at key ordering moments — performance treated as product

The downstream effects mattered as much as the headline number. Faster ordering meant more completed orders. More completed orders meant more loyalty engagement. More loyalty engagement meant more reasons to come back. Speed isn't a nice-to-have — it's the product. When the experience moves at the speed guests expect, everything else gets easier.

The initiative also changed how the team thought about friction going forward. The instinct to collect data, add confirmation steps, and route guests through dedicated screens got replaced with a different default: start with the minimum, prove the need, and measure the cost before adding anything back.

Still adding steps when you should be removing them?

The fastest ordering experience is one where guests never have to think. Let's talk about how to build it.

Connect with me