Skip to content
Timesheet statement reminder

Timesheet statement reminder

Notifies employees when a timesheet statement reaches its submission deadline, and keeps reminding them — on their working days only — for as long as it stays overdue.

How it works

The job walks through every pending, ready or overdue timesheet statement in the workspace and moves it one step further along its lifecycle:

  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. This threshold follows the employee’s own schedule, so approved full-day time-off at the end of the period pulls the deadline earlier — the employee is told before they leave, not while they are away
  2. Ready → Overdue — the calendar day after the period ends, regardless of the employee’s schedule. Time-off straight after the period end does not push this back: the manager’s missing-submission entry depends on it, and it has to appear on a predictable day
  3. Overdue → reminded, every working day — while the statement stays overdue, the employee’s reminder is brought back to the top of their notifications and one email is sent on each of their working days. Weekends, public holidays and approved full-day time-off are skipped, so nobody is chased while away. The first reminder uses the general “your timesheet is overdue” wording; every reminder after that names the manager waiting for it

Reminders stop as soon as the employee submits: the recurring reminder is dismissed and the manager’s entry becomes a normal approval.

An ongoing absence with no end date — an open sick period, for example — does not move the deadline. Such an absence is only known to cover days up to today, so the days after it still count as working days and the deadline stays on the period’s real last working 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.

Example: time-off across the period end

A monthly period covering 1–31 August, with approved time-off from 24 August to 7 September:

DayWhat happens
Fri 21 AugLast working day before the time-off, so the statement becomes Ready and the employee gets the deadline notification — while still at work
Tue 1 SepThe day after the period ended, so the statement becomes Overdue and the missing submission appears in the manager’s approvals inbox
1–7 SepThe employee gets no reminders (all days are time-off). The manager’s daily digest lists the missing submission from 1 September onwards
Tue 8 SepFirst working day back: the employee’s overdue reminder and email start, and repeat every working day until the timesheet is submitted

When it runs

The job runs automatically and only triggers when at least one pending, ready or overdue 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 (day after the period ended)
remindedNumber of overdue reminders sent this run (one per overdue statement whose employee works today)
skippedStatements not yet at any threshold, already past it (dedup hit), or whose employee is not working today
errorsFailures during processing

Who gets notified

  • The employee gets the deadline notification when the period becomes ready, then one overdue reminder per working day until they submit. They are never reminded on a day off.
  • The manager sees the missing submission in Approvals from the day after the period ended, and in their daily Manager digest. This is not gated on anyone’s calendar — a manager will see (and be emailed about) a missing timesheet for an employee who is still on holiday, and will keep seeing it until the employee returns and submits.
  • A manager who is away should set up an approval delegation: their digest is held while the delegation is active, their delegates receive it instead, and a catch-up summary arrives on the manager’s first working day back.

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.

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 the period must have ended. Note the promotion happens the day after the period ends — it is never delayed by time-off
Employee on leave received no reminderExpected. Overdue reminders are only sent on the employee’s working days; they resume on their first working day back
Manager chased about an employee who is awayExpected — the missing submission is raised the day after the period ends regardless of the employee’s time-off. The employee is reminded when they return
Manager receiving digests while on holidaySet up an approval delegation for the absence; digests then go to the delegates and the manager gets a catch-up summary on their return
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