Research · 2 of 6

The fee stack: how a $22 meal becomes $62

Four fees, each computed on the last, then tax on the total, then the income you had to earn.

7 min read · figures recomputed on every build · last revised 2026-08-04

Order a $22.00 meal for delivery and you will pay roughly $38.70 at checkout. To have that $38.70 in your account you must first earn $62.08. The menu price is 35% of what the meal actually costs you.

That is not an accident of one platform or one bad order. It is the arithmetic of stacking, and it works the same way everywhere: each charge is calculated on the total including the charges before it. Once you see the order of operations, the final number stops being surprising and starts being predictable.

The stack, in order

Menu price in the app$22.00Already above what the restaurant charges at its own counter.
Platform fees+$10.59Markup, service fee and delivery fee — three separate charges.
Sales tax+$2.15Prepared food, taxed at the full rate in Los Angeles County.
Tip+$3.96Calculated on the marked-up subtotal, not the restaurant's price.
Paid at checkout$38.7076% above the menu price.
Salary required$62.082.82× the number you looked at.
A single filer on $75,000 in California, 2026 rates. Every figure recomputed on each build.

Four charges, one of which is invisible

Three of the platform charges appear on your receipt. The fourth does not, and it is usually the largest.

The menu markup. Dishes are routinely listed above the price the restaurant charges in its own dining room. There is no line item for this, because from the platform's perspective there is no fee — the price simply is the price. You cannot see it unless you happen to know what the restaurant charges directly, which is precisely why it is the most effective of the four. It is a fee that has been folded into the thing being priced.

The service fee. A percentage, taken on the marked-up subtotal. Note the base: it is charged on a number that already contains the markup, so the two compound.

The delivery fee. A flat charge, and the only one most people can name. It is also the one most often waived by subscription programmes — which is a genuinely effective piece of design, because waiving the smallest and most visible fee makes the whole stack feel addressed.

The tip. Not a platform charge at all, and the only one that reaches a person. But the default is a percentage of a subtotal that has been inflated twice, which means the markup and the service fee have quietly raised the amount you tip.

Why the tax line is larger than you expect

Prepared food is taxed at the standard rate in nearly every state — including states that exempt groceries entirely. Buy the ingredients and you may pay nothing; have someone cook them and the full rate applies. It is the same food. The tax is on the preparation, not the calories.

This is one of the sharper edges in US sales tax, and it catches people out constantly. The grocery exemption exists because taxing necessities is regressive. But the line between "food" and "prepared food" is drawn at the point of preparation, so the exemption is worth most to people who cook and nothing at all to people who do not — which includes a lot of people whose reason for not cooking is that they are working.

Worse, in most jurisdictions sales tax is charged on the fee-inclusive subtotal. You are paying tax on the delivery fee. That is not a loophole or an error; delivery is a taxable service in most states, and the tax base is the transaction, not the food.

The order of operations is the whole trick

If the fees were applied to the restaurant's own price, and the tip to the pre-fee subtotal, the total would be meaningfully lower. They are not. Each layer compounds on the last, and the tip — the one number you actually control at checkout — is anchored to a figure that has already been inflated twice before you see it.

Compare the identical meal collected in person: $28.11 instead of $38.70. The convenience costs $10.59 on this single order — around 38% — and that is before the gross-up.

None of this is hidden, exactly. Every line is disclosed at checkout, and platforms are generally in compliance with the disclosure rules that apply to them. It is simply disclosed in a sequence and a font size that makes the aggregate hard to hold in your head, and it is never expressed in the only unit that ultimately matters, which is how long you had to work for it.

Why disclosure has not fixed this

Every fee in the stack is disclosed. Regulators in several jurisdictions have pushed hard on exactly this, and platforms now show a line-by-line breakdown before you confirm. It has helped less than anyone expected, for a reason worth understanding.

Disclosure solves for availability of information, not for aggregation of it. Four numbers shown separately at the moment of checkout, after you have already chosen a restaurant and assembled an order, is not the same as one number shown at the moment you were deciding whether to order at all. By the time the breakdown appears, the decision has largely been made and the remaining choice is confirm-or-abandon.

There is also a structural reason the industry cannot fix it unilaterally. A platform that showed a single honest all-in price would appear more expensive than a competitor advertising a lower menu price plus fees, even at identical totals. The first to move loses. That is a classic coordination problem, and it generally requires either regulation or a competitor willing to absorb the cost of being right early.

The subscription that changes the maths

Most platforms sell a membership that waives delivery fees and sometimes reduces service fees. Whether it pays depends on a calculation people rarely do properly.

The membership removes the flat component of the stack, which is the smallest part on a large order and the largest part on a small one. It does not touch the menu markup, which is usually the biggest single charge and the one you cannot see. So the saving per order is real but capped, and the break-even is a specific number of orders per month rather than a vibe.

There is also a well-documented behavioural effect: having paid for the membership, people order more often to justify it. Whether that is a benefit or a cost depends on whether the additional orders were things you wanted. The membership genuinely lowers the price per order and frequently raises total annual spending — both can be true at once.

What it looks like as a habit

One order is a rounding error in anybody's year. The reason delivery is worth a whole article is that almost nobody orders once.

Once a week, cash$2,012Per year, out of pocket.
Income required$3,228Before tax, every year.
Over ten years$32,282Nominal, at today's prices.
If invested instead$27,804The cash, compounded at 7% real.
Collecting the same meals yourself would save roughly $883 of gross income a year — the fee stack alone, ignoring the food.

Why the fees exist

It is worth being fair about this, because the fees are not arbitrary. Delivery is genuinely expensive to provide: it requires a driver, a vehicle, insurance, routing software, payment processing and support for three parties who can each ruin the transaction. Restaurant margins are thin enough that the platform cannot simply absorb it. The economics are real.

What is a design choice, rather than an economic necessity, is the structure — that the charges are split into four, that one of them is invisible, that they compound, and that the tip is defaulted onto the inflated base. A single all-in price would be honest and would probably lose to a competitor advertising a lower menu price plus fees, which is why nobody does it. The stacking is not a conspiracy. It is what a market rewards.

What to actually do with this

The useful conclusion is not "never order delivery." It is that the convenience has a price, the price is roughly 38% on top of the meal before tax, and you should be paying it deliberately rather than by default.

Three things change the number materially. Collecting in person removes the entire stack. Ordering directly from a restaurant that takes its own orders removes the markup and usually the service fee. And ordering less often, but spending more when you do, dilutes the flat delivery fee across a larger basket — the one case where a bigger order genuinely is better value per dollar.

Run it with your own numbers →