The Labor dashboard at /dashboard/labor shows the gap between scheduled hours (what you planned in Timely) and actual hours (what employees actually worked). It's where you spot cost overruns before payroll runs.
Business plan and up.
Actual hours source
The dashboard automatically picks the best available source for actual hours:
| Square connected? | Actual hours from |
|---|---|
| Yes | Square POS timecards (pulled via sync) |
| No | Timely clock-in records (time_entries) |
A banner at the top of the page tells you which source is active:
- "Sync Timecards" banner — Square is connected; use the button to pull the latest data
- "Showing actual hours from employee clock-ins" banner — Square is not connected, but employees have been punching in via Timely (SMS link or kiosk). Data is live — no manual sync required.
- "Showing scheduled hours and estimated labor costs" banner — no actual data yet; costs are estimated from scheduled hours × employee wage rates
If you have employees punching in through Timely's clock-in flows (see Clock-in), the Labor dashboard will show real actual hours even without Square.
Setup (Square)
- Connect Square — Settings → Integrations → Square → Connect. See Square integration.
- Map your employees — Square team members ↔ Timely employees.
- Sync timecards — use the Sync button on the Labor dashboard, or let the automatic weekly sync run (Monday morning for the prior week).
What's on the dashboard
KPI cards across the top:
- Scheduled hours — what you planned in Timely
- Actual hours — what employees actually clocked
- Variance — actual minus scheduled (positive = over, negative = under)
- Total labor cost — actual hours × pay rate (or estimated from schedule when no actuals)
- Average hourly rate — total cost ÷ actual hours
- Overtime hours — actual hours over the 40h/week threshold
Below: a daily breakdown chart and a per-employee variance table.
Reading the variance
- Positive (over-scheduled) — scheduled 8h, actual 10h. Common cause: unexpected coverage need, or a shift that ran long.
- Negative (under-scheduled) — scheduled 8h, actual 6h. Common cause: employee left early, came in late, or called out without the schedule being updated.
A consistent positive variance for one employee usually means your schedule template is too lean. Consistent negatives suggest attendance or reliability issues.
OT detection
The dashboard surfaces overtime separately because it's the most expensive labor line. Employees over 40 hours in the week are flagged with an "OT" badge in the employee table.
Cost per employee
Each employee row shows:
- Scheduled hours
- Actual hours
- Variance (Δ hours)
- Hourly rate (from the employee record)
- Total cost
Sortable by any column.
Week navigation
Use the ← / → arrows to navigate to any prior week. You can also use the ?weekStart=yyyy-MM-dd URL parameter to jump directly to a specific week.
Why are some actual hours missing?
When using Square:
- Employee not mapped to a Square team member
- Timecard sync hasn't run yet (runs Monday morning; mid-week checks show partial data)
- Employee clocked in at a different Square location than they're mapped to in Timely
When using Timely clock-in:
- Employee hasn't clocked out yet — open entries are excluded until completed
- Employee used a clock-in method not yet set up (see Clock-in)
Export
Top-right → Export CSV dumps the per-employee breakdown for the visible week.
What's not here
- Tip income — Square tip data is not currently surfaced in the Labor dashboard.
- Multi-location aggregation — pick one location at a time; a full roll-up is on the roadmap.
- Forecasting — the dashboard is retrospective. Predicted labor cost for the upcoming week is on the roadmap.
- Break-time deduction for own clock-in data — when using Timely clock-in as the fallback (no Square), hours are gross (clock-out minus clock-in). Break deduction is applied automatically when using Square timecards.