Skip to content

Monitor timesheet compliance

Pro plan Owner or Admin

Timesheet compliance answers one question every week: who has logged the hours they were expected to log? Once enforcement is enabled, a compliance dashboard tracks each person’s status and puts a price tag on the gap, and a background worker sends the reminders so you do not have to.

  1. Open Organization Settings, go to the Configuration tab, then the Timesheets section.

  2. Find the Compliance enforcement panel and check the Prerequisites bar. Enforcement requires at least one active rate card, because the cost-at-risk figure is priced from rate cards. If none exist, the save is rejected with a prompt to set one up first.

  3. Choose where expected hours come from: Per-user capacity (each person’s weekly availability from the Capacity Planner) or Fixed (one number for everyone).

  4. Set the Compliance threshold, the percentage of expected hours someone must log to count as compliant. The default is 95%.

  5. Set the Submission deadline: a day of week, an hour, and a timezone (the default is Friday at 5:00 pm). Everyone sees the same wall-clock deadline.

  6. Pick your Reminders, then flip the panel’s toggle on and select Save changes.

Two automated reminders are available, both on by default:

  • Per-user nudge: sent the hour before the deadline to everyone who is not yet compliant, with their logged-versus-expected count.
  • Admin digest: a weekly summary sent Monday at 9 am (org local time) to Owners and Admins, listing non-compliant members and the total cost at risk.

Roles listed under Exempt from compliance (Guests by default) are left out of both the stats and the nudges.

The dashboard lives on the Timesheet page, under the Approvals tab, in the Compliance section. It is visible to whoever can approve timesheets. For each week you get:

  • Summary cards: Compliance rate, Hours expected, Hours logged, and Cost at risk.
  • A per-person table with a status badge per row: Compliant (at or above the threshold), Partial (logged something, but below it), Missing (logged nothing), or Exempt.
  • Filter chips per status, a week navigator, and an All hours / Billable only view toggle.
  • A per-row link to view that person’s compliance event history in the audit log.

Cost at risk multiplies each person’s missing hours by their rate-card rate, so the gap reads in currency, not just hours. If a person has no applicable rate card, the figure is flagged as using a fallback rate.

  1. Start with reminders-only enforcement, then tighten. Turn on compliance with reminders first; let the org build the habit before adding hard-lock or escalation. The shift in behavior is what you’re after, not the enforcement.
  2. Set the threshold low enough to feel achievable. 95% sounds nice but creates a lot of “almost compliant” people. 90% or even 85% in the first quarter; tighten as the team adapts.
  3. Account for the cost-at-risk total-hours formula. Cost-at-risk prices the TOTAL-hours gap (logged vs expected), not a billable-only gap. The “Billable only” view toggle filters the displayed hours but doesn’t change the cost formula. Tell finance.
  4. Designate Friday at 5pm (or your equivalent end-of-week marker) as the canonical deadline. Cross-team consistency matters more than per-team preference. Org-wide same deadline = org-wide same expectation.
  5. Review compliance reports monthly with team leads, not weekly with everyone. Weekly reports are nudges (and the system handles that); monthly reports are trends. Use the trend conversation to address structural issues, not individual non-compliance.
  • Save rejected with “Rate cards required”. Compliance enforcement needs at least one active rate card to price the cost-at-risk number. Set up a rate card first. See Configure rate cards.
  • Cost-at-risk number looks too high. The formula prices the TOTAL gap, not the billable gap. A person 5 hours short in a non-billable project still shows in the cost-at-risk total at their cost rate.
  • A person is consistently Missing despite logging time. Their entries are likely draft (not submitted). Compliance counts only approved or submitted entries. If approval is off, all entries count; if on, only pending+approved.
  • The cost-at-risk number uses a fallback rate. A person without a per-user or per-role rate card falls back to org default or the env-configured default. Set a per-user rate card to fix the number.
  • Reminders aren’t sending. Three causes: (a) toggle off in settings; (b) the user’s notification preferences disable timesheet reminders; (c) the deadline already passed (reminders fire the hour before, not after).
  • Compliance + Approvals. Approvals workflow determines what counts as “logged”, approved or submitted; compliance reads from there. See Approve timesheets.
  • Compliance + Expected hours overrides. Per- user, per-role, per-team overrides take precedence over the global expected-hours setting. See Set expected hours overrides.
  • Compliance + Hard lock. Pro tier is reminders-only. Enterprise adds hard-lock and escalation. See Enforce timesheets with a hard lock and Run escalation chains.
  • Compliance + Audit logs. Every compliance event (notification, missed deadline, escalation step) goes to the audit log. See Read audit logs.
ToolMapping
Microsoft Project Online ComplianceSimilar timesheet status pattern
ServiceNow Time Card complianceDirect concept
SpreadsheetOnplana replaces manual chasing with auto-reminders
Tempo for JiraDirect
HarvestLacks formal compliance enforcement; closer to “did anyone log” reports

Who can change these settings? By default Owners and Admins. The permission is configurable in the permissions matrix, so an org can widen or tighten it.

Does enabling compliance block anyone from working? Not at this level. Pro-tier enforcement is visibility and reminders only. Blocking modes are an Enterprise feature, covered in Enforce timesheets with a hard lock.

Why does the dashboard show someone as Compliant with zero expected hours? An expected value of zero means no requirement for that week, so the person cannot be out of compliance.

Does compliance work for hourly contractors with no fixed expected hours? Set their expected hours via a per-user override (often 0 or a low floor). The dashboard then reflects what’s expected.

Can compliance pause for vacation weeks? Yes via expected hours overrides set to 0 for that person/week, or via the grant compliance exceptions flow. See Grant compliance exceptions.

Does the cost-at-risk include both billable and non-billable gaps? Yes, the formula uses total expected hours, not billable-only. The Billable Only view toggle filters the displayed columns but the cost calculation remains total-hours-based.