Blog · Numbers

Restaurant KPIs: the six numbers to check every morning

Six numbers, one screen, five minutes. Last night sits in a line at the top of the dashboard: net sales before GST, orders, average bill. The cards under it are today as it builds, with net sales set against the same weekday last week, beside them what you were paid in, what sold most and what is still open.

Start free — ₹0 todayDemo on WhatsApp
The comparison

Last night is one line at the top. Today is the cards under it.

Open the dashboard at nine in the morning and the first thing on the page is last night in a single line: Yesterday · Tue 8 Sep, with net sales before GST, the order count and the average bill. That is the read you came for and it takes ten seconds. Everything below it is the store's business today, which at nine is nearly empty and fills as the day goes.

The comparison lives on those cards. A restaurant's week has a shape: Tuesday lunch is quiet, Friday dinner is not, and the first weekend after salary day is different again. Measured against the day before, a perfectly normal Tuesday reads as a collapse and you spend the morning looking for a problem that does not exist. So the net sales card carries the same weekday last week beside it, printed as vs last Sat, and by the middle of service you can see whether today is tracking a normal one. For last night, hold the top line against the same weekday a week ago yourself.

Which night a bill belongs to matters here too. The trading day starts at 4am by default and the owner can move it between midnight and 6am in Settings, so a bill rung at 12:40am counts on the night it was earned instead of splitting one service across two dates.

The list

Six numbers, and what each one is allowed to make you do.

Six is what an owner can read standing up, before the vegetables arrive. The first three are on the Yesterday line for last night and on a card for today; the rest are today's only. Each one answers a question, and each one is allowed to trigger a specific, small action. A number that is not allowed to change anything is a number you will stop reading by the end of the month.

#The numberWhat it answersWhat it is allowed to make you do
1Net sales: last night on the Yesterday line, and Net sales today (before GST) on the card, against the same weekday last weekWas that a normal night for this weekday?Ask what was different: rain, a dug-up road, one cook missing, a party that did not come. Not a menu change, on one night's evidence.
2Orders, on the Yesterday line and again as Orders todayFewer guests, or the same guests spending less?Read it with line 1. Sales down and orders flat is a ticket-size problem. Both down is a footfall problem, and they have different answers.
3Average bill (net, before GST), on the Yesterday line and on a cardWhat one table is worth to you now.A conversation about portions, add-ons and what the captain offers before the guest asks. A price rise needs more than one morning's number.
4How you were paid today, by tender, GST includedDid the money arrive the way the bills say it did?The card is today's, so take last night's split from the morning email: cash against what was counted, UPI against the bank credits. A gap gets a name today, not at the end of the month.
5Top sellers, in units, over the last seven daysWhat the kitchen should be prepping for.Set today's prep list, and mark the two or three dishes worth checking against what they cost you to make.
6Open right nowWhich checks were never settled.One phone call to the floor while somebody still remembers the table. See below, because at 10am this should almost always be zero.
Spice Route Kitchen's owner dashboard on Saturday 26 September: Friday's line shows ₹700 net before GST, 3 orders and ₹233.33 average bill. Today's cards show ₹856 net sales, 3 orders, ₹285.33 average bill and 1 open check worth ₹325.50, followed by latest orders, top sellers, a two-week chart, captured Card ₹504 and Cash ₹150, and no expenses.

A Saturday dashboard review: Friday's closed-bill figures on top, with today's orders, open check and captured tender mix below.

A seventh line is worth a glance if you spend from the drawer: Expenses shows what went out today and this month, and it is the number that turns a busy month into a thin one without anybody noticing. The weekly close is where it gets dealt with properly.

Six, not thirteen. orderitnow.in, an Indian POS, publishes a 13-KPI daily list (read 2026-09-09) and it is a good list to grow into. Toast makes the point that decides how many you keep: a small set of decision-ready reports (read 2026-09-09) beats a dashboard nobody opens.

Ticket size

Average bill moves without anyone deciding to move it.

Average bill is net sales divided by orders, before GST, and it drifts on its own. Parcel share goes up and the average falls, because a parcel order is usually one or two dishes and no second round of drinks. A captain stops offering the full portion when the guest hesitates. A cheap dish becomes the thing everyone orders. None of that is a decision anybody took, and all of it shows up here first.

There is no honest number to compare it against nationally. The industry's own survey is NRAI's India Food Services Report, which is paid, and the public summaries carry market size rather than ticket size (checked 2026-09-09). Anyone quoting you an average bill for "Indian casual dining" is quoting a guess. So compare yourself to yourself: this month against last month, weekday lunch against weekday lunch. When it moves, the two places to look are what you charge and what gets offered, which is menu pricing and menu engineering, in that order.

Loose ends

Open right now should be zero by mid-morning.

Open right now is the live floor. At the configured cutoff, eligible synced bills move to Paid · Auto closed, so they contribute their bill value to sales without inventing cash, a payment or a loss. Any check still open by mid-morning is therefore worth a look: it may not have synced, may be empty or fully cancelled, or may still belong to an active service.

The offline EasyKOT Desktop App routine is separate: it can discard an empty check, add the payment for a check whose money did come in, keep a check as Paid · Auto closed, or write off food with a reason and manager PIN. The owner dashboard adds an optional Day close review for bills, actual collections and a counted cash shift. Open an issued eligible bill when real money arrived later; enter only that new amount and review the remaining Sales loss before confirming. The day close guide covers both paths, and the day-end report post is the eight lines to read at night.

Without a dashboard

If you never open a dashboard, read the morning email.

From 08:00 store time, the summary takes a snapshot of the previous trading date for delivery. It carries orders, average order, Captured split into Cash, UPI and Card, Refunds, Net collected, and net sales before GST. Delivery can be later, and an open business window is marked provisional. It is switched on per store in Settings, alongside the day-close cash-up mail that follows a closed shift on an hourly sweep (gross, refunds, net, opening float, expected, counted, variance). Between the two, an owner who is at the other shop all week still knows what happened at this one.

None of it depends on the shop having internet. The Desktop App bills, prints and settles on its own database and syncs when the line is back, which is what offline billing means in practice. The email uses whatever has synced when the snapshot is prepared. Later offline facts catch up in Reports, so the morning snapshot can be short.

Tomorrow morning, whatever billing system you run: pick the same weekday last week, write both net sales figures on the same line, then the order count, then the tender split. Three minutes, on paper if you like. EasyKOT is ₹299 a month or ₹2,990 a year, plus 18% GST, with three months free and no card, if you would rather the six numbers were waiting for you.

Owners ask

Straight answers.

If I only check one number, which one?
Last night's net sales, off the Yesterday line at the top of the dashboard. It is the only number that carries a verdict on its own, once you hold it against the same weekday last week: a normal Tuesday, a good one, or one that needs an explanation while people still remember the night. Every other number on this page exists to tell you why that one moved.
Why compare against the same weekday instead of yesterday?
Because a restaurant's week has a shape. Tuesday lunch and Saturday dinner are different businesses in the same room, so measuring Tuesday against Monday reports a fall that was always going to happen. Against last Tuesday, a real drop shows up on the first morning it exists, and a good day is visible as a good day.
What is a healthy average bill for an Indian restaurant?
There is no honest India-wide figure to give you. The industry's own survey, NRAI's India Food Services Report, is a paid report and the public summaries carry market size rather than ticket size. So compare yourself to yourself: this month against last month, weekday lunch against weekday lunch, and watch the direction rather than the level.
Do I need internet to see these numbers?
The EasyKOT Desktop App does not. It bills, prints and settles on its own database and syncs when the line comes back. The owner dashboard does need internet, because it reads from the server: on a bad connection day the numbers arrive late, not wrong. The morning email is built from whatever has synced by then.
Can I get this by email instead of opening a dashboard?
Yes. The morning summary carries last night's orders, average order, cash, UPI, card, the total collected including GST and net sales before GST, and it is switched on per store in Settings. Owners who never open a dashboard still read the money lines over the first chai, which is why it is sent.
3 months free · ₹0 today · no card

Run it 3 months, then pay for it.

Three months free, full product, no card. Made in India, for the counter: built inside a running restaurant.