Blog · Forecast and pipeline · Hospitality
Restaurant sales forecasting starts with comparable trading days, expected covers and average check. Work from POS exports to a location and service-period forecast, then reconcile actual sales to the assumptions.
Restaurant sales forecasting multiplies expected covers by average check for each trading day, location and service period. Start with comparable POS history, record the reason for each adjustment and preserve the forecast before service begins. A forecast becomes useful when the next review can explain both the sales difference and the operating assumption behind it.
Forecast net sales = Expected covers × Expected net sales per cover
Use one consistent sales basis after discounts and refunds. Separate sales tax, tips, gift-card funding and other amounts that do not belong in the operating sales measure. Reconcile that measure with finance before forecasting it; the restaurant P&L analysis provides the broader financial context.
For dine-in, use covers if guest counts are reliable. For takeout or delivery, order counts may be the useful volume measure. Keep channels separate when the units differ. Average check must use the same sales scope and volume denominator as its forecast row.
Export business date, location, service period, channel, covers or orders, net sales and adjustment labels. Preserve the restaurant's business-day convention for service that continues past midnight.
A fictional US restaurant group forecasts a Wednesday across two locations. The starting point is two earlier comparable Wednesdays for lunch and dinner. This short history keeps the example inspectable; a live review should also examine variability and recurring seasonal patterns.
| Location | Service | Earlier Wednesday covers | Later Wednesday covers | Baseline covers |
|---|---|---|---|---|
| Downtown | Lunch | 96 | 104 | 100 |
| Downtown | Dinner | 152 | 168 | 160 |
| Riverside | Lunch | 76 | 84 | 80 |
| Riverside | Dinner | 136 | 144 | 140 |
Each baseline is the arithmetic mean of its two observations. In a normalized history sheet, use A for business date, B for location, C for service, D for weekday, E for covers, F for net sales and G for a comparable flag. With forecast location in A2 and service in B2, this Microsoft Excel formula selects comparable Wednesdays:
=AVERAGEIFS(History!$E$2:$E$1000,History!$B$2:$B$1000,A2,History!$C$2:$C$1000,B2,History!$D$2:$D$1000,"Wednesday",History!$G$2:$G$1000,"Yes")
Microsoft documents AVERAGEIFS as averaging cells that meet multiple criteria. The comparable flag should already reflect channel, opening hours, event exclusions and the date window you chose. Covirage is not affiliated with Microsoft.
Calendar composition matters: the Census Bureau explains trading-day effects as effects from different numbers of weekdays in a period, and separately discusses moving holidays. For an operating forecast, label these differences in your own trading calendar before comparing periods.
Management expects a local event to lift Downtown covers and a nearby office reopening to lift Riverside dinner. Average checks come from the planned menu and sales mix. These are supplied assumptions, not conclusions proved by historical averages.
Place this forecast table in A:G, rows 2 through 5:
| Location | Service | Baseline covers | Cover adjustment | Forecast covers | Forecast average check (USD) | Forecast sales (USD) |
|---|---|---|---|---|---|---|
| Downtown | Lunch | 100 | 10.0% | 110 | 24.00 | 2,640 |
| Downtown | Dinner | 160 | 12.5% | 180 | 38.00 | 6,840 |
| Riverside | Lunch | 80 | 0.0% | 80 | 22.00 | 1,760 |
| Riverside | Dinner | 140 | 10.0% | 154 | 35.00 | 5,390 |
| Total | 480 | 524 | 31.74 | 16,630 |
Enter these formulas in E2 and G2 respectively, then fill down:
=C2*(1+D2)
=E2*F2
The forecast total is =SUM(G2:G5). The total average check is =SUM(G2:G5)/SUM(E2:E5), not an average of the four checks. Dollars are shown to the nearest dollar, average checks to two decimals and the final variance percentage to one decimal; calculations retain full precision.
Without cover adjustments, those same checks produce $15,140. The supplied cover changes add $1,490 to reach $16,630. If an adjustment comes from an offer, keep the discount's effect on average check explicit; sales promotion forecasting covers the separate baseline and lift review.
After service, Downtown reports 105 lunch covers and 190 dinner covers. Riverside reports 76 and 150. Add actual covers in I, actual average check in J and actual sales in K, using the same row order:
| Location and service | Actual covers | Actual average check (USD) | Actual sales (USD) | Cover effect (USD) | Check effect (USD) | Sales variance (USD) |
|---|---|---|---|---|---|---|
| Downtown lunch | 105 | 25.00 | 2,625 | -120 | 105 | -15 |
| Downtown dinner | 190 | 37.00 | 7,030 | 380 | -190 | 190 |
| Riverside lunch | 76 | 23.00 | 1,748 | -88 | 76 | -12 |
| Riverside dinner | 150 | 36.00 | 5,400 | -140 | 150 | 10 |
| Total | 521 | 32.25 | 16,803 | 32 | 141 | 173 |
Enter these formulas in K2, L2 and M2 respectively, then fill down:
=I2*J2
=(I2-E2)*F2
=I2*(J2-F2)
The check is $16,630 + $32 + $141 = $16,803. Actual sales exceed forecast by $173, or 1.0%, even though covers are lower. The mix of services and realized checks explains why the cover total alone gives an incomplete answer. Tie $16,803 to the POS net-sales report, then to the matching ledger period with any timing adjustments listed.
Keep the review at this row level before rolling it into sales forecasting reports. Also distinguish observed sales from demand you could not serve: forecasting lost sales addresses that separate question.
Bring a sample of your own POS export and dated sales forecast by location, day and service. Covirage maps the columns, and its tools compute and check covers, average checks and forecast differences; the external AI model explains the result with every figure traced to its rows. Create a free Covirage account in about a minute, then set up your business and bring your file.
See Covirage for hospitality teams for the industry context.
Build the operating forecast by trading day and service period, then add those rows into weeks and months. A monthly total can hide a busy dinner service and a quiet lunch service that require different staffing and preparation decisions.
Use enough comparable days to see the normal range for each location and service. Retain holiday, event and closure labels rather than treating all dates as equivalent. A short history can support a starting assumption, but it warrants a wider planning range and frequent review.
No. Covers usually count guests, while orders count transactions. One takeout order may serve several people. Pick the unit used by each channel, calculate its matching average check, and combine the resulting sales dollars rather than adding incompatible volume measures.