Sign in

Blog · Forecast and pipeline · Hospitality

Restaurant sales forecasting by day and location

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.

The short answerRestaurant sales forecasting estimates net sales by multiplying expected covers or orders by average check for each location, trading day and service period. Start with comparable POS history, adjust volume and check assumptions explicitly, and save the forecast before trading. Compare actual sales with that version and separate cover changes from check changes.

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.

Define the sales and volume you will forecast

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.

Choose comparable days before averaging

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.

Add explicit operating assumptions

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.

Reconcile the POS actuals

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.

Where it goes wrong

  • Counting closed services as ordinary zero days. Tag closures before selecting comparable history.
  • Mixing guests and transactions. Pair each volume unit with its matching average check.
  • Using bank deposits as sales. Settlement timing, tips and fees can obscure trading performance.
  • Adding event lift twice. An event already present in comparable history is not automatically incremental again.

Review your restaurant forecast in Covirage

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.

Questions people ask

Should a restaurant forecast sales daily or monthly?

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.

How much history is needed for restaurant forecasting?

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.

Are covers and orders interchangeable?

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.