Analytics

Schedule analytics (Business+) and Actual Time analytics (Starter+) in one dashboard.

The Analytics dashboard at /dashboard/analytics has two tabs:

  • Schedule — what you planned. Scheduled-hours KPIs, employee breakdown, coverage, and trend. Business plan and up.
  • Actual Time — what employees actually clocked. Clock-in hour totals, approval rate, per-employee breakdown, and (Pro+) job-coding breakdowns. Starter plan and up.

Schedule tab

Business plan and up. Shows a full-week view of your schedule grid converted to analytics.

KPI cards

  • Total scheduled hours — sum for the current week
  • Active employees — anyone with at least one shift this week
  • Average hours / employee — total ÷ active count
  • Coverage % — how many of the 7 days have at least one shift

Charts

Both charts use interactive line/bar rendering so you can hover for exact values:

  • Scheduled labor by day — bar chart of daily hour totals for the current week
  • 5-week trend — area chart of weekly totals over the last 5 weeks; spot seasonality or a sudden ramp

Employee breakdown table

Sortable by name, hours, or days scheduled. Each row shows tags, total hours, days worked, and an OT flag (over 40 h). Rows with no shifts this week are grouped under an "Unscheduled" toggle.

Hours by Role and Hours by Employment Type

These panels show proportional breakdowns — useful for checking if full-time vs. part-time share is drifting or if one tag group is being disproportionately loaded.

Auto-generated insights

Timely runs a small set of heuristics every time the page loads and surfaces short callouts at the top of the page:

  • Busiest day of the week
  • Week-over-week hours change
  • How many employees are over 40 h
  • How many employees have no shifts

These are deterministic rules, not AI — they're always explainable.

Location filter

Multi-location orgs can scope the entire Schedule tab to a single location via the top-right dropdown. Filter changes reload via the URL — no client-side fetch.


Actual Time tab

Starter plan and up — any org with the Timesheets feature enabled can see this tab.

The Actual Time tab fetches data from your own clock-in records (/api/analytics/timesheets) rather than a third-party integration. This means it works even if you haven't connected Square.

Date range picker

Choose Last 7 days, Last 4 weeks, or Last 12 weeks. The chart and table update in place; no page reload. A Refresh button forces a re-fetch if you're monitoring live activity.

KPI summary

  • Total clocked hours — sum of all completed clock-ins in the range (open entries are excluded)
  • Employees clocked in — distinct employees with at least one completed entry
  • Approval rate — approved entries ÷ total entries, as a percentage
  • Avg hrs / employee — total hours ÷ unique employees

Actual hours by day chart

Bar chart of clock-in hours per calendar day, ordered chronologically. Hovering shows the exact hour total and entry count for that day.

Employee breakdown

Table of all employees with completed entries in the range, sortable by name, actual hours, or approved hours. The Entries column shows approved / total so you can spot employees with a lot of pending approvals at a glance.

Subject and punch-field breakdowns (Pro+)

When your org has subjects (customers, projects) or custom punch fields configured, two additional panels appear:

  • Hours by Subject — horizontal bars showing which subjects (e.g. client jobs) are consuming the most time
  • Hours by [Field Label] — one panel per punch field, broken down by value (e.g. "Hours by Task Type: Cleaning / Setup / Admin")

These breakdowns are only available on the Pro plan and up. Starter orgs see an upgrade callout.

Location filter

Works the same as the Schedule tab — scopes all Actual Time data to the selected location.


What's not here

  • Forecasted labor cost — the dashboard is retrospective. Predicted cost for the upcoming week is on the roadmap.
  • Multi-location rollup — the Actual Time tab can filter to a location but doesn't aggregate across all locations simultaneously. Coming later.
  • Square actual hours inside Actual Time — the Actual Time tab only shows your own clock-in data (time_entries). Square timecard data lives in the Labor dashboard.

Found a typo or something missing? Let us know.