27.16 Restaurants: Spend per Cover and Food Cost
Example first. Salman runs a fictional restaurant brand in five cities and wants sales, spend per guest and food cost for the day.
Restaurants project — in 30 seconds
What: A Restaurants tracker: one Table tblBills, the calculated column FoodCostPct, KPI cells, a PivotTable by City, a chart and a one-page dashboard.
Why: This is the shape of a real Restaurants report: Sales, Average Spend per Cover, Food Cost % are the numbers a manager reads first.
Tiny example: From 6 rows: Sales = ₹9,900, Average Spend per Cover = ₹550.00, Food Cost % = 32.9%.
Restaurants project — 30 सेकंदात
काय: Restaurants चा tracker: tblBills नावाची एक Table, FoodCostPct हा calculated column, KPI cells, City प्रमाणे PivotTable, एक chart आणि एका पानाचा dashboard.
का: खऱ्या Restaurants report चा हाच आकार असतो: Sales, Average Spend per Cover, Food Cost % हे आकडे manager सगळ्यात आधी वाचतो.
छोटं उदाहरण: 6 rows मधून Sales = ₹9,900, Average Spend per Cover = ₹550.00, Food Cost % = 32.9%.
Restaurants project — 30 सेकंड में
क्या: Restaurants का tracker: tblBills नाम की एक Table, FoodCostPct calculated column, KPI cells, City के हिसाब से PivotTable, एक chart और एक पन्ने का dashboard.
क्यों: असली Restaurants report का यही आकार होता है: Sales, Average Spend per Cover, Food Cost % वे आँकड़े हैं जो manager सबसे पहले पढ़ता है.
छोटा उदाहरण: 6 rows से Sales = ₹9,900, Average Spend per Cover = ₹550.00, Food Cost % = 32.9%.
First look at the data (before → after):
Expected result — Calculated column
| BillID | FoodCostPct |
|---|---|
| R-501 | 31.9% |
| R-502 | 34.4% |
| R-503 | 32.5% |
| R-504 | 35.7% |
| R-505 | 30.5% |
| R-506 | 37.8% |
Expected result — KPI cells (expected results)
| KPI | Formula | Result |
|---|---|---|
| Sales | =SUM(tblBills[BillAmount]) | ₹9,900 |
| Average Spend per Cover | =SUM(tblBills[BillAmount])/SUM(tblBills[Covers]) | ₹550.00 |
| Food Cost % | =SUM(tblBills[FoodCost])/SUM(tblBills[BillAmount]) | 32.9% |
Before table and formula as text
Before — Table tblBills (fictional sample rows)
| BillID | City | Channel | Covers | BillAmount | FoodCost |
|---|---|---|---|---|---|
| R-501 | Pune | Dine-in | 4 | 2,480 | 790 |
| R-502 | Pune | Delivery | 2 | 960 | 330 |
| R-503 | Nashik | Dine-in | 6 | 3,540 | 1,150 |
| R-504 | Kolhapur | Delivery | 3 | 1,290 | 460 |
| R-505 | Nagpur | Dine-in | 2 | 1,180 | 360 |
| R-506 | Solapur | Delivery | 1 | 450 | 170 |
Formula / click path
FoodCostPct: =[@FoodCost]/[@BillAmount]
Sales: =SUM(tblBills[BillAmount])
Average Spend per Cover: =SUM(tblBills[BillAmount])/SUM(tblBills[Covers])
Food Cost %: =SUM(tblBills[FoodCost])/SUM(tblBills[BillAmount])
Do it step by step:
- Type the data and press Ctrl+T; name the Table
tblBillsin Table Design › Properties › Table Name. - Add the column FoodCostPct with
=[@FoodCost]/[@BillAmount]; the Table fills it down. - On a KPI sheet type
=SUM(tblBills[BillAmount])and the other KPI formulas from the table below. - Click Insert › PivotTable › From Table/Range, put City in Rows and BillAmount in Values (Sum).
- Click PivotTable Analyze › PivotChart › Clustered Column, then PivotTable Analyze › Insert Slicer › Channel.
- Move the KPI cells, the chart and the slicer onto a sheet named Dashboard.
स्टेप बाय स्टेप करून बघा:
- Data type करा आणि Ctrl+T दाबा; Table Design › Properties › Table Name मध्ये Table ला
tblBillsनाव द्या. - FoodCostPct column
=[@FoodCost]/[@BillAmount]ने जोडा; Table तो खाली भरते. - KPI sheet वर
=SUM(tblBills[BillAmount])आणि खालच्या table मधले बाकीचे KPI formulas type करा. - Insert › PivotTable › From Table/Range वर click करा, Rows मध्ये City आणि Values मध्ये BillAmount (Sum) ठेवा.
- PivotTable Analyze › PivotChart › Clustered Column वर click करा, मग PivotTable Analyze › Insert Slicer › Channel.
- KPI cells, chart आणि slicer Dashboard नावाच्या sheet वर हलवा.
स्टेप बाय स्टेप करके देखें:
- Data type करें और Ctrl+T दबाएँ; Table Design › Properties › Table Name में Table को
tblBillsनाम दें. - FoodCostPct column
=[@FoodCost]/[@BillAmount]से जोड़ें; Table उसे नीचे भर देती है. - KPI sheet पर
=SUM(tblBills[BillAmount])और नीचे की table के बाकी KPI formulas type करें. - Insert › PivotTable › From Table/Range पर click करें, Rows में City और Values में BillAmount (Sum) रखें.
- PivotTable Analyze › PivotChart › Clustered Column पर click करें, फिर PivotTable Analyze › Insert Slicer › Channel.
- KPI cells, chart और slicer को Dashboard नाम की sheet पर ले जाएँ.
The brief. Build a daily restaurant sheet: food cost % per bill, sales, average spend per cover (sales ÷ covers), overall food cost %, sales by city, a chart and a Channel slicer.
Calculated column formulas:
| Column | Formula |
|---|---|
| FoodCostPct | =[@FoodCost]/[@BillAmount] |
KPI cells (check your numbers):
| KPI | Formula | Result |
|---|---|---|
| Sales | =SUM(tblBills[BillAmount]) | ₹9,900 |
| Average Spend per Cover | =SUM(tblBills[BillAmount])/SUM(tblBills[Covers]) | ₹550.00 |
| Food Cost % | =SUM(tblBills[FoodCost])/SUM(tblBills[BillAmount]) | 32.9% |
PivotTable (expected):
| City | Sum of BillAmount |
|---|---|
| Kolhapur | ₹1,290 |
| Nagpur | ₹1,180 |
| Nashik | ₹3,540 |
| Pune | ₹3,440 |
| Solapur | ₹450 |
| Grand Total | ₹9,900 |
Chart and dashboard (one under the other):
- Click inside the PivotTable, then PivotTable Analyze › PivotChart › Clustered Column › OK.
- Add a chart title and data labels with Chart Design › Add Chart Element.
- Click PivotTable Analyze › Insert Slicer, tick Channel and click OK.
- Insert a new sheet named Dashboard. In it, link a card cell to each KPI (for example
=KPI!B2) and format it large and bold. - Cut and paste the chart and slicer onto the Dashboard sheet.
- On the View tab, untick Gridlines in the Show group. Select the dashboard area and click Page Layout › Print Area › Set Print Area.
Template and guide: download the practice template Restaurants_Template.xlsx and read the step-by-step template guide. The template's sample rows may differ from the rows above; the method is the same.
Related ready-made dashboard: the Restaurants dashboard guide and its workbook Restaurants_Dashboard.xlsx show a finished version of this kind of report.
Practice task (try it before you open the answer):
- Which city has the highest sum of BillAmount?
- Filter the Table on City = Nashik (Data › Filter): what is Sales for Nashik alone?
- Add the Clustered Column PivotChart and the Channel slicer to your Dashboard sheet.
Answer
Nashik (₹3,540). For Nashik only (1 row): Sales = ₹3,540. The chart shows 5 bars, one per city.
Ravindra Bagale's Tip
Write the definition of Sales under its KPI card in small text. Two people reading the same dashboard should agree on what the number means.
Ravindra Bagale's Tip – मराठी
Sales ची व्याख्या त्याच्या KPI card खाली छोट्या अक्षरात लिहा. एकच dashboard वाचणाऱ्या दोघांचं त्या आकड्याच्या अर्थावर एकमत हवं.
Ravindra Bagale's Tip – हिंदी
Sales की परिभाषा उसके KPI card के नीचे छोटे अक्षरों में लिखें. एक ही dashboard पढ़ने वाले दो लोगों को उस आँकड़े के मतलब पर सहमत होना चाहिए.
Loading practice tasks...
- Total covers (Easy): Add up Covers in D2:D11.
- Average bill amount (Easy): Average of E2:E11, rounded to 2 decimals.
- Rows in Downtown (Easy): How many rows have Outlet "Downtown"?
- Largest covers (Easy): The largest value in D2:D11.
- Covers for Downtown (Medium): Total of D2:D11 where B is "Downtown".
- Downtown in Seattle (Medium): Total of D2:D11 where B is "Downtown" and C is "Seattle".
- Best in Downtown (Medium): Largest E2:E11 value where B is "Downtown".
- Value of row 2 (Medium): D2 times E2.
- Look up Vikram Singh (Medium): The Covers for "Vikram Singh" (use a lookup on column A).
- Total value (Hard): Sum of D times E for all rows.
- Share of Downtown (Hard): Share of D2:D11 that is "Downtown", rounded to 3 decimals.
- Rank of row 2 (Hard): Rank of D2 among D2:D11 (largest = 1).
- Above average? (Hard): "Above" if E2 is above the average of E2:E11, else "Below".