Home

    Bali & Phuket Delivery Benchmark 2026

    We took the GrabMerchant and GoBiz dashboard numbers of the 96 restaurants we manage in Bali and Phuket, anonymised them, and publish them as market norms. Sample: 84 venues in Bali and 12 in Phuket, 270,568 orders, Rp 64.7bn and 8.8M baht of revenue, January–August 2026. What follows are medians rather than averages: one large venue distorts a fleet average, while the median shows what an ordinary restaurant looks like. Nobody publishes data like this for Southeast Asia — the platforms included.
    96
    restaurants in the sample
    270 568
    orders in the period
    10.4x
    median ROAS, Bali
    25%
    of revenue lost to downtime and stock-outs

    1. Market norms: Bali

    84 restaurants with a connected dashboard. Median and interquartile range — half the fleet falls inside this corridor.

    MetricMedianMiddle half (p25–p75)
    Average checkRp 250kRp 194k – 296k
    Ads ROAS10.4x7.9x – 12.7x
    Ad spend as share of revenue5.6%3.9% – 7.3%
    Cancellations0.35%0.10% – 1.10%
    Orders per bad review138Grab 180 · GoFood 139

    A useful check: a ROAS below 5x occurs in only 6% of the fleet. If yours is lower, that is not "the market" — it is something broken in the listing, the bidding or the promos.

    2. Ads: where diminishing returns begin

    We split the fleet by ad spend as a share of revenue and computed the median ROAS in each band. The result is a curve you cannot see from inside a single restaurant.

    Ad share of revenueRestaurantsMedian ROAS
    0–2%712.1x
    2–4%1612.8x
    4–6%2611.8x
    6–8%199.6x
    over 8%166.9x

    The break sits around 6% of revenue: below it the median ROAS holds at 12.1x, above it drops to 8.6x. And 42% of our own fleet is past that line. The conclusion is not "spend less" but "past 6% of revenue, every further unit of budget has to be bought with listing conversion rather than with a bid": raise the budget after conversion improves, not before.

    3. Where the revenue actually leaks

    We estimate lost revenue from each venue’s own order speed: how many orders it normally takes in that hour, and what it missed while closed or while an item was switched off. For the period in Bali that came to ≈Rp 16.2bn against Rp 64.7bn of revenue — about 25%. The split was the surprise:

    Source of lossShare of losses
    Items out of stock95%
    Downtime (restaurant offline)3%
    Cancelled orders2%

    So the money is lost not while the restaurant is closed — everyone notices that — but while it is open with half its menu missing. Items get switched off by the kitchen or the till "for now" and stay off forever, because nobody is watching: our sample contains dishes that have been out of stock for over 2,000 hours — 84 days. Individual venues have 40 to 70 items switched off at the same time. Phuket has the same structure (93% of losses are stock-outs) at a smaller scale: 6% of revenue against 25%.

    4. Reviews: frequency, distribution, removal

    The most useful quality metric in delivery is not the rating but how many orders pass between two bad reviews. A rating averages the whole history; this number reacts to what is happening now.

    MetricValue
    Orders per bad review — fleet median138
    Grab: average / best180 / 575
    GoFood: average / best139 / 236
    Removed on appeal, Grab≈80%

    The second observation is about the scores themselves. In a 30-day sample of 432 reviews: 51% five-star, 28% one-star and only 3% four-star. Delivery ratings are bimodal — people write either when it was excellent or when it was bad, and the middle barely exists. The practical consequence: a rating moves not by "improving on average" but by cutting the number of one-star reviews; one unfair one-star removed is worth more than several new five-stars.

    5. Bali’s areas differ more than you would think

    AreaVenuesMedian checkMedian ROAS
    Canggu25Rp 196k9.5x
    Kerobokan3Rp 306k13.0x
    Tibubeneng6Rp 288k12.5x
    Ubud15Rp 281k11.6x
    Kuta6Rp 251k9.5x
    Uluwatu8Rp 242k11.9x
    Pecatu5Rp 235k12.0x
    Ungasan4Rp 212k5.0x
    Jimbaran3Rp 194k8.2x

    Canggu is the island’s biggest delivery market (a quarter of our fleet and a third of its revenue), yet it has one of the lowest median checks and the lowest ROAS. That is the price of saturation: plenty of audience, more competition for it, smaller average orders. A restaurant choosing a delivery location should read this table before opening rather than after.

    6. Bali versus Phuket

    MetricBaliPhuket
    Median check≈$15.2≈$22.5
    Median ROAS10.4x22.8x
    Ad share of revenue5.5%2.9%
    Downtime and stock-out losses25%6%

    Phuket looks like Bali a few years earlier: checks are almost half as high again, ads cost half as much relative to revenue and pay back twice as well. The difference is not restaurant quality but market saturation — many times more venues compete for the same audience in Bali. For an owner that means one simple thing: numbers that count as normal on one island do not transfer to the other.

    Method and caveats

    • — Sample: 84 restaurants in Bali and 12 in Phuket managed by Delivery Booster on GrabFood and GoFood; only venues with a connected merchant dashboard are counted.
    • — Period: January–August 2026. Revenue, orders, check, ad spend, ROAS and cancellations are actual GrabMerchant and GoBiz dashboard figures.
    • — Lost revenue is an estimate by the Delivery Booster method: downtime and stock-outs are computed from each venue’s own order speed; cancellations as count × average check.
    • — Reviews: a 30-day sample (432 reviews) for the score distribution; negative frequency and appeal-removal share cover the full period.
    • — Data is anonymised: only fleet- and area-level aggregates are published, with no venue names and no individual client figures.
    • — This is a sample of agency-managed restaurants, not a random market sample. It is biased toward venues that are being watched: real market stock-out losses are most likely higher than our 25%.

    Frequently asked

    What GrabAds ROAS is normal in Bali?

    Our fleet median is 10.4x, with an interquartile range of 7.9–12.7x. Only 6% of restaurants run below 5x, and that is almost always a sign of something broken rather than of the market. In Phuket the median is much higher — 22.8x.

    How much should a restaurant spend on delivery ads?

    The fleet median is 5.6% of delivery revenue. The share itself matters more: up to 6% of revenue the median ROAS holds around 12x; past 6% it drops to 8.6x, and for those spending over 8% to 6.9x. That is a diminishing-returns curve, and it arrives earlier than most restaurants notice.

    How much does a restaurant lose to stock-outs?

    In our Bali sample, losses from downtime, stock-outs and cancellations run at about 25% of actual revenue — roughly one rupiah in five of the potential. 95% of that is not a closed restaurant and not cancellations, but switched-off menu items.

    How often do restaurants get bad reviews?

    The fleet median is one bad review per 138 orders. On Grab the average is 180 orders, and the best in our fleet is 575. On GoFood the average is 139 and the best 236. If you get a negative more often than one per hundred orders, the cause is almost always packaging or temperature, not the kitchen.

    Can an unfair review be removed?

    Yes — more often than people assume. Of the appeals we filed on Grab, around 80% end with the review removed. That works under two conditions: file fast, and cite specific facts of the order rather than general disagreement.

    Why is the average check higher in Phuket than in Bali?

    In our data the median check in Phuket is about $22.5 against $15.2 in Bali — a 48% gap. The Phuket market is less saturated: fewer competitors for the same audience, cheaper ads (2.9% of revenue versus 5.5%) that pay back twice as well.

    Check your own restaurant

    Send your restaurant’s Grab link — we’ll run a free audit of your listing and show where you lose orders.

    Get a free audit