A $28 order can hand the app more than half the money before your kitchen ever starts cooking. Here is the math, and the one register report that shows it.

It is Friday night at a pizzeria on the corner of 4th and Main, and the phone has not stopped buzzing. The app icon flashes with order after order, and the kitchen is flat out. By 9 p.m. the owner counts eleven app deliveries in the register, and the gross column says $308. That is a solid night, until he stops and runs the math on a single order.

The $28 app order that came through around 8:40 p.m. did not leave the register with $28 in it. Not even close. After the commission, the service fee, and the packaging, the register never showed him how thin that order really was. He only saw the number the customer paid.

The number on the receipt is not the number you keep

Most owners know the headline. Delivery apps take a commission in the 15 to 30 percent range, and the exact number depends on the platform, the tier, and the promotions you signed up for. What is less obvious is how many fees sit under that number. A premium tier, a featured placement, a small service fee on top of the commission, and a few dollars in packaging add up. Owners who have done the full math often land closer to 30 or 40 percent of the order value before a single ingredient is bought.

None of that is unusual, and none of it is surprising on its own. The surprise is that the register, which is supposed to be the source of truth for the day, records the order at the gross amount and stops there. The fee stack is a separate line item that the register does not always track. So the app order that cost $17.50 to serve shows up in the day's sales as a clean $28. The difference is invisible until someone sits down and does the math.

What one order actually costs, with real numbers

Here is the math on that order. It works the same way at a pizzeria, a noodle shop, or a small bakery. Only the menu price changes.

Line itemAmount
Customer pays$28.00
Commission, 28 percent (premium tier)minus $7.84
Service fee, 3 percentminus $0.84
Packaging and suppliesminus $2.50
Amount left before food cost$16.82
Food cost at 30 percent of menu priceminus $8.40
Contribution before labor and rent$8.42

On paper the order still made money, barely. But $8.42 has to cover a slice of the cook's labor, the rent, the utilities, and the driver's gas if the owner pays for delivery. Do it eleven times on a busy Friday and the night that felt like a win starts to look like a very expensive habit.

The punchline is small but it matters. The register told the owner he made $308 on app orders. The true contribution, after the fee stack and food cost, was closer to half that. The gap is where the profit went.

The register only sees the gross number

Here is the problem in one sentence. The register records the order at the amount the customer paid, not at the amount the restaurant actually keeps after the fees. That gap is where the money goes, and most registers do not show it on the daily sales screen. The owner sees the $28. The fee stack, the packaging, the food cost, the labor allocation, none of those show up as a single line item next to the order.

So the day's report, which is the first thing the owner looks at every morning, looks healthy. App sales are up, gross revenue is up, the owner feels good about the night. Then a month later the P&L comes in and the net margin on delivery is thinner than the margin on dine-in, even though the app channel is growing. That gap is the fee stack, and it was in the register all along, just not visible.

Why the direct order and the app order are two very different numbers

The same dish, the same $28 menu price, a customer walking in and paying at the counter. No commission. No service fee. Packaging is minimal, maybe a bag and a napkin. Food cost is the same $8.40. The contribution before labor and rent is $19.40, more than double the $8.42 from the app order.

That is the comparison that matters, and it is not about which channel is better. It is about which channel is worth the fees it charges. A direct order at $28 keeps $19.40 before labor and rent. An app order at $28 keeps $8.42. The difference is $10.98 per order, and that is the fee stack. If the app channel is doing enough volume to make up the difference, it is earning its place. If it is not, the register is showing a number that is flatter than the reality.

The direct order and the app order are the same dish at the same price. The register does not treat them that way, and it should.

How to audit your app channels without a full rebuild

You do not need a new reporting system to see this. You need a monthly habit that takes an hour. Here is the shape of it.

Pull last month's app channel sales from the register and group them by app instead of one "delivery" bucket, because mixed channels hide the per-channel cost. Then run three questions on each channel separately.

  1. What is the all in cost of a single app order on this channel, including commission, service fee, and packaging? Use the number that matches your current contract.
  2. What is the net margin on an app order after food cost, before labor and rent? If the number is under $5, the channel is doing a lot of heavy lifting for very little.
  3. Which app channels are pulling their weight, and which ones are only working because the menu mix skews toward high margin items? A channel that only works on the $40 burger but loses money on the $12 salad is a different problem than a channel that works across the whole menu.

Run this once a month, not once a quarter. The fee stack changes when you renegotiate a tier, when a platform adjusts its service fee, or when a new menu item lands with a different food cost. Write the numbers down, compare them to last month, and a monthly check catches those shifts before they compound.

The menu is where the app channel pays for itself

Once you can see the per order cost, the next move is the menu, because the app menu is a different product from the dine-in menu and it should be priced like one. Three things change when you treat the app channel as its own channel instead of a second register.

Bundles move first. A single $14 main on an app order with a 28 percent commission leaves almost nothing. The same dish bundled with a side and a drink for $24 changes the math, because the base is bigger and the packaging is shared. Bundles are the cheapest way to lift the average order value on an app channel without touching the dine-in menu.

Then the pricing. If the app channel is going to charge 28 percent, the items on that channel need to carry a little more margin than the dine-in version. A higher markup on the items that ship well, and the commission stops eating the profit that was supposed to be yours.

And the items that ship. Not every dish survives a delivery bag. The one that does, the one with the right margin and the right prep time, is the one you want to lead with on the app menu. The one that arrives soggy or cold is the one you should quietly deprioritize on that channel even if it is your best seller in the dining room.

What to do next

The register already has the data. The app orders are logged, the menu price is logged, and the fee allocation is a line item you can add to the channel report in an afternoon. The point is not to build a new system. The point is to stop trusting the gross number.

The next time the app phone buzzes on a Friday night, you know what the $28 order is actually worth after the fees. That number is small, but it is real, and it is in the register. If you want the register to stop hiding the fee stack, download M&M POS and set up a per channel contribution report. Ten minutes of setup, and the next Friday night will tell you the truth about the app channel.

Direct URL: https://mmpos.app/download