Skip to content

Attendance and Leave ​

This is the daily half of Human Resources: who turned up, when, and who is away. Four screens, and they form a chain — understanding the chain is most of understanding the module.

Clock log → daily attendance → attendance sheet → payroll

StageWhat it is
Clock logA single raw punch. "Someone touched the button at 08:57"
Daily attendanceOne row per person per day, worked out from that day's punches against their shift
Attendance sheetA whole period, frozen and approved — the version you trust
PayrollThe days and hours from the sheet, turned into money

Nothing further down the chain is right if something above it is wrong, which is why Recalculate and the sheet editor exist.

WARNING

All of this needs the HR module switched on, a shift assigned to the person, and the relevant Attendance permissions. See HR Setup.

Where to Find It ​

Click an address to open that screen on your own clinic. The first click asks which clinic you are, then remembers it. Addresses holding a {id} need a specific record, so they are shown but not linked.

ScreenAddress
Attendance/all-attendance
New attendance record/new-attendance
Attendance details/view-attendance/{id}
Clock logs/all-attendance-log
Attendance sheets/all-attendance-sheet
Build a sheet/attendance-sheet
Sheet details/view-attendance-sheet/{id}
Leave requests/all-leave-request
New leave request/new-leave-request

Clock Logs ​

Human Resources → Clock Logs is the raw record — every punch, untouched. It is the screen you open when someone disputes their attendance.

Take my attendance is the button staff press to clock themselves in and out. It needs the clock in/out permission, and it always writes the punch first and asks questions after: the log is saved as a draft, then the system re-reads the whole day and decides what that punch actually was.

StatusMeaning
Sign inThe day's first accepted arrival
Sign outThe accepted departure
RepeatedAn extra punch that duplicates one already counted
InvalidNot usable, with a reason attached

Two invalid reasons, and both are worth recognising on sight:

ReasonWhat actually happened
No shiftThe person has no shift, or the day is not a work day in it
Out of shift boundariesThey punched outside the sign-in / sign-out windows on their shift

TIP

An invalid log is not deleted and is not a fault — it is evidence. Fix the shift, then use Recalculate on the day, and the same punches are re-read against the corrected rules.

Each row shows the employee, the exact time, the status, the invalidity reason, the session it belongs to, and where it came from (self for a staff punch). Filter by employee, date range and status.


Attendance ​

Human Resources → Attendance is one row per person per day, built from the logs.

ColumnWhat it shows
EmployeeWho
DateThe day
Sign in / Sign outFirst accepted arrival, last accepted departure
StatusSee below

Opening a row shows the rest: the shift used that day, the on-duty and off-duty times it was judged against, actual working hours, lateness (minutes past on duty, after grace) and early leave (minutes before off duty). Neither can go negative — arriving early is not negative lateness, it is simply zero.

The six statuses ​

StatusMeaning
PresentSigned in and signed out
AbsentA work day with nothing usable on it
Sign in onlyArrived, never clocked out
Sign out onlyClocked out with no arrival on record
LeaveCovered by an approved leave request
Day offNot a work day on their shift

Sign in only is the everyday one — someone forgets to clock out. Fix it by editing the day, or add the missing punch and Recalculate.

Recalculate ​

Recalculate re-reads the day's punches against the current shift and rewrites the row. Use it after correcting a shift, adding a missed punch, or approving leave that lands on a past day. It is safe to run as often as you like: it derives, it does not accumulate.

Adding a day by hand ​

New attendance writes a day directly — for a clinic that does not use clock-in at all, or to record a day nobody could punch for. Bulk delete is available on the list for clearing a bad import.

Seeing only your own ​

Someone whose role only grants view own attendance sees their own rows and nothing else, and the page titles itself My Attendance. That is the right permission for ordinary staff: they can check themselves without seeing colleagues.


Attendance Sheets ​

Human Resources → Attendance Sheets turns a stretch of daily rows into one reviewed document — the version payroll is based on.

Building one, on the sheet builder:

  1. Pick the employees and the date range.
  2. Generate — the grid fills from the attendance already recorded.
  3. Edit the grid by hand where reality differs: change a status, fix a sign-in time, correct a shift.
  4. Name it and save.

Two rules the system enforces, both of which surprise people the first time:

RuleWhat you see
60 days maximum per sheetThe range is refused if it is longer
No overlapping sheets for the same employeeThe refusal names the employees already covered

The second is the important one: it guarantees no day is ever counted twice in two different sheets, so a month cannot be paid twice.

A sheet is pending until someone approves it, and approving is what marks it settled. From the sheet you can jump to the attendance rows it covers.


Leave Requests ​

Human Resources → Leave Requests — one request per absence.

FieldNotes
Employee *Who is away
Leave type *From the types you defined
Start date / End date *The period
Days countHow many days it consumes
ReasonFree text

The states are simple:

Pending → Approved or Rejected, with Undo putting a decided request back to pending.

Approving or rejecting needs the approve leave requests permission, and the system records who decided and when — visible on the request. Ordinary staff can submit but not approve, which is the whole point of separating the two permissions.

TIP

Approved leave is what makes a day count as Leave rather than Absent. If a past day is still showing Absent after you approved the leave, open that day and Recalculate.


Answering Real Questions ​

QuestionWhere to look
Why is this person marked absent?Clock logs for that day — look for invalid, then check their shift
Someone forgot to clock outEdit the day, or add the punch and Recalculate
How many days did we actually work this month?The approved attendance sheet for the period
Can staff see their own attendance?Yes, with view own attendance — the page becomes My Attendance
Where do these numbers turn into money?Contracts and Payroll