Home/Resources

DataMay 202610 min read

Restaurant KPIs: the 7 numbers to track every week

Covers, fill rate, no-shows, average spend, direct bookings, repeat guests, acquisition cost: definitions, formulas and where to find them in SevenRooms.

Casa Yuma's terrace at dusk

On Monday morning, most restaurateurs have a feeling about the week just gone: "Thursday was quiet." Restaurant KPIs replace that feeling with seven simple numbers, always collected the same way and compared week to week. A twenty-minute meeting, one tracking sheet, and concrete decisions: open or close a service, win back guests, cut a campaign.

This guide covers those seven indicators: definition, formula, where to find the data in SevenRooms Reporting, and how to read it. Every numerical example is fictional. They exist only to explain the calculation, not to give you a target.

Restaurant KPIs: the 7 numbers to track every week

Here is the list, in the order we suggest you review them:

  • Covers served.
  • Fill rate per service.
  • No-show rate.
  • Average spend per cover.
  • Share of direct bookings.
  • Repeat guests.
  • Acquisition cost through advertising.

Four reading rules prevent most mistakes:

  • Compare like with like: a Tuesday lunch with a Tuesday lunch, not with a Saturday dinner.
  • Think per service, not per day: an empty lunch hidden by a full dinner disappears in a daily total.
  • Look at the trend over four to six weeks, not at one isolated week.
  • Freeze your definitions at the top of your tracking sheet. If "cover" changes meaning mid-year, your curves are worthless.
Note: by default, only Managers and Superusers can access SevenRooms reports, and exporting requires an extra permission for Managers and Sub-Managers. Decide who prepares the Monday report.

Covers and fill rate per service

Covers. This is the number of people served over the period. In the monthly Performance Comparison report, total covers exclude no-shows and cancellations. Keep that logic, otherwise you inflate your numbers with tables that never came.

Where to find it: Reporting > Reservation Dashboards > Reservation Summary. The top of the report shows covers, reservations, walk-ins, cancellations and no-shows. Filter by dates, Shift, reservation status, Client Tag or Marketing Opt-In. Switch to a weekly or monthly view to compare, and if your business is seasonal, compare months from the same season.

Fill rate. This is the share of your capacity actually used during a service.

  • Formula: covers for the service ÷ seat capacity of the service × 100.
  • Fictional example: a 70-seat restaurant serves 48 covers on a Thursday evening. 48 ÷ 70 × 100 = 68.6%, about 69%.

Where to find it: the Utilization report (Web > Reporting > Utilization, Dining platform only) compares booked reservations and covers with the cumulative capacity of your tables, per Shift, per day or over a custom range. For an hour-by-hour measure, the Table Occupancy Report (select packages only) divides the minutes tables are occupied by the possible minutes: 7 tables occupied for the whole hour out of 10 tables, or 420 minutes out of 600, gives 70%. It ignores how many seats are filled: a party of two at a four-top counts as an occupied table.

How to read it:

  • A service that is repeatedly almost full signals possibly unmet demand: check whether guests were turned away for lack of a table.
  • A service that stays low is not always fixed by advertising. Question the offer and the opening hours first.

To look ahead, the Covers Calendar (Reporting > Covers Calendar, select packages only) shows reservations and covers already booked per day and per Shift, with a pace indicator for the next 14 days based on the previous five weeks. A day behind its usual pace leaves you time to act.

No-show rate and cancellations

Definition. A no-show is a confirmed reservation whose guests do not come and do not warn you. A late cancellation has the same effect on your service.

  • Formula: no-shows for the period ÷ reservations for the period × 100. Calculate the same thing in covers too (lost covers ÷ booked covers), because a no-show of eight people weighs more than one of two.
  • Fictional example: 120 reservations over the week, 6 of them no-shows. 6 ÷ 120 × 100 = 5%.

Where to find it: the Reservation Summary report shows no-shows and cancellations. The No-Show / Short-Show Report (Reporting > Reservation Dashboards, Dining platform only) details no-shows and "short-shows", meaning reservations where the party arrives with fewer people than booked. You can view it by day, week, month, quarter or year, by Shift, or in 15-minute increments.

How to read it:

  • Track the rate per service and per party size: an average can hide a problem concentrated on large Saturday tables.
  • Short-shows are lost covers that the no-show rate does not see: a party of six arriving as four is "honoured", yet two covers are missing.
  • SevenRooms suggests testing a cancellation policy and validating its effect with these same reports. To choose between a deposit, a card guarantee or prepayment, read our guide on deposits and card guarantees.

Average spend per cover

Definition. Average spend is calculated per cover, not per table, otherwise a table of six and a table of two cannot be compared.

  • Formula: service revenue ÷ number of covers. Choose once and for all whether it is tax-inclusive or not, with or without service charge, and write it down.
  • Fictional example: €5,400 tax-inclusive for 90 covers. 5,400 ÷ 90 = €60 tax-inclusive per cover.

Where to find it: in Reservation Summary, the Total Spend and Spend/Cover visual lets you follow the trend, including for a specific segment. SevenRooms gives the example of filtering on the "VIP" Client Tag to see whether that group's spend is growing or shrinking. In Performance Comparison, Average Spend per Cover covers reservations with a linked POS check, and POS Linked Rate shows the share of completed reservations with a linked check.

How to read it:

  • Check the POS link rate first. Without a linked check, the spend shown is not real spend. According to SevenRooms documentation, revenue reports then use an average spend per cover that you enter (Marketing > Profile Information, Avg Spend / Cover field). An estimated figure is not a measured one.
  • To act on average spend, the usual levers are extras offered at booking. See our advice on Upgrades.

Direct bookings and repeat guests

Share of direct bookings. This is the share of your covers that arrive through your own channels rather than through intermediaries.

  • Formula: covers booked directly ÷ total booked covers × 100. Decide upfront which channels count as "direct" (widget on your website, phone, email, link in your Google profile…) and which are "third-party".
  • Fictional example: 210 direct covers out of 300 booked covers. 210 ÷ 300 × 100 = 70%.

Where to find it: the Booked By report (Reporting > Reservation Dashboards > Booked By) breaks down reservations, covers and spend by booking channel: Google Reserve, OpenTable, Instagram, Facebook, reservations entered internally (Internal: Shift) or coming from your Tracking Links (Other - Online). The Sourced By report does the same by Source if you use them. The monthly Performance Comparison report shows Percent Direct Covers, but that definition includes phone and walk-ins, so it may not match yours.

How to read it: what matters is the trend and the quality of each channel. The Booked By detail shows spend per cover, cancellations and no-shows for each one: a channel that brings many covers but also many no-shows is worth less than a smaller, reliable one.

Repeat guests. This is the share of your guests who come back.

  • Formula: guests who visited at least twice ÷ guests who visited during the period × 100.
  • Fictional example: 120 different guests in the month, 42 of whom have already visited twice or more. 42 ÷ 120 × 100 = 35%.

Where to find it: the Venue Repeat Visit Rate in the monthly Performance Comparison report follows exactly this logic: the share of guests who visited during the period and have visited your venue two or more times in total. You can also filter your database in Web > Clients by number of visits or last visit date (for example, guests who have not come for six months) to build a win-back list.

How to read it: repeat rate falling while new guests rise is not necessarily bad, for instance after an acquisition campaign. To spot your regulars automatically, see Auto-tags.

Acquisition cost: linking advertising to tables

Definition. Customer acquisition cost (CAC) is what a new guest acquired through advertising costs you. Many people use cost per reservation instead, which is simpler. Both are useful, but do not mix them up.

  • Cost per reservation: ad spend ÷ reservations attributed to advertising.
  • CAC: ad spend ÷ new guests attributed to advertising (guests on their first visit).
  • Fictional example: €900 spent over the month, 60 reservations attributed to advertising, 30 of them new guests. Cost per reservation: 900 ÷ 60 = €15. CAC: 900 ÷ 30 = €30.

Where to find the data:

  • Spend comes from your ad platform (Meta, Google…): the amount actually billed, not the planned budget.
  • Reservations come from SevenRooms: Tracking Links and Sources distinguish their origin in the Booked By (Other - Online) and Sourced By reports.
  • New guests come from filtering Web > Clients or exporting reservations (Reporting > Exporting Reports > Reservations Export, as CSV or Excel).

How to read it, and its limits:

  • Attribution is never perfect: a guest may see an ad, search your name on Google, then book. Choose a rule, write it down, and do not change it midway.
  • Cost per reservation says nothing about spend. Cross-check it with average spend and repeat rate.
  • Browser pixels see real reservations and visits poorly: Painapo links campaigns to reservations and in-restaurant spend, with server-side tracking connected to SevenRooms. For the method, read our article on advertising ROI.

Restaurant KPIs: frequently asked questions

Which KPIs should a restaurant track every week?

Seven are enough to start: covers, fill rate per service, no-show rate, average spend per cover, share of direct bookings, repeat guests and advertising acquisition cost. Collect them on the same day, with the same definitions.

How do you calculate a restaurant's fill rate?

Divide a service's covers by that service's seat capacity, then multiply by 100. Fictional example: 48 covers for 70 seats gives about 69%. In SevenRooms, the Utilization report compares booked reservations and covers with your table capacity, per Shift or per day.

What is a good no-show rate?

There is no universal threshold: it depends on your clientele, your services and your cancellation policy. What matters is your own trend, tracked per service and party size. If it rises, test a payment policy and measure the effect over several weeks.

Where do you find these numbers in SevenRooms?

In the Reporting menu: Reservation Summary for covers, spend and cancellations, Utilization for fill rate, No-Show / Short-Show for absences, Booked By and Sourced By for booking origin. Some reports depend on your package.

Need help steering your restaurant with reliable numbers?

A dashboard nobody reads is useless. You need clear definitions, clean data and a short report that reaches the right person every week. Concretely, māhie can:

  • audit your SevenRooms reports and check that the data feeding your KPIs (Sources, Tracking Links, POS link, tags) is set up correctly;
  • build your dashboards per venue and for the whole group;
  • set up tracking (Google Analytics 4, Tag Manager) and booking attribution, so you know where your guests come from;
  • link your campaigns to real reservations with Painapo, to follow cost per reservation and the return of each campaign;
  • train your teams to read the Monday report and decide from it.

To discuss it, explore our Data & reporting offer or our SevenRooms expertise, then Contact māhie.

Corentin
CorentinFounder of māhie