How report metrics are calculated: revenue, discounts, refunds, tips, average check, guests and tables
Revenue, the payment amount and cash in the drawer answer different questions. This reference explains Cenaly calculations so you can reconcile reports without mistaking different formulas for missing money.
What you need to get started#
Sign in as the owner or an employee with read access to the relevant sections and locations. This comparison uses Finance, Statistics, Dish Statistics and cash reports; labor figures require Staff. Enable Dashboard separately in Extensions.
Finance supports one or all accessible locations; Statistics uses the selected location; Dish Statistics has its own location scope. For an employee, “all” means only the locations they can access. Start with one location and one currency.
Revenue and the amount due#
Finance → Overview → Revenue is the value of items in non-cancelled orders after discounts, plus eligible guest-bill charges, minus POS refunds in the selected period.
Formula: active items − check discount − coupon + guest-bill charges − refunds. Discounts cannot make the item subtotal negative. Only orders with a positive total qualify; having a paid receipt is not a separate inclusion condition.
| Transaction | Effect on Revenue |
|---|---|
| Ordinary order | Includes items other than cancelled/rejected lines, after discounts |
| Cancelled, rejected or superseded order | Excluded; merging into another order must not duplicate the sale |
| Staff meal or complimentary hospitality meal | Excluded |
| Lodging, minibar and other eligible guest-bill charges | Included; an order moved to a bill is not added twice |
| Tips and add-on tax | Not added to item revenue |
| Deposit or fee line on an item | Included: it is a sold line on the bill. The amount is shown separately on the Including deposits and item fees card and is not added to revenue |
| Delivery charge | Separate Delivery fees card; excluded from Revenue |
| Gift card sale | A liability to the guest, not revenue; items paid for with a gift card are an ordinary sale |
| Damage compensation | Separate Damage recovery card; excluded from revenue |
| Pickup-point cash on delivery owed to a carrier | Transit money, not the location’s revenue |
| POS refund | Reduces revenue on the refund date, even if the sale was earlier |
An order service charge is not part of Revenue: it has its own Service charge card. A separate service-charge entry on a guest bill counts towards that bill’s revenue; see below. Revenue can be negative on a day with more refunds than new sales.
Before and after discounts#
For the same set of active items, distinguish the amount before the check discount and coupon from the amount after them. An item-level discount is already reflected in its line value; the original menu price and the saved line amount can differ.
The check discount and coupon are allocated to items in proportion to their amounts. Calculations use minor currency units, with rounding remainders allocated so the shares add up exactly to the discount. Consequently, item revenue in Dish Statistics already includes its share of the discount.
The POS X/Z report shows recorded payments; it does not yet have a separate total for all discounts. To investigate manual actions, open Statistics → Risky operations. Manual discounts in an action log are not the total of every coupon and promotion: the log records events, not a unified promotion-performance report.
Cancellation, void and refund#
| Action | Money and receipt | Kitchen and inventory |
|---|---|---|
| Cancel an order before payment | Excludes the cancelled order from revenue; cancellation is not a refund receipt | Check whether preparation and stock deduction had already happened |
| Void an item after sending it to the kitchen | Excludes the cancelled line; the action is recorded as a risky operation | Cancellation does not mean prepared food or ingredients are fit to sell again |
| Refund a paid item | Creates a refund receipt; in Russia, with a fiscal cash register, a fiscal refund. Reduces the report on the refund date | A restocking refund creates an inventory document; a money-only refund does not restore stock |
A recorded customer return reduces inventory sales consumption and its cost. For cooked dishes, restocking starts unticked. A monetary refund alone does not guarantee restoration of ingredients: prepared food must not automatically be treated as returned raw materials. See Loss control.
Orders and average check#
Finance → Overview → Orders counts each non-cancelled order with a positive item total after discounts once. It is not the number of fiscal receipts, payments, guests or portions. An order discounted by 100% does not increase this metric; a refund neither creates an order nor reduces the count.
Average check in Finance = the sum of these orders before subtracting refunds / their count, separately by currency. Tips, delivery and separate guest-bill charges are excluded. With no qualifying orders, the card displays 0.
Statistics uses a different formula: (order revenue − refunds in the period) / order count. It also shows zero when the order count is zero. Thus the two screens can have different averages despite matching filters.
Guests, check per guest and tables#
The cashier records the number of guests on a dine-in order (the person button in the check header). From this data Finance → Overview shows:
- Guests — how many guests were recorded on orders in the period. Below it is the share of orders that have a guest count at all: an order without one has no guests recorded, which is not the same as “zero guests”.
- Average check per guest — revenue of orders with a guest count divided by those guests, separately by currency. A 3,000 order at a table of three gives 1,000 per guest. Orders without a guest count are excluded, otherwise they would understate the figure.
- The Tables block — for each table: revenue, turns (orders closed at that table in the period), guests, check per guest and average time at the table — from opening the order to closing it (payment or completion). Intervals under a minute or over a day are left out of the average, so an order rung up on the spot or a bill forgotten open does not distort it.
The “All tables” row plus the “No table” row (takeaway, delivery, counter) add up to order revenue for the period — that is how the table report reconciles with the dining room. Tables with the same name at different locations get separate rows.
The Guests and Average check per guest tiles appear when the Average check tile is on and the period has orders with a guest count. The Tables block appears when there are orders with a table. Average check in an individual customer’s profile is a different figure: the average value of that customer’s completed orders, not spending per person at a table.
Tips and service charges#
Tips are a voluntary amount on top of the order. They are excluded from item revenue and average check. Find them in Tips, Finance → Sales → Tips by waiter, X/Z reports and payroll allocation. The Finance card sums tips on positive, non-cancelled orders in the selected period.
POS supports Tip after payment: a card tip is a separate transaction. It is not a new item sale. For collection and allocation rules, see Tips.
A service charge follows the location/table/order rule: a percentage of the discounted subtotal or a fixed amount. It is included in the amount due and the POS breakdown. In the financial overview an ordinary order’s service charge is not added to the Revenue card or the average check — a separate Service charge card shows it: the total charged on non-cancelled orders in the period and the number of orders with a charge. The amount recorded on the order by POS is used; older orders without it are recalculated from the charge rule. Staff meals and cancelled orders carry no charge.
The shift X/Z report has a line like Service charge (3) — the total of charges on orders closed by that shift; the number in brackets is how many such orders. It is for reference: the money is already inside cash, card and shift revenue and is not added again.
The same report has a line like Incl. deposits and item fees (2) — deposit or fee lines on orders closed by that shift. This amount is already inside cash, card and shift revenue, so do not add it to them. A check discount does not reduce this line, just as on the receipt itself, and a returned bottle shows in refunds.
A separate service-charge entry on a guest bill counts towards that bill’s revenue. Allow for this difference when reconciling POS and Finance: X/Z shift revenue includes the charge, while Finance Revenue does not — the charge has its own card there.
Inclusive and add-on taxes#
An inclusive VAT amount is already part of the item price: revenue does not automatically subtract it. For an illustrative 20% rate, included VAT is discounted amount × 20 / 120. Add-on tax increases the amount due separately from the items.
The exact tax-card label in Finance → Overview is Sales tax collected. It sums order taxes by rate plus separate tax charges on guest bills. An order’s rate is taken as follows: when items carry the till’s VAT rate (VAT 22%, VAT 10%, VAT exempt — what goes on the receipt), VAT is extracted from the discounted item total at that rate; otherwise it comes from tax classes or the location’s tax rate. With no tax data in the period, the card is hidden.
The breakdown of this amount is the Taxes by rate block on Finance → Sales: for each rate, the number of orders, Sales incl. tax, Tax and Net of tax. The No tax row holds orders without tax data, Rate not set — items without a VAT rate on their card (the till prints them at the location’s default rate), Guest folios (tax) — tax charges on hotel bills. The 5% and 7% rates are labelled (simplified regime). The block total equals the tax card on the Overview, and the sales column of the order rows adds up to the period’s order revenue. Add-on tax is added to Sales incl. tax; inclusive tax is already inside.
Refunds. The block and the tax card are net of the till refunds of the selected period. A refund takes the rates of its own order, just as a refund receipt repeats the sale receipt’s rates: refunding a juice at 10% VAT reduces the “VAT 10%” row, not the 22% one. The Refunds, tax column shows how much tax was refunded at each rate. A refund whose order can’t be found (for example, a receipt with no order) goes to the No tax row.
Breakdowns and discounts. The switch above the table shows the same tax by rate, by report group (Food, Drinks, Alcohol), by menu category or by item (an item shows its rate and quantity; its name opens the orders containing it). The Before discounts, incl. tax and Tax before discounts columns show what the items would have cost and how much tax they would have carried without item, check and coupon discounts; the line under the table shows how much discounts cut the tax. “Several rates” on an item means the order’s tax was calculated by tax classes for the whole order, so it is split across the items in proportion to their revenue. The tax total is the same in every breakdown.
The POS X/Z report has no automatic sales breakdown by VAT rate. Under Accounting, Z-reports of the cash register can contain Taxes by device groups: an entered or imported copy of the Z-report figures, where device groups are configured. This is a separate reconciliation, not tax calculated from financial revenue.
Use the fiscal receipt to check the rate and tax amount of a particular sale. The financial overview does not replace a tax register: the refund tax in the block is derived from the order’s rates rather than read from the printed refund receipts, so the block total is a management figure, not VAT payable. Use Accounting for the return.
Purchases, cost of sales and margin#
| Metric | Formula and meaning |
|---|---|
| Purchases / revenue, Finance → Overview | Inventory purchases in the period / period revenue × 100% |
| Revenue minus purchases, same tab | Period revenue − inventory purchases in the period |
| Margin in Dish Statistics | Item revenue after discounts and refunds − cost of the period’s quantity |
| Unit margin in menu engineering | Item revenue / quantity sold − unit cost |
Buying ingredients in advance raises purchases today even if the dishes sell later. Revenue minus purchases therefore differs from the margin on dishes sold and is not net profit.
For portions covered by inventory sales deductions, Dish Statistics uses cost recorded at sale time. Other portions may use the current recipe and today’s purchase prices; the screen shows the shares calculated at sale-time and current prices. Incomplete cost is not zero cost. A refund without new sales should not be evaluated as an ordinary profitable sale.
ABC groups dishes by revenue contribution: A is the first 80%, B the next 15%, and C the remainder. It is not a quality rating or a replacement for margin. See Analytics and Menu engineering.
Hours and labor cost#
In Staff, timesheets and shifts provide hours; Labor cost shows planned and actual cost using employees’ compensation terms. It includes Labor % = labor cost / revenue × 100%. Revenue for an unfinished week may be estimated; the percentage is unavailable when revenue is missing or currencies are incompatible.
Finance → Staff shows planned versus actual hours, shifts and lateness, but not this percentage. Do not expect dividing payroll by the Finance revenue card to reproduce it exactly: Labor cost uses its own order-revenue calculation, without separately subtracting POS refunds or adding guest-bill charges.
Day, time and currency#
The main analytics reports assign orders to their creation date in the location’s time zone, and refunds to the refund-receipt date. This is not necessarily the payment date or the shift-closing date. When reports fall back to order-history calculations, dates can use the browser’s time zone.
In Finance, Today and Yesterday compare with the same weekday last week. 7 days, 30 days and 90 days compare with the preceding window of equal length. 12 months does not compare with the preceding year. For a network spanning time zones, the selected window’s boundaries use the browser calendar; transaction dates remain local to each location.
Currencies are shown separately. Show in: adds conversion at the transaction-date rate: the location country’s central bank takes priority, with an ECB cross-rate available when the direct pair is unavailable. If no suitable rate exists, the amount is marked as unconverted rather than zero. Conversion does not change the original order amounts.
Why two reports show different totals#
| Report | Basis and period boundary | Why direct comparisons can differ |
|---|---|---|
| Finance | Analytics data, location dates; guest bills added separately | Guest-bill charges contribute to revenue; average check is before refunds |
| Statistics, Dish Statistics | Orders and refunds for the location/selected scope, using analytics dates | No combined guest-bill charge total; Statistics average check is after refunds |
| Dashboard, chart builder | Order projection; relative windows and daily buckets use UTC | The projected total does not recalculate check discounts and cancelled lines like Finance; refunds depend on the selected metric |
| POS X/Z report | A specific register and shift | Payments, tips and cash movements; a shift can cross midnight |
| Fiscal receipts | Fiscal sales and refunds by issue time | An order can have several receipts; fiscal receipt amounts and financial revenue have different components |
For a net amount in the chart builder, choose Revenue net of refunds. A simple sum of orders is not the same metric. An external order’s declared total may already contain discounts; differences cannot always be corrected with one fixed percentage.
To reconcile, align locations and currency, compare exact dates and times, separate sales from tips, delivery and service charges, then inspect refunds and discounts. For POS, also align shifts: drawer cash depends on the float, deposits, withdrawals and cash drops; card payments do not add banknotes.
History depth#
Standard order-history reads cover the last 400 days. This limits the read window; it is not a promise to delete orders on day 401. The main analytics database may contain older accumulated data, while the screen’s available periods separately limit what is displayed. “12 months” does not imply a comparison with another full year.
If an old order is absent, check the period and data source. A missing report row does not by itself mean the order or fiscal receipt was deleted.
Example: sell today, refund tomorrow#
One location, rubles, a separate shift each day and no other transactions. On day one, a guest pays by card for borscht at ₽450 and chicken Kyiv at ₽750. The check discount is 10%, with a ₽100 card tip. There is no delivery or service charge. Both items use 20% VAT included in the price for this example; this is a calculation assumption, not a rate instruction for every business.
| Item | Before discount | Discount share | After discount | Included VAT |
|---|---|---|---|---|
| Borscht | ₽450 | 120 × 450 / 1,200 = ₽45 | ₽405 | ₽67.50 |
| Chicken Kyiv | ₽750 | 120 × 750 / 1,200 = ₽75 | ₽675 | ₽112.50 |
| Total | ₽1,200 | ₽120 | ₽1,080 | ₽180 |
The guest pays ₽1,180, including the ₽100 tip. A second order is cancelled in full before payment and adds nothing to revenue or Orders. The following day, one chicken Kyiv is returned for a card refund, without the tip. The POS refunds the item’s share after the discount allocation — ₽675: exactly what the guest paid for it and what this item amounts to on the fiscal sale receipt. Refunding both items one after the other adds up to the ₽1,080 paid, with no leftover kopecks. The original order is not cancelled and its items are not rewritten.
| Metric | Sale day | Refund day, with no new sales |
|---|---|---|
| Finance: Revenue | ₽1,080 | −₽675 |
| Orders | 1 | 0 |
| Average check | ₽1,080 | 0 |
| Tips | ₽100 | 0 |
| Refunds | 0 | ₽675 |
| X/Z: Total sales (order count) | ₽1,080 (1) | ₽0 (0) |
| X/Z: card; tips | ₽1,180; ₽100 | ₽0; no tips |
| X/Z: Card refunds; Card net (terminal batch) | No refunds; ₽1,180 to reconcile | ₽675 refund; −₽675 to reconcile |
| Dish Statistics, daily contribution: borscht | 1 portion; ₽405 | No sales or refunds |
| Dish Statistics, daily contribution: chicken Kyiv | 1 portion; ₽675 | −1 portion; −₽675 |
X/Z shows refunds separately; they do not reduce Total sales. Zero tip/refund rows may be omitted; the card-net row appears when card refunds exist. This example has no cash: with a zero opening float, expected drawer cash stays zero on both days. X is the current snapshot and Z records the closing result; with no intervening operations, the amounts match.
Across both days, Finance Revenue is ₽405, Orders is 1, Finance Average check is ₽1,080, and Statistics Average check is ₽405. The item rows above show each day’s contribution; Dish Statistics totals the selected period, with daily detail in the item trend. A period covering both days has 1 borscht / ₽405 and 0 chicken Kyiv / ₽0. Included VAT on the sale is ₽180; the ₽675 refund at 20% contains ₽112.50 — exactly the chicken Kyiv share. The Finance tax card does not automatically display these amounts.
Limitations#
- There is no unified performance report for all promotions/coupons or complete sales-by-VAT-rate report in the financial overview yet.
- There is no separate reconciliation of checks carried over from the previous day yet. Guests and check per guest count only orders where the cashier recorded a guest count; older orders do not have it.
- An ordinary order’s service charge is shown on its own card and is not part of Revenue; order taxes are not fully available to the tax card.
- Finance and Statistics use different refund rules for average check. The compact dish top list in Statistics does not create a row for an item only refunded in the period; use Dish Statistics.
- Fallback loading without the analytics database can leave refunds out of some reports. Check incomplete-data and update messages.
- Margin without complete cost and labor percentage without comparable revenue are not reliable profitability estimates.
Troubleshooting#
| Symptom | Possible cause | What to do |
|---|---|---|
| Revenue is below payments | Payments include tips, delivery, service charges or other receipts of money | Compare the components, then discounts and refunds |
| Revenue is negative | Earlier sales were refunded today | Open today’s refunds; do not manually move them to the sale date |
| Average checks differ | Different refund formulas or order sets | Align Orders and refunds, then check the screen’s formula |
| Tax card is missing | No available non-zero tax amount | Check fiscal receipts; an absent card is not zero tax |
| Difference around midnight | Location, browser or UTC dates, or shift boundaries | Compare the order time and both adjacent dates |
| Purchases percentage jumps | Stock was bought in advance | Compare cost of dishes sold as well as purchases |
| Some data is missing | Update incomplete or access to a location/source missing | Read the screen message, check scope and refresh |
Frequently asked questions#
Why is Finance revenue below the sum of the week’s Z-reports?#
Check that you added sales rather than payments including tips, and accounted for refunds. Then compare discounts, delivery, service charges, shift boundaries and order dates. A Z-report belongs to a shift; financial revenue reflects the eligible transactions in a selected period.
Why is Average check per guest not Average check divided by guests?#
Average check per guest uses only orders where the cashier recorded a guest count. Orders without guests — takeaway or delivery, for example — are excluded, while Average check includes every order.
Is the service charge part of revenue?#
Not in the Finance overview Revenue card: the charge has its own Service charge card. Shift revenue in the X/Z report does include it, because it is part of the paid bill; the Service charge line there is for reference.
Do tips count towards average check?#
No. Finance calculates it from item values after discounts, excluding tips.
Why did a refund reduce today’s revenue when the sale was yesterday?#
A refund uses its own receipt date. Yesterday’s sale stays in yesterday’s report; today’s report shows today’s reduction.
Why does Revenue / Orders differ from Average check?#
In Finance, Revenue already subtracts refunds and may include guest-bill charges. Average check uses only positive orders before refunds.
Does a hidden tax card mean there was no VAT?#
Not necessarily. The card is hidden when no order in the period has tax data: items have no VAT rate and the location has no tax enabled. Set a VAT rate on the product cards and new sales will appear in the Taxes by rate block. Check the fiscal receipt for the rate and amount of a particular sale.
Related sections#
- Reports — choose a report for your question.
- Finance — cards and tabs.
- Analytics — sales and ABC.
- Statistics — summary and risky operations.
- Cash shift — X/Z reports and cash.
- Tips — collection and allocation.
- Menu engineering — popularity and margin.
- Loss control — cancellations and refunds.
- Dashboard — custom charts.
- Discounts, promo codes and points at the till — where report discounts come from.
- Service charge — how the charge is calculated on an order.
- Gift cards — why selling a card is not revenue.
- Timesheets — hours behind labor cost.