If you’ve ever unbagged a delivery order only to discover a missing side, an incorrect topping, or a forgotten drink, you know the instant flash of micro-frustration.

As much as GrabFood merchants try to avoid such mistakes, slip-ups happen in busy kitchens.  Missing or wrong item (MIWI) issues are one of the most commonly reported support problems in our app.

What complicates the issue is that missing-item scenarios vary widely. A customer might experience:

  • A missing item from a set meal: The dessert that was supposed to be part of the combo is missing
  • An incorrect count: Only eight chicken nuggets in a nine-piece box
  • A missing component: The broth for a noodle soup is packed separately to prevent spillage, but was accidentally left behind by the kitchen.

That’s why building a support process for MIWI cases has always been a delicate balancing act. 

On one hand, consumers deserve a fast, hassle-free resolution when an order isn’t right. If your noodle soup arrives without the broth, it’s not really a soup. You should get a full refund.

On the other hand, merchants deserve a system that protects them from paying full price for minor fulfillment errors. When only one nugget is missing from a box, or one dessert from a set menu, a partial refund is more appropriate. Fairness to both sides is essential for a healthy platform.

Historically, achieving that balance automatically was tough. To err on the side of consumer satisfaction, the system often refunded the entire item. While great for the consumer at that moment, it created unfair costs for merchants. The only alternative was sending every partial issue to human agents to figure out the fair refund amount—creating long wait times for consumers and massive backlogs for support teams.

To build an automated resolution system that is genuinely fair, fast, and accurate for both consumers and merchants alike, our engineering team turned to Large Language Models (LLMs) which are uniquely suited for making sense of complex menu structures. 

Here’s how we approached the problem:

Phase 1: The honesty test

Before writing a line of AI code, we had to test a basic hypothesis: If we give users an option to report a partially missing item, will they actually use it—or will they just push for a full refund anyway?

We introduced a simple entry point in the app, allowing users to flag “Partially Missing” items with photos and descriptions. Initially, we routed these tickets directly to human agents to test user behaviour.

The result? Around 20 per cent of all missing item reports were for partially missing items, and consumers were honest in reporting exact missing items rather than attempting to game the system. With the demand proven, it was time to build the intelligence layer to automate it.

Under the hood: The LLM menu detective

Calculating partial refunds sounds simple until you look at how restaurant menus are structured. A meal combo isn’t stored in our database as separate itemized prices; it’s one master item bundle.

Let’s revisit the different MIWI scenarios. If your muffin from a breakfast combo is missing, there is no direct price tag attached to that muffin in your receipt.

This is where our custom LLM sub-agents step in.

When a user submits a description (e.g., “Muffin was missing from my breakfast set”), the system executes a three-step reasoning flow:

  1. Smart Classification: The LLM reads the user’s text and categorizes the problem. If it involves safety or quality risks (e.g., mold, undercooked food, or foreign objects), the LLM immediately routes the ticket to a human agent for sensitive handling.
  2. Contextual Menu Scanning: For partial missing cases without an explicit price tag, the LLM scans the merchant’s full active menu. It looks for a standalone listing of the missing item (e.g., matching the muffin to what it costs as a single item on the merchant’s menu).
  3. Approximation Engine: If the exact item isn’t sold separately, the model finds the closest equivalent (like matching missing specialty fries to standard onion rings) to calculate a fair, proportionate refund value. If the missing item was essential to the meal (e.g., missing broth for a soup) it classifies it as a full refund.
Better precision, lower friction

By replacing rigid decision trees with LLM reasoning, we’ve moved from blunt-force automated refunds to higher precision. Merchants aren’t over-penalized, while consumers get fast, accurate reimbursement without waiting for manual agent review.

Thanks to the improved resolution accuracy across our markets, our support teams already handle roughly 32,000 fewer manual tickets per month, keeping support fast even as order volume grows.

What’s next?

The LLM menu detective is already rolled out in most Grab markets. But MIWI refund automation is just the beginning.

In parallel, the team is piloting a conversational Support AI experience across selected verticals, with plans to scale it to more verticals by the end of the year. Stay tuned for further updates as the rollout expands.

Komsan Chiyadis

GrabFood delivery-partner, Thailand

Komsan Chiyadis

GrabFood delivery-partner, Thailand

COVID-19 has dealt an unprecedented blow to the tourism industry, affecting the livelihoods of millions of workers. One of them was Komsan, an assistant chef in a luxury hotel based in the Srinakarin area.

As the number of tourists at the hotel plunged, he decided to sign up as a GrabFood delivery-partner to earn an alternative income. Soon after, the hotel ceased operations.

Komsan has viewed this change through an optimistic lens, calling it the perfect opportunity for him to embark on a fresh journey after his previous job. Aside from GrabFood deliveries, he now also picks up GrabExpress jobs. It can get tiring, having to shuttle between different locations, but Komsan finds it exciting. And mostly, he’s glad to get his income back on track.