One source of truth for a multi-location restaurant group
Sales, covers, food cost and tips for nine restaurants, combined into one Power BI report that managers can open every morning.
- Client
- Multi-location restaurant group
- Industry
- Hospitality
- Region
- Europe
- Services
- Power BI Dashboards, Business Intelligence
9
locations in one model
3
report pages
20+
KPIs with one definition
Daily
automated refresh
01 · The challenge
Each restaurant ran its own POS exports and spreadsheets. Covers, average check and food cost were calculated slightly differently at every location, so comparing restaurants started with an argument about definitions.
Food cost was only visible as one number at month-end — too late to act, and with no way to tell recorded waste from unexplained loss.
Tips were a recurring source of questions: staff could not see how tip-outs and the shared tip pool were calculated.
02 · Our approach
- 01
Define the KPIs once
Mapped the metrics management actually uses — covers, average check, seat turns, food cost %, waste — and agreed one definition for each.
- 02
Model the data
Built a star-schema model combining POS checks, purchasing, inventory counts, recorded waste and timesheets.
- 03
Separate the signal
Calculated theoretical food cost from recipes and split the variance into recorded waste and unexplained variance.
- 04
Make tips transparent
Encoded the tip-out and tip-pool rules in DAX and explained them in plain language on the report page.
03 · The solution
Sales & Covers
Covers, checks, average check, seat turns and beverage mix — by weekday, hour of arrival, payment method and concept.
Food Cost & Waste
Actual vs theoretical food cost per location, waste by reason and ingredient, and purchase prices against last year.
Tips & Tip Pool
Card tips, tip-outs and pool distribution per location and per employee, with the calculation rules on the page.
Try it yourself
The report, recreated on synthetic data.
Sales & Covers
Data as of 31 Oct 2026 · Refreshed daily
311K
Covers
109K
Checks
€191.31
Avg check
0.96
Seat turns per day
32.3%
Beverage mix
8.7%
Takeaway & delivery
78
Avg minutes at table
Covers by weekday
Click a bar to filterCovers by hour of arrival
Sales by payment method
- PIN / debit€11.9M · 57.4%
- Credit card€6M · 28.9%
- Cash€1.68M · 8.1%
- Invoice€1.17M · 5.6%
Covers by location and weekday
Click a row to filter| Location | Mon | Tue | Wed | Thu | Fri | Sat | Sun | Total |
|---|---|---|---|---|---|---|---|---|
| Harbor House | 4,257 | 4,527 | 5,065 | 5,907 | 7,731 | 8,960 | 7,319 | 43,766 |
| Marlow | 2,220 | 2,336 | 2,698 | 3,024 | 4,073 | 4,417 | 3,867 | 22,635 |
| Copper Grill | 3,707 | 3,907 | 4,615 | 5,179 | 6,777 | 7,773 | 6,544 | 38,502 |
| Olive Row | 4,377 | 4,619 | 5,487 | 6,151 | 8,137 | 8,977 | 7,746 | 45,494 |
| Saltwater North | 2,812 | 3,105 | 3,419 | 3,911 | 5,201 | 5,800 | 4,955 | 29,203 |
| Saltwater South | 2,537 | 2,719 | 3,054 | 3,556 | 4,595 | 5,245 | 4,471 | 26,177 |
| Pier Nine | 3,648 | 3,986 | 4,391 | 5,124 | 6,657 | 7,418 | 6,421 | 37,645 |
| Blue Fin | 3,156 | 3,422 | 3,835 | 4,340 | 5,658 | 6,481 | 5,451 | 32,343 |
| Sunday Club | 3,420 | 3,598 | 4,031 | 4,695 | 5,983 | 7,122 | 6,060 | 34,909 |
| Total | 30,134 | 32,219 | 36,595 | 41,887 | 54,812 | 62,193 | 52,834 | 310,674 |
Average spend per cover by concept
04 · The result
- Every location is measured on the same definitions, so managers compare restaurants instead of spreadsheets.
- Food cost variance is split into recorded waste and unexplained variance — showing where to look first.
- Staff can see exactly how their net tips are calculated, which removes a recurring source of friction.
Facing a similar challenge?
Tell us what you need to see. We reply within one business day with next steps — no sales pitch.