Toast Analytics model

Labor by job

Labor hours and cost per job per day, with each job's cost as a share of the restaurant's net sales that day (Toast's labor cost percentage, by job).

Grain
business date x restaurant x job
Built from
  1. 2
    Raw tables
  2. 2
    Staging
  3. 1
    Core
  4. 1
    Analytics
Reads from Toast Analytics
analytics_laboranalytics_labor_by_job
Ships as
Weld and dbt SQL, open source on GitHub
core.toast_analytics.labor_by_job
1-- core.toast_analytics.labor_by_job
2-- Labor hours and cost per job per day, with each job's cost as a share of the
3-- restaurant's net sales that day (Toast's labor cost percentage, by job).
4-- Grain: business date x restaurant x job.
5--
6-- Net sales come from Toast's daily labor report for the same restaurant and day,
7-- the figure Toast itself divides by. job_cost_pct_of_net_sales on each row sums
8-- across jobs to the restaurant's labor percentage for the day; over a longer
9-- period, sum total_cost and divide by the period's net sales instead.
10
11SELECT
12    j.business_date,
13    j.restaurant_id,
14    j.restaurant_name,
15    j.job_id,
16    j.job_title,
17    j.job_code,
18    j.regular_hours,
19    j.overtime_hours,
20    j.total_hours,
21    j.regular_cost,
22    j.overtime_cost,
23    j.total_cost,
24    l.net_sales                                    AS restaurant_net_sales,
25    SAFE_DIVIDE(j.total_cost, l.net_sales)         AS job_cost_pct_of_net_sales
26FROM {{staging.toast_analytics.labor_by_job}} j
27LEFT JOIN {{staging.toast_analytics.labor}} l USING (restaurant_id, business_date)

This model and the 3 it depends on. Deploy them together; refs like {{staging.…}} resolve to the matching folders in Weld, and the dbt view uses source() and ref().

Notes

How it counts. And where it stops.

Net sales come from Toast's daily labor report for the same restaurant and day, the figure Toast itself divides by. job_cost_pct_of_net_sales on each row sums across jobs to the restaurant's labor percentage for the day; over a longer period, sum total_cost and divide by the period's net sales instead.

Raw tables it reads

  • raw.toast_analytics.analytics_labor
  • raw.toast_analytics.analytics_labor_by_job

Put Toast Analytics in front
of your agents.

Connect Toast Analytics, deploy the models, and ask questions in Claude, Cursor or ChatGPT. Free for 14 days, no credit card.