Skip to main content

Attendance Lifecycle

Every attendance record in the system goes through a defined journey from creation all the way to payment. This page walks you through the complete lifecycle.

How Attendance Records Are Created

There are three ways an attendance record can come into existence:

1. Worker Self-Verification (The Standard Flow)

This is the most common path. A worker checks in and out at the site, which creates verification submissions. After both levels of the dual-approval process (manager first, then admin), the system automatically creates the attendance record. The record gets created as soon as the first submission (either arrival or departure) is approved by the admin -- at that point it starts out as a checked-in record that is incomplete. It becomes fully verified when the other half of the submission is also approved.

2. Manager Direct Entry

A manager can directly mark attendance for workers on their projects, but only for today -- managers are not allowed to create backdated entries. The record starts out in a pending review state and still needs the admin to verify it before it counts toward payment. Managers have to include a photo when they do this.

3. Admin Direct Entry

An admin can create attendance records for any worker on any project, including backdated entries (going back up to 30 days). These records also start in a pending review state. The system keeps a record of who created the entry and what role they hold, for audit purposes.

Attendance Statuses

StatusMeaning
Checked InThe worker has checked in (arrival recorded through an approved verification) but their departure has not been approved yet. Marked as incomplete.
Pending ReviewAttendance was created by a manager or admin, and it is waiting for admin verification.
Pending Backdate ApprovalA backdated entry that is waiting for explicit admin approval.
VerifiedFully approved and counts toward payment.
RejectedThe admin turned it down (with a reason).
AbsentThe worker did not show up that day (no attendance recorded).
Project StoppedThe project had a declared stoppage on this day.

Status Transitions

Here is how records move between statuses:

  • A record starts as absent (no times recorded)
  • When the first time is approved through verification, it moves to checked in
  • Once both times are present (or it was a direct entry by a manager or admin), it goes to pending review
  • From pending review, the admin either verifies it or rejects it
  • A backdated entry sitting in the pending backdate approval state gets either verified or rejected by the admin
  • A project stopped record is created when a stoppage gets approved

Cross-Project Rule

A worker cannot have attendance on more than one project for the same date. The system enforces this at every stage -- worker submission, manager approval, admin approval, and direct entry. If there is a conflict, the action gets blocked.

Record Fields

Each attendance record captures:

  • Worker and Project -- who and where
  • Date -- the calendar date of work
  • Arrival Time -- when the worker started
  • Departure Time -- when the worker left
  • Photos -- optional arrival and departure photos for evidence
  • Verified NIC -- the NIC used during self-verification
  • Total Hours -- calculated automatically from arrival and departure (with lunch deduction rules applied)
  • Regular Hours -- hours paid at the regular rate
  • Overtime Hours -- hours paid at the overtime rate
  • Total Hours Override -- the admin can manually set total hours, which overrides the automatic calculation
  • Below Minimum Hours Flag -- gets set when total hours fall below 4
  • Special Payment -- if hours are below the minimum, a special payment can be requested (with an amount, reason, and approval status)
  • Notes -- freeform text for any additional context
  • Reviewed By / At -- who approved it and when
  • Rejection Reason -- if it was rejected, why
  • Stoppage Link -- if the project was stopped, this links to the stoppage record with an optional payment override

Incomplete Attendance

An attendance record gets marked as incomplete if:

  • Only the arrival was recorded (no departure)
  • Only the departure was recorded (no arrival)

Incomplete records sit in the checked-in state and are flagged so someone can follow up. They get resolved when:

  • The other half of the verification submission is approved (filling in the missing time)
  • A manager or admin manually adds the missing time
  • An admin sets a manual hours override

Backdated Entries

If an attendance record is created for a date in the past (not today), it automatically gets flagged as backdated. Backdated entries going back up to 30 days are allowed; anything older than that gets rejected.

Only admins can create backdated entries directly -- managers are limited to today's date.

See Backdated Entries for the full details.

Audit Trail

Every attendance record keeps track of:

  • Created By -- which user created it (blank for worker self-verification)
  • Created By Role -- admin, manager, or system
  • Reviewed By -- who approved it
  • Reviewed At -- when it was approved
  • Applied Rates -- the exact pay rates (daily advance, regular rate, overtime rate) that were locked in at the time of payment calculation, so there is a permanent record of what rates were used