Money & metrics

Unit economics of a delivery order: a worksheet you can steal

Monthly P&Ls hide whether delivery works. One order, six lines, and a number at the bottom tell you the truth.

Plenty of restaurants run 2,000 delivery orders a month and still can't tell you whether order 2,001 makes them money. The monthly P&L won't settle it; it blends dine-in with delivery, busy Fridays with dead Tuesdays. Unit economics asks something smaller and more useful: on one typical order, what comes in, what goes out, and what stays? Typical US delivery tickets run $25–35, so I've worked the whole thing through on a $30 direct-channel order below. Copy it and drop in your own numbers.

Line 1: revenue is more than the menu price

Our example is a $30.00 basket ordered through the restaurant's own site, with a $3.99 delivery fee charged to the customer. Total collected: $33.99. Count the delivery fee as revenue and the delivery cost as a cost. Netting one against the other early is how owners talk themselves into believing delivery is free. On a marketplace order you'd also subtract commission right here, but we'll come to that.

Lines 2–4: what the kitchen eats

Food cost comes first. Ingredients run about 30% of the menu price, the middle of the usual 28–35% band, so $9.00 here. Start from the theoretical food cost in your recipes, then check it against what you actually bought each month; the gap is waste and portioning drift.

Then the labor share, which is the variable slice of payroll one order eats through. Take a single shift, add up kitchen and packing wages, and divide by the orders that shift produced. A line spending $270 of labor across 50 orders puts $5.40 into each one. Volume does most of the work on this line: the same crew turning out 70 orders drops it to $3.86.

Packaging is the line owners underprice most. Container, bag, cutlery, napkins, sauce cups. Delivery-grade packaging runs $0.80–2.00 an order depending on cuisine, so call it $1.30. Anyone who has never costed a fully loaded bag tends to be off by half.

Lines 5–6: what the road eats

Delivery cost, if you run your own courier, is (hourly wage + vehicle allowance) ÷ drops per hour. At $14 an hour plus $2 of vehicle cost and 3.5 drops an hour, that's about $4.75 per order. Drops per hour is the number in this worksheet you can move the most: batch your orders and improve dispatch and routing, and you go from 2.5 to 4 without anyone driving faster.

Payment processing takes 2.9% + $0.30 on $33.99, so $1.29. It's small and unavoidable, but it's still a line.

Revenue (basket + fee)
$33.99
Food cost (30%)
−$9.00
Labor share
−$5.40
Packaging
−$1.30
Delivery (own courier)
−$4.75
Payment processing
−$1.29
Contribution margin
$12.25
One $30 order + $3.99 delivery fee through the restaurant's own channel. Contribution: $12.25, or 36% of revenue. Plug in your own lines — the structure is what matters.
Want this worksheet computed live, per order, per channel?

Dots reports show contribution by channel and zone — so Tuesday's truth doesn't wait for month-end.

Book a demo

The bottom line: $12.25, and what it still has to cover

Contribution margin is not profit. Rent, utilities, insurance, management salaries, marketing: all of it sits below this line. If your fixed costs are $9,000 a month, an order shaped like this one needs roughly 735 a month just to break even. That's what the worksheet is for. It turns "are we profitable?" into "how many orders, at what contribution, cover the fixed base?", and the second question is one you can manage against every day in your analytics.

The same order on a marketplace

Run the same basket through a 25% marketplace tier. Commission takes $7.50, the platform keeps the delivery fee and supplies its own courier, and the processing is theirs too. Your side of it: $30.00 revenue − $9.00 food − $5.40 labor − $1.30 packaging − $7.50 commission = $6.80, and that's before the promo campaigns and refund chargebacks that push the effective marketplace cost to 30–40% of the ticket (I ran the full math on that here). Marketplace orders earn their place as acquisition. But at barely half the contribution of a direct order, they can't be where your regulars keep ordering.

Which line to attack first

Lines don't respond to effort equally. Most kitchens already watch food cost obsessively, so squeezing another point out of it is hard-won. The two lines owners tend to neglect are delivery cost and labor share, and both improve with density rather than discipline. Getting couriers from 2.5 to 3.5 drops an hour cuts about $1.90 off the delivery line on our example order; filling the kitchen's slow hours with 20% more orders (a push notification costs nothing) trims the labor share without changing a single schedule. Two dollars saved per order across 1,500 orders a month is $3,000, which is roughly what our AI delivery assistant saves a location by making dispatch calls on its own.

Where owners fudge the worksheet

Three habits wreck the exercise. Averaging across channels is the big one, since direct and marketplace orders have completely different economics and belong in separate calculations. Then there's ignoring labor because "the cooks are there anyway", which holds true right up until delivery volume forces an extra hire. And plenty of owners are still running last year's packaging and ingredient prices. The worksheet only stays honest when every line is current and split by channel, so automating the data collection beats rebuilding the spreadsheet each quarter.

Do this next

Take yesterday's actual orders, not a hypothetical set, and run five of them through these six lines, channel by channel. If your direct orders contribute $12 and your marketplace orders $5, you know exactly what each flyer, QR insert, and "order direct" push is worth: about $7, every time one of them moves an order from one channel to the other.

Better unit economics is a channel decision

Own ordering, smarter dispatch, and per-channel reports — see your worksheet improve in real time.

Book a demo

Related reading

👋 Let’s get acquainted!

Tell us about your restaurant and we’ll show you the platform on your own numbers.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.