Break-Even Point Forecast Report

A planning calculator for someone opening a restaurant. It opens with industry-benchmark cost assumptions and works with nothing else — enter what you know (a signed lease, an insurance quote) over the top. Two things update live: the monthly revenue you need to break even, and which future month your sales forecast crosses that line into profit.

Nothing here reads or changes your imported sales data. Your entries and any "what-if" scenarios are saved in this browser — come back any time.

About this report

This is cost-volume-profit analysis — standard managerial accounting — applied to a restaurant. Split your costs into two buckets: the ones that grow with sales (variable) and the ones that don't (fixed). Each sales dollar first pays its own variable cost; what's left is the contribution margin, and it's what chips away at your fixed cost. Break-even is the monthly sales level at which those contributions have just finished paying the fixed cost off — every dollar past it is operating profit; every dollar short of it is a loss for the month.

Monthly break-even = fixed cost ÷ (1 − variable-cost %). Each cost line can be entered as a flat monthly $ or a % of sales. In the forecast, every variable line holds its % as sales grow; every fixed line stays flat in dollars. Real utilities drift up a bit when you're busier — this model holds Utilities flat, so read that line as an approximation.

Break-even revenue, the contribution margin ratio and the cost structure are all steady-state figures. An optional ramp-up period (in the Sales forecast, below) only reshapes how quickly your projected sales climb to that steady state — it doesn't move the break-even line itself, just the month you're forecast to reach it.

Break-even & forecast

Enter your assumptions below to see your break-even picture.

—
Monthly break-even revenue
—
Daily break-even revenue
—
Contribution margin ratio
—
Month-1 profit / loss
—
Gap: month-1 sales vs. break-even
—
Forecast break-even month
—
Guests / day needed to break even
—
Total fixed cost / month

Break-even chart

Total revenue vs. total cost as sales volume rises. They cross at your break-even revenue; the gap after that point is profit.

Profitability timeline

Your projected monthly sales against the flat break-even line. The marked month is when the forecast crosses into profit. If you set a ramp-up period, the sales line is dashed through the ramp months, then solid once it grows at your steady rate.

Where month 1 stands

Your stabilized sales against the break-even threshold — how far you have to climb, or how much cushion you have, once you're running at the level you actually planned for. With a ramp-up period, your literal month 1 is expected to sit below break-even pace — that's normal and not shown here; see the Month-1 profit/loss and gap tiles above for the ramped opening figure instead.

Cost composition

Where the money goes at your stabilized monthly sales level — fixed vs. variable, biggest lines first.

What moves the needle

How much your monthly break-even revenue shifts if each of the eight cost lines you can most directly control comes in higher or lower than you entered. Dial the ±% swing for any line below — it defaults to 10%, but set Credit Card Processing Fees to 20 and you're looking at a half-point move on a 2.5% line; set Rent to 15 to stress a lease that lands over budget. (The other eight cost lines still recompute everything — they're just kept off this view.)

Your assumptions

Scenario

Save your working numbers, or keep several versions — e.g. duplicate your base case, raise the rent, and compare. The active scenario name appears on every panel and chart above.

Start from your own numbers (optional)

This report opens with typical full-service / casual-dining benchmark figures so it works before you've entered anything. Two ways to replace them with your own:

  1. Pull in your Food & Hourly Labor cost from your POS data. If you import a point-of-sale sales export — and optionally your recipe/ingredient costs — on the Menu Profitability admin page, RestOps works out your actual sales-mix-weighted food cost % and labor cost %. Come back here and click the button below; those two lines switch to your numbers (tagged your data) and everything else stays at benchmark.
  2. Bulk-edit every assumption in a spreadsheet. Use the Download / Import controls further down — handy when you're working from a business plan or an accountant's model rather than typing line by line.
Go to Import sales data Imported sales data detected.

Sales forecast

Enter the sales level you expect once the restaurant is established, not necessarily month one. Most new restaurants open below their eventual run rate and build toward it. Set a ramp-up period and the forecast opens low and climbs in equal monthly steps, reaching your stabilized figure in the month after the ramp ends — e.g. a 6-month ramp is at full stabilized sales in month 7. After that, the monthly sales growth rate takes over. Leave the ramp at 0 for a forecast that starts at the stabilized level from month one. Everything — the timeline, the break-even month, month-1 profit/loss — recomputes as you change any of these.

Fixed costs (per month)

Cost lineEnter asValueNow
Total fixed costs —

Variable costs (rise with sales)

Cost lineEnter asValueNow
Total variable costs —

Save & back up your work

Save scenario keeps your numbers in this browser's storage. It survives closing the tab, quitting the browser, even restarting your computer — but only on this device, in this browser, and only until you clear your browsing data; there's no cross-device sync and nothing is saved on the server. If you edit values and never click Save, closing the tab loses those edits — the note by the button tells you "Saved …" or "Not saved yet." For anything you want to keep safe, hand off, or use on another device or browser, Download CSV writes a portable backup file; Import brings one back in as a new scenario.

  • Download CSV writes the active scenario to a file: its name, the date, your sales forecast (stabilized sales, ramp-up months, growth %, operating days, average check), and every fixed and variable cost line with its entry mode and value.
  • Edit it in Excel or Google Sheets. Keep the section,id,label,mode,value columns. For a percent line, enter the percentage as a whole number (28 for 28%); for a dollar line, enter dollars.
  • You can switch a cost line's mode between dollar and percent — just make its value match the new unit. The forecast rows' units are fixed ($ / % / months / days) — don't change that column. A percent cost value must be above 0%; ramp-up months are rounded down to a whole number, minimum 0.
  • Import a saved file, or paste the text below and click Load from text. It loads as a new scenario named from the file's scenario_name row; your other scenarios are untouched. Any row that breaks the rules above is skipped (kept at its current value) and listed in a note after loading — the rest of the file still loads.
Or paste / view as text

Forecasted P&L (3-year)

Download P&L writes a 36-month, month-by-month profit & loss statement for the active scenario, using the exact cost lines and ramp-up/growth assumptions above — Revenue, COGS and Gross Profit, Labor, Other Operating Expenses, EBITDA, then Depreciation and Interest broken out on their own lines down to a Net Operating Income (pre-tax) bottom line, plus Year 1/2/3 subtotal rows. It's pre-tax: this tool has no way to know your entity structure (sole prop / LLC / S-corp / C-corp) or the rest of your return, so it doesn't guess at a tax figure. It also excludes one-time startup costs (buildout, licenses, opening inventory) — those are capital items, not monthly operating expenses. If you're financing any of this, enter your monthly payment on the Interest / Loan Payments fixed-cost line above (default $0) — it's included in break-even the same way Depreciation already is, and broken back out on its own P&L line. This file is generated fresh each time, not saved anywhere — download it again after changing your assumptions.

Metric definitions

Contribution margin ratio
1 − (variable costs as a % of sales). What a dollar of sales is worth toward fixed cost once its own variable cost is paid. At zero or below, extra sales don't help — there's no break-even point.
Monthly break-even revenue
Fixed cost ÷ contribution margin ratio — the sales figure at which the month's contributions have exactly retired the month's fixed cost.
Daily break-even revenue
Monthly break-even ÷ the days you're actually open (not calendar days).
Stabilized monthly sales
The sales level you expect once the restaurant is established. With no ramp-up period this is also month one; with a ramp-up period the forecast climbs to it over the ramp.
Ramp-up period (months)
How long the opening ramp lasts. Projected sales open at a fraction of stabilized and rise in equal steps of stabilized ÷ (months + 1), reaching the full stabilized level the month after the ramp ends. 0 means the forecast starts at stabilized sales.
Month-1 profit / loss
Your first month's projected sales (after any ramp-up) × contribution margin ratio, minus total fixed cost.
Forecast break-even month
The first month your projected sales line reaches the break-even threshold. "—" means it doesn't within 24 months at the entered ramp-up and growth rates.
±% swing (per line, on "What moves the needle")
How big a change in that cost line the sensitivity chart probes — a relative % of the value you entered, default 10%. On a 2.5% card-fee line, 20% is a half-point move; on $8,500 rent, 15% is about $1,275. Every calculation and the chart update as you change it. This is a what-if lens, not a change to your working numbers — to commit a change, edit the value itself above.

Development notes

This is the one Restaurant Ops report that analyses nothing — it's a forward planning calculator, so it needs no imported data. The math is ordinary cost-volume-profit analysis (contribution margin → break-even sales); the wording and the tool here are my own. The Python engine (app/restaurant/breakeven/engine.py) is the reference implementation and is unit-tested; the browser re-implements the same formulas in static/js/breakeven/breakeven.js for instant recompute, and the two are kept in sync deliberately.

Your working numbers and any named scenarios are stored in this browser (localStorage). There is no server-side save, and nothing on this page ever writes to the database the other three reports use. The optional Food and Hourly Labor pre-fill, when you have sales data loaded, is read from the Labor Cost Report's own weighted calculations.

Tech stack

Python 3, Flask, SQLite, Jinja2, Chart.js + chartjs-plugin-datalabels (CDN), python-dotenv, gunicorn, pytest.