Disho

Restaurant Analytics: The Four Numbers Worth Checking Every Day

Alexander Varlamov · 5 Sept 2026 · 7 min read
A restaurant owner at a glowing laptop in a dim office off the kitchen, doing late-night admin

Restaurant analytics goes wrong in the same way in most venues: either nobody looks, or somebody exports everything into a spreadsheet once a quarter and calls it a review. Both fail for the same reason — the numbers arrive too late to change anything. A QR menu that takes the order already knows what sold, at what price, at what hour. This is what to read from that, how often, and what each figure genuinely means before you make a decision on it.

Which numbers actually matter?

Four: orders, revenue, average check, cancellations. Everything else is a breakdown of those, and a fifth number on the same screen mostly buys you an excuse not to act on the first four.

Orders is every order placed in the window, cancelled ones included. That is deliberate. A cancellation is still a guest who chose something and didn't get it, and hiding it inside the total would make a bad Friday look like a quiet one.

Revenue is the sum of the order totals with cancellations taken out. Nothing else is netted off — no refunds accounting, no cost of goods. It is what the menu sold, not what the business earned.

Average check is the average of those same non-cancelled orders. Worth being precise here, because it is a common source of confusion: it is not revenue divided by the order count. If ten orders came in and one was cancelled, the divisor is nine, not ten. Divide revenue by all orders and every cancellation quietly drags your average check down, which then hides the effect of any menu change you were trying to measure.

Cancellations is the count on its own, next to the other three. It is the quality signal in the set. One a week is noise. Four on a Saturday night is a dish that keeps running out, a table that can't get a waiter's attention, or a price that reads differently on the screen than at the table.

How often should you look, and over what window?

Daily for the day, weekly for the trend, monthly for the decision. Three windows, and the definition of each one matters more than people expect.

The single most useful habit is not looking more often — it's comparing like with like. Today against yesterday tells you almost nothing, because Tuesday isn't Saturday. Compare Tuesday to last Tuesday, and this month to last month.

What does the revenue-by-hour chart tell you?

Where the money lands inside the day, which is a staffing and prep question far more than a menu one. A lunch column twice the height of the one either side of it tells you when the second pair of hands has to be on the floor and when the mise en place has to be finished.

One detail worth knowing, because it changes how you read the shape: the chart draws every hour of the window, including empty ones. Three orders at 09:00, 14:00 and 22:00 are three bars with wide gaps between them, not three neighbours. Drawn the naive way — one bar per hour that had orders — that day would look evenly busy from open to close, and you would staff it exactly wrong.

Over a week or a month the same data is folded into days, so the columns are days of the week rather than hours. That is the view where a consistently dead Monday stops being a feeling and becomes a number you can act on.

Which dishes to trust: top by quantity, not by revenue

The top dishes list is ranked by how many were sold, not by how much money they brought in, and that ordering is the point. A revenue ranking mostly reproduces your price list: the steak wins because it's the steak. A quantity ranking tells you what guests actually choose, which is the thing you can do something about — what to prep more of, what to shoot a video for, what to move to the top of its section, and what to stop wasting stock on.

Read it against the average check rather than on its own. A dish selling in volume at the bottom of your price range is holding your average down; the fix is usually a pairing or an add-on next to it in the menu, not a price rise.

Dish names in the list are stored as they were when the order was placed. Rename "Burrata" to "Burrata with peach" tomorrow and last week's orders still say "Burrata" — history stays truthful instead of being retconned by a menu edit.

How to see all of this in two seconds

Open a browser tab, log in, find the analytics page, pick a range: that's thirty seconds, and it's the reason most owners check once a week instead of once a day. The Disho stats extension for Chrome puts the same four numbers, the same chart and the same top dishes behind the toolbar icon.

  1. Install it from the Chrome Web Store, and pin it so the icon stays visible.
  2. Sign in with your Disho account. If you're already signed in to the dashboard in that browser, it picks the session up and doesn't ask for a password at all.
  3. Click the icon. Today's numbers are already there; the Today / Week / Month switcher uses exactly the windows described above.

It speaks English, Spanish and Russian, and follows the browser's language rather than a setting of its own — including how it formats money and times, so you never get English labels with foreign thousands separators.

On permissions it is deliberately thin: storage for your session, cookies to reuse the dashboard one, and network access to disho.net and nowhere else. No background worker, no content scripts, no code loaded from anywhere at runtime. Nothing runs until you open the popup, and when you close it, nothing keeps running.

What it deliberately doesn't do

It reads. It does not manage orders, change your menu, or touch anything on the server. The kitchen screen stays where it is — real-time tickets with a sound alert are a service tool and belong on a screen in the kitchen, not behind a toolbar icon in someone's browser.

It also doesn't paint a badge on the icon, which was a decision rather than an omission: a badge means polling in the background all day for a number nobody is looking at. And signing out of the popup doesn't sign you out of the dashboard in the next tab over — the two sessions are kept separate on purpose.

Turning the numbers into decisions

Reading the four figures daily is worth about twenty minutes a week. Acting on them is the rest of it:

Frequently asked questions

Why doesn't revenue divided by orders equal the average check? Because cancelled orders are counted in the order total but excluded from revenue and from the average. The average check is calculated over non-cancelled orders only, so the two divisors differ whenever anything was cancelled.

Is "Week" the last seven days or this calendar week? The last seven days, ending today. It always contains one of each weekday, so the figure is comparable from one day to the next instead of climbing through the week and resetting on Monday.

Does the extension work if I'm not logged into the dashboard? Yes. It asks for your email and password the first time and keeps its own session afterwards. Being logged into the dashboard in the same browser just saves you typing them.

Can I use it against a self-hosted or local Disho? No. The address is fixed to disho.net in both the code and the extension's permissions — a narrower permission grant in exchange for no configurable endpoint.

Does it send my data anywhere? No. It talks to disho.net and to nothing else, has no analytics of its own, and stores only your session locally in the browser — not in Chrome's cloud sync.

Is there an app instead of an extension? The dashboard itself works in a phone browser and is the right tool when you're away from a desk. The extension exists for the case the phone handles badly: you're already working in a browser and want the number without changing what you're doing.

Build your QR video menu in minutes

Try Disho free during the beta, no card required.

Get started free