Timesheet statement reminder

Timesheet statement reminder

Notifies employees when a timesheet statement reaches its submission deadline or becomes overdue.

How it works

The job walks through every pending or ready timesheet statement in the workspace and emits a lifecycle event when a threshold is reached:

  1. Pending → Ready — when today is on or after the last working day of the period, the statement is marked ready and the employee is notified that the deadline has arrived
  2. Ready → Overdue — when today is on or after the first working day after the period ended and the statement still has not been submitted, the statement is marked overdue and an overdue notification is sent

Both thresholds are evaluated against the employee’s own schedule, so weekends, holidays, and any planned time-off don’t accidentally count as “the deadline day”.

The job uses “>=” rather than “==” on each threshold, so a statement that missed its exact day (job outage, period predates the feature) catches up on the next run. Events have deterministic IDs, so re-runs do not produce duplicate notifications.

When it runs

The job runs automatically and only triggers when at least one pending or ready statement exists for the workspace.

Parameters

This job has no parameters.

Job results

MetricDescription
processedNumber of statements evaluated
ready_emittedNumber of statements promoted to ready (deadline reached)
overdue_emittedNumber of statements promoted to overdue (first working day past end)
skippedStatements not yet at any threshold or already past it (dedup hit)
errorsFailures during processing

Who gets notified

The lifecycle events also carry the employee’s direct manager as a target — this is how the manager’s approvals inbox gets populated on rebuild. Live notifications follow the same routing: the employee sees the deadline/overdue notification; the manager sees the pending approval in their inbox.

Troubleshooting

IssueSolution
No deadline notificationCheck that the statement is in “pending” state and that today is on or after the last working day of the period for that employee
No overdue notificationThe statement must be in “ready” state and today must be on or after the first working day after the period ended. If the employee’s schedule has a long absence right after the period, the overdue day can be pushed back
Manager inbox empty after a rebuildRe-run the Rebuild employee projections job, then re-run this job to re-emit lifecycle events with target manager IDs