What your average check really shows
The check went up and the restaurant earned less: how to break down the growth

After a 10% price increase, the month’s average check rose by 12.93%. Going by that number alone, it is easy to decide the increase worked and keep the new prices.
The average check is revenue divided by the number of orders. It moves when guests pay more for the same dish, when they order more items or pricier ones, and when the mix of people ordering changes. The report does not separate these causes. Contribution for the period shows whether the restaurant earned more: revenue minus all variable costs.
All figures in this article are illustrative and describe a hypothetical restaurant. Amounts are in US dollars. In this model, the average check went up and contribution for the month went down.
Two months to compare
Take a restaurant that sells takeout only, with two types of orders: weekday orders for one person and evening orders for a group. The model has no delivery, so delivery fees and couriers are left out of the calculation. Taxes are not modeled either: the calculation assumes guests pay exactly the amounts in the tables, charges the card fee on these modeled payments, and subtracts no tax on revenue. For your own restaurant, check your data to see which taxes are included in what guests pay and the full amount your card fee applies to.
| Orders | Average order amount | Revenue | |
|---|---|---|---|
| Weekday | 800 | $20.00 | $16,000.00 |
| Evening | 400 | $50.00 | $20,000.00 |
| Total | 1,200 | $36,000.00 |
Average check: $36,000 / 1,200 = $30.00.
Then the owner raised prices by 10% across the menu; the dishes stayed the same. Some guests stopped ordering: weekday orders fell by 20% and evening orders by 10%.
| Orders | Average order amount | Revenue | |
|---|---|---|---|
| Weekday | 640 | $22.00 | $14,080.00 |
| Evening | 360 | $55.00 | $19,800.00 |
| Total | 1,000 | $33,880.00 |
Average check: $33,880 / 1,000 = $33.88.
Before and after the increase:
| Before | After | Change | |
|---|---|---|---|
| Average check | $30.00 | $33.88 | +12.93% |
| Revenue | $36,000.00 | $33,880.00 | −5.89% |
| Orders | 1,200 | 1,000 | −16.67% |
The check grew more than prices did.
How to break down the growth in the average check
Start with price. Work out what the check would have been if the order mix had stayed as it was last month and only prices had changed:
(800 × 22 + 400 × 55) / 1,200 = $33.00
In the model, prices went up by exactly 10% on every item, so this is the same as 30 × 1.1. Price accounts for +$3.00.
The rest, 33.88 − 33.00 = +$0.88, is not explained by price.
Growth in the check = check₀ × (price index − 1) + remainder
This is where the exact arithmetic ends. Different things end up in the remainder: guests within one order type buy more or pricier items, the share of weekday and evening orders changes, the share of delivery and pickup changes. The order count does not tell you which of these happened. To break the remainder down further, you need data for each order: its type or channel and the basket contents. If prices were not raised evenly, the price index is also calculated from this data: last period’s basket at the new prices.
In the model, the answer is known because it was built in. Basket size within each order type does not change in the model, so the average amount of each type rose by the same 10% as prices. The whole remainder comes from the change in order mix: there were 160 fewer weekday orders and 40 fewer evening ones, and the weekday share fell from 66.7% to 64.0%.
Calculated in this order, price accounts for 77% of the $3.88 growth, the change in order mix for 23%, and basket size for nothing. If you calculate the other way around, order mix first, the shares shift: $0.80 for order mix and $3.08 for price. Basket size still comes out at zero.
What to calculate instead of the check
Contribution for the period is calculated from the same orders, but with costs. Food cost last month was 32% of the order amount: $6.40 for a weekday order and $16.00 for an evening one. The dishes are the same, so after the price increase the food cost in dollars did not change, while its share of the check fell. Packaging is $0.80 per order, and the model assumes a card fee of 3% of the amount the guest paid.
| Contribution per order | Weekday | Evening |
|---|---|---|
| Amount, before → after | $20.00 → $22.00 | $50.00 → $55.00 |
| Food cost | −$6.40 | −$16.00 |
| Packaging | −$0.80 | −$0.80 |
| Card fee, before → after | −$0.60 → −$0.66 | −$1.50 → −$1.65 |
| Contribution, before → after | $12.20 → $14.14 | $31.70 → $36.55 |
| Contribution for the period | |
|---|---|
| Before | $22,440.00 |
| After | $22,207.60 |
| Change | −$232.40 (−1.04%) |
At the new prices, the contribution of a single order of each type grew by 15–16%. The average contribution per order grew even more, by about 19%: the rest came from the same change in order mix, because the share of the pricier evening orders went up. And yet contribution for the month fell. At last month’s order volume, the new prices would have added $3,492, while the 200 lost orders, counted at the new prices, took away $3,724.40.
The result depends on how many orders the restaurant lost and which ones. If, out of the same 1,000 orders, 390 had been evening orders and 610 weekday ones, contribution for the month would have risen to $22,879.90. The average check and the contribution per order describe the average order; contribution for the period describes the restaurant’s month, and the two can point in opposite directions. So whether to keep the new prices is decided by contribution for the period, and the check only suggests where to look.
In the model, price caused everything that changed, so the two months can be compared directly. In a real restaurant, two months also differ by season, and price is tested on some of the items over the same weeks.
Three levers and how to test them
A restaurant affects its average check directly through price, basket size and the free-delivery threshold. The effect of each depends on the restaurant, so they are tested on your own data.
Price. Immediately changes the value of orders that include the repriced items. Whether the restaurant will lose orders after an increase, and how many, is not known in advance: in the model there were fewer, in another restaurant the count may not change. Comparing a month with the previous one mixes the effect of price with season, marketing and everything that changed outside the restaurant, so it only shows where to look. A more precise way is to raise prices on some of the items and compare them over the same weeks with items whose prices did not change, by portions sold and the contribution of each group. Guests may switch from the pricier items to others, so look at both groups together, and even then the result remains an estimate.
Basket size. A guest adds an item or picks a larger size. Each added item brings its own contribution: price minus food cost and card fee. Only your data will show how many guests do this. You can measure it by the number of items per order and the share of larger sizes while prices stay the same, and for that too you need the basket contents for each order.
Free-delivery threshold. It can raise the average check, or it can lower it: if the threshold is below your current average delivery check, new orders near the threshold pull the average down. If your report counts the check together with the delivery fee, the dropped fee also lowers the average. The threshold’s contribution is calculated separately, and comparing the check before and after proves nothing here. If delivery used to be paid, the threshold changes four groups of orders in different ways:
- existing delivery orders that were already above the threshold add nothing, and you no longer get the delivery fee from them;
- existing delivery orders that topped up the basket to reach the threshold bring the contribution of the added items and lose the delivery fee in the same way;
- former pickup orders now placed for free delivery count only in this group: they never paid a delivery fee, so none is lost, and you now pay for the courier; if the guest topped up the basket to switch, add the contribution of the added items;
- new orders that appeared specifically because of free delivery bring their own contribution, with the courier cost already taken into account.
If guests combine several small orders into one above the threshold, compare the contribution of the combined order with the contribution of the orders it replaced. For replaced orders that paid for delivery, the fee disappears, while courier and packaging costs remain for just one order; replaced pickup orders had no delivery fee to lose. Count these orders only here, not in the second or third group.
The threshold pays off if, with combined orders taken into account, the contribution of new orders and of added items across all groups covers the lost delivery fee in the first two groups and the courier cost for those who switched from pickup. Orders below the threshold that changed nothing are left out of the calculation: they pay for delivery as before. The same calculation works for delivery discount levels, except that only part of the fee is lost.
Order mix is not something you control directly: it is shaped both by your decisions, like price in the model, and by circumstances outside the restaurant. It is what produced the remainder in the breakdown above.
What you can control in Eatery Club
Prices and the composition of dishes and modifications come from the POS system; they are not edited in the admin panel, because synchronization would overwrite the changes. The food cost for calculating contribution is taken from the POS or accounting system. In the panel you control how the menu is shown to guests and the terms of delivery zones, and you can see delivery statistics and start order exports.
Order of options. Modification categories are created in the POS, and in the panel you set their order: it determines the order of options in the menu and in the cart (modification categories). For the modifications themselves, the panel lets you set whether they are active, their display order and their translations (modifications). Whether the order of options changes the share of orders with an add-on can only be seen from basket data for equal periods.
One card for several products. A product group combines separate products into one card, inside which the guest switches between them, for example «Лате M», «Лате L» and «Лате XL» (Latte M, L and XL). The group is created in the panel and is not passed to the POS (product groups). Only your order data from before and after will show whether such a card changes which size guests pick.
Delivery zone terms. The «Радіуси доставки» (delivery areas) row holds the default delivery fee, the order amount for free delivery, the minimum amount and discount levels: an amount threshold gives its own delivery discount percentage (delivery zones). If the restaurant works with a POS, the delivery service in this row must match the one set up in the POS; otherwise the delivery fee in the panel and at the POS will differ.
How to look at your own numbers
Delivery and pickup separately. «Статистика доставки» (delivery statistics) shows «Середній чек самовивезення» (average pickup check) and «Середній чек доставки» (average delivery check) separately. The tiles with figures have their own period selector, while the pie charts of channel shares show a total with no period selection (delivery statistics). If the average delivery and pickup checks differ, the combined average check changes simply because the channel split changed, even when baskets stayed the same. The channel share for a specific month cannot be taken from the charts; it is calculated from order data.
Data for each order. To break down the remainder, you need the type or channel and the basket contents for each order. Order exports are started from the «Замовлення» (Orders) section, and the finished file is in «Експорт» (Export), where you can also see the export type, for example «Замовлення» (Orders) or «Вартість замовлень» (Order value) (data export). Check which fields the file actually contains in your own export. If the basket contents are not there, take them from the POS system, provided it stores receipts by line item.
One source for all the numbers. «Статистика доставки» shows operational figures, while the source of truth for finance is the POS system. The panel sees orders from the website, the app, the kiosk and the QR menu, while the POS usually includes dine-in as well. So take revenue, order count and average check from one source and for the same set of channels, or the breakdown will not add up.
What to check every month
- Order count next to the check. Always in the same table. Without the order count, the check cannot be interpreted.
- Price index. How much you raised your own prices over the period. If you raised all prices by the same percentage, this part of the growth is known in advance; if not, price last period’s basket at the new prices.
- Contribution for the period. This is what shows whether the restaurant earned more. Use the actual food cost of the same dishes in currency terms, not a percentage of the new price. Check which taxes are in the amount guests pay: take revenue without VAT, sales tax or any other tax you collect from guests, and calculate the card fee on the full amount the guest paid. If you pay a tax on revenue, subtract it too.
- Average delivery and pickup checks separately. Together with each channel’s share for the month: a change in the share moves the combined average.
If the check grows, subtract the price index: the rest of the growth comes from basket size or order mix, and you can tell them apart only from order data. If there are also fewer orders, calculate contribution for the period: only it will show whether the restaurant earned more.
The Help Center describes how to set up menus, delivery zones and statistics in Eatery Club.
Published in
Platon Sobko
News Editor at Eatery Club. I write about technology, software, the internet, and science
All stories by this author →


