From Leftovers to Decisions: Buffet Waste Tracking at IU Catering

Turned untracked buffet leftovers into dish-by-dish data the kitchen can act on, using tools the team already had.

TL;DR

Problem: IU Catering had no record of which buffet dishes came back full, so the kitchen decided pan counts from memory.

What I did: Designed a phone form captains fill in at teardown and a weekly brief that tells the chef which dishes to send less or more of.

Result: Piloting now. Results will replace the placeholders as the data comes in.

ROLE

Sole designer: UX research, service design, information design

STAKEHOLDER

Executive chef, catering managers, event captains

TOOLS

Microsoft Forms, Excel, Figma, Claude Cowork

TIMELINE

Oct 2026 – Nov 2026, part-time

THE CHALLENGE

Context

IU Catering serves 25 to 30 buffets a week. When a buffet ends, leftovers are cleared and nothing is written down. Pan counts come from the BEO and the kitchen’s experience, so no one can say which dishes are regularly overproduced.

Two users, two moments

The captain has full hands and a few minutes at teardown. The chef has a few minutes on Monday morning. The system had to work for both.

Research

Talking to the chef

Before designing anything, I asked the executive chef what would actually change how he plans. He was clear about three things:

Per dish, not per event

A total waste number doesn’t tell him what to change.

A monthly report

For long term planning

A weekly note only when something is worth flagging

If it’s longer than a quick read, it won’t get read.

Identifying the problem

Mapping the current process showed that leftovers leave the building with no record, so the kitchen has no way to learn from them.

The blueprint surfaced four pain points:

Rushed teardown

Captains have full hands and little time. Anything slow won’t get done.

Waste is invisible

No one records what came back, dish by dish.

Decisions from memory

The chef has no data, only what people remember to mention.

The loop never closes

The same dishes get overproduced again.

PROBLEM STATEMENT

How might we capture per-dish waste in a few minutes at teardown, and turn it into something the chef will actually read?

Design Decision

The new process adds one short step for captains and one for me, and connects what happens at teardown to what the kitchen prepares next.

Built for teardown

The form shows only that buffet’s dishes. No typing, just picks.

Every dish, every event

Pans prepared and left are logged per dish, so waste becomes data.

A brief, not a spreadsheet

The chef sees only what crossed a threshold, or “nothing to flag.”

The loop closes

Flagged dishes get fewer pans and are checked again next week.

Key Decisions

Use tools the team already has

Microsoft Forms and Excel are already licensed and familiar, so there is nothing to install and no IT approval to wait on. I chose a standalone form with a weekly export over a live-synced workbook. It is simpler for a pilot, and no one can accidentally break a shared table. The trade-off is one manual step for me on Mondays.

Branch the form by buffet

Captains pick the buffet, and the form shows only that buffet’s dishes. Without typing, entry is faster and dish names match every time, which matters because everything is analyzed per dish.

Grid, not one question per dish

Every dish needs two numbers: pans prepared and pans left. One question per dish allows any value, but at two questions per dish the form would hit Forms’ question limit. I went with a grid of buttons, one per buffet for prepared and one for left. On a phone, each dish becomes a row of large tap targets. Forms caps grids at 7 columns, so I used them carefully: “Not Served” and 1–6+ for prepared, and “Ran out”, 0, ½, 1, 1½, 2 and 3+ for left. Keeping “Ran out” separate from 0 is what makes run-outs visible.

A brief, not a spreadsheet

The chef doesn’t need every number. The weekly brief flags at most 3 dishes: those that come back 40% full or more on average, or run out 2 or more times in 4 weeks. On quiet weeks it says there is nothing to flag. Events where attendance fell below 60% of the guarantee are left out, so one rainy day can’t flag a dish. These are starting thresholds, adjustable in the dashboard’s settings.

Output

THE CAPTAIN’S FORM

Captains scan a QR code in the event binder and fill out the form on their phone at teardown.

1

Pick the buffet, get its menu

The form branches so captains land on a page that already lists that buffet’s dishes. No typing dish names.

2

Pans prepared, per dish

Large tap targets for one hand at teardown. “Not Served” keeps skipped dishes out of the averages.

3

Pans left, per dish

“Ran out” is its own answer, not 0, so run-outs become a signal to send more.

4

Context for odd nights

Event tags explain outliers. The complaint box only appears after a “Yes.”

THE CHEF’S BRIEF (VERSION 1)

Each Monday I export the week’s form responses into an Excel dashboard. It turns them into a one-line summary and three lists.

1

Any date range

Type two dates to read one week for the Monday brief, or a month for the monthly report.

2

The brief writes itself

A formula turns the numbers into one sentence the chef can read in seconds, or “Nothing to flag.”

3

Fair comparisons

Buffets below 60% of the BEO guest count are left out, so a half-empty room doesn’t read as overproduction.

1

Send less

Coming back 40% full or more across 2+ buffets. One bad night never triggers a flag.

2

Send more

Ran out twice or more. Only possible because “Ran out” is logged apart from 0.

3

Working well

Served often, little left, never ran out. Tells the chef what not to change.

4

Where it went

Counts from the wrap-up questions. Complaint details sit on a Notes tab.

1

Ranked by share left

Share of prepared pans that came back, so a 1-pan dish and a 5-pan dish compare fairly.

2

Readable at a glance

Bars sit beside the list, so the biggest offenders stand out before anyone reads a number.

Testing & Iterating

What changed after the first build?

My first version was one form for every buffet. With two questions per dish across 13 buffet menus, it went over Forms’ question limit. I split it into two forms, Group A and Group B, by buffet. Each stays under the limit, and captains still see only their buffet’s dishes.

The pilot

The form is running as a two-week pilot. After that, I’ll interview two or three captains about where the form slowed them down, and ask the chef whether the brief changed any decisions.

Where it goes next

THE IDEAL BRIEF

The Excel version proves the data is worth collecting. This prototype shows where the brief should go once the pilot confirms it. It’s built in Microsoft’s Fluent design language so it feels at home next to Teams and Outlook, where the chef already works.

Filter by buffet: see one menu at a time.

Why it’s flagged: select a dish to see every event it was served at, pan by pan.

Comes to the chef: the same summary arrives as a Monday message, so the chef doesn’t have to open a dashboard at all.

Filter by buffet

One menu at a time, in the same brief.

Grouped by action

What to do next, not raw data.

Why it’s flagged

Evidence event by event, pan by pan.

Copy brief for Teams

One click to share where the kitchen talks.

The week in one line

Written for a chef with three minutes.

Sent to the chef

A Monday message, no dashboard to open.

Filter by buffet

One menu at a time, in the same brief.

Copy brief for Teams

One click to share where the kitchen talks.

Grouped by action

What to do next, not raw data.

The week in one line

Written for a chef with three minutes.

Why it’s flagged

Evidence event by event, pan by pan.

Sent to the chef

A Monday message, no dashboard to open.

Impact

The pilot is running. These are the measures I’m tracking, and each placeholder will be replaced with the real result.

  1. Logging time: how long the form takes a captain at teardown. Target: under 3 minutes.

  2. Coverage: the share of buffet events that get a completed form.

  3. My time: weekly hours spent retyping paper sheets, before and after.

  4. Decisions: how many flagged dishes the kitchen actually adjusted.

Reflection

WHAT I TOOK AWAY

Constraints are design input. Forms’ 7-column grid and question limit shaped the form as much as the captains’ needs did. Working within them kept it something the team could actually run.

Two users, two kinds of success. For captains it meant speed; for the chef, focus. Designing for one moment at a time kept each screen simple.

Data is only useful if someone reads it. Logging without a brief would have produced a spreadsheet nobody opened. The brief is what closes the loop.

Have a project, idea,

or just want to say hi?

I'm always open to new opportunities and interesting conversations.