Cancel ahead[1]
Plans often change the evening before, but cancelling only opened the next morning. Now tomorrow's meal can be cancelled the moment plans change.
Yeldam is a hyperlocal food platform for corporate offices in Hyderabad. Yeldam Kitchen serves nutritionist-backed meals on a monthly prepaid subscription, eaten at the office pantry. Yeldam Snacks sells healthy snacks on demand, including to people without an office pantry, through Yeldam's retail stores.
The business wanted to expand into more IT parks and bring both apps under one roof. The brief had three asks: merge the apps, add store pickup for snacks, and reduce the kitchen's food waste.
Merge and pickup came with clear specs. Waste came with nothing: no research and no theory about the cause. I started there, because every new IT park would multiply it. Snack sales were working, so pickup could wait.
So I followed one meal, from menu to leftovers.
Even with the loop, about 80 meals a month went uneaten. Nobody knew why.
Yeldam has one kitchen admin, the person who builds the headcount every morning. I started with him. Sitting with Ravi, I mapped how a meal moves between him, the employees and the kitchen, and where it breaks.
Cross-functional flow, mapped with the kitchen admin. Red markers show where it breaks.
Two numbers, no names. When app cancellations fell short of HR's count, real absences could be anywhere in a range, so Ravi cooked for the top of it.
Ravi didn't over-cook by mistake. Without names, rounding up was the only safe choice.
On office days, if she remembers after 9:30, she walks to Ravi's desk to cancel in person.
Employees didn't skip cancelling because they didn't care. Cancelling was hard.
An accurate headcount by 9:45, so the kitchen cooks with little or no waste.
Skip a meal in advance, or in seconds, without having to remember.
How might we make skipping a meal take less effort, and no effort at all when the system already knows?
Before, there was one narrow way to cancel, and it depended on memory. Now there are three, each needing less effort than the last.
Before any production design, I built a clickable Figma Make prototype of all three ways to cancel. Auto-cancel wasn't in the brief and depended on HR, so it needed a working flow to make the case. The team approved, and it shipped.
Plans often change the evening before, but cancelling only opened the next morning. Now tomorrow's meal can be cancelled the moment plans change.
The window opened before most people logged in. Now a notification arrives inside it with one action: Cancel. Coming in? Do nothing.
Approved leave or WFH in HRMS now cancels that person's meal by name, with Restore until 9:45. It meant making HRMS leave mandatory, which I agreed with HR and management.
The no-show fine stays, as a backstop.
The two apps shared a brand but not a design language. Some components overlapped, most didn't, and the journeys pulled in different directions.
Meals follow a routine: you know when lunch is, and you only act when plans change. Snacks are on demand: you browse, decide and order whenever.
Snacks became the base of the app, and meals became a layer on top for subscribers. Everyone gets the snacks navigation; subscribers also get a Meals button beside it. In the morning, subscribers open straight onto today's meal and the cancel option, until the window closes at 9:30. After that, the app opens on snacks.
People without an office pantry order snacks and collect them from a Yeldam store. The simplest approach would have been for the store keeper to look up each order by the customer's name at the counter, which is slow and easy to get wrong when names are common.
Instead I borrowed a pattern people already know from Swiggy and Zomato deliveries. Every order gets a QR code, and the store keeper scans it to find and hand over the right order. Pickup was in the brief; the QR flow and its interactions were mine.
"The old system asked people to remember, dig through the app and act inside a one-hour window. The new one meets them where they are, and when it already knows, it doesn't ask at all."
Log the reason each meal was wasted (leave, WFH, no-show), so prep adjusts by cause, not just by count.
Attendance can only be marked inside the office, so the no-show count is accurate.
A short daily note on what's in the meal and why: a reason to keep the subscription, not just use it.
Calories, vitamins, fats and carbs for each meal, tracked against your health goals.