1. Your two exports
Sales: a date (or date-time), an hour if the date has no time, and net sales; a per-check report works too, it is grouped by hour. Time entries: clock-in and clock-out date-times with a rate or pay column, or a date and hours worked. Column names are matched by alias and are unverified against real Toast, Square, Clover or 7shifts exports: if a file is not read, the page says which rows were skipped and why. Dates are read month/day/year unless the first number is above 12. Use the same dates in both files.
2. Your assumptions
Choose both files or paste them, then click Analyze labor.
Result
By daypart
| Daypart | Net sales | Labor hours | Labor cost | Labor % | Sales / labor hr | Trimmable |
|---|
By weekday
| Day | Days in data | Net sales | Labor hours | Labor cost | Labor % | Sales / labor hr | Trimmable |
|---|
Slots furthest over target
| Slot | Avg sales | Avg labor hours | Labor % | Trimmable |
|---|
The model, and what it leaves out
- Labor cost: each shift's pay (the pay column, else rate times hours, else your default wage) plus the payroll burden you type, spread over the clock hours the shift covers in proportion to the minutes worked.
- Labor %: labor cost divided by net sales for the same slot. Sales per labor hour: net sales divided by hours worked.
- Business day: hours before the day-start hour count to the previous day's weekday, so a late-night sale is not credited to the wrong day.
- Trimmable: for each weekday-and-hour slot above your target, the excess dollars, capped at the labor above your minimum crew. It is an upper-bound screen of your past schedule, not a schedule.
- Reconciles. Daypart rows add to the totals at the top, except labor hours that had a date but no clock times, which appear in the weekday table and the totals only; the page says when that applies.
- Not modelled: overtime premiums beyond what the pay column shows, tips and tip credits, benefits, salaried labor unless you leave it out or include it in pay, prep and side work, service standards, forecast sales, and whether sales would have held with fewer staff.
- Unverified: column names are matched by alias and no real Toast, Square, Clover or 7shifts export was available when this was written.
Common questions
How do I calculate labor cost percentage by daypart from a POS report?
Export sales by hour (or a per-check sales report) and the time-entry report (clock-in, clock-out, pay rate) for two to four weeks. The tool spreads each shift across the clock hours it covers, adds payroll burden, and divides labor cost by net sales for each daypart, weekday and hour. Labor % is labor cost divided by net sales.
What is a good restaurant labor cost percentage?
It depends on the concept. Full-service restaurants are often quoted around 25% to 35% of sales including payroll burden, and quick-service somewhat lower, but your own target is the one that matters. Type it in and the tool shows where you sit against it, by daypart and by hour.
What is sales per labor hour?
Net sales divided by hours worked. It shows how much each staffed hour is producing, and it moves opposite to labor %. It is most useful comparing hours of the same week, since a slow hour will always look worse than a rush.
How is the trimmable labor estimate worked out?
For each weekday-and-hour slot where labor is above your target percentage, the tool takes the excess dollars, but never more than the labor above your minimum crew. It ignores prep, side work, service standards and whether sales would have held with fewer people, so treat it as a screen of your past schedule, not a schedule.
What is payroll burden and why is it a placeholder?
Burden is payroll tax, workers compensation and similar costs added on top of wages. The default of 12% is a placeholder, not a measurement of your business: type your own. Tips, benefits and salaried managers are not modelled unless you put them in the pay column.
Which file formats and column names does it read?
Comma, semicolon or tab separated text, including UTF-16 files. Sales need a date or date-time column, an hour column if the date has no time, and net sales. Time entries need clock-in and clock-out date-times and a rate or pay column, or a date and hours. Columns are matched by alias and no real Toast, Square, Clover or 7shifts export was available when this was written; a file that is not read says which rows were skipped and why.
Is my sales and payroll data uploaded?
No. Both files are read in this browser tab and never leave your device. There are no accounts, cookies or analytics vendors.