---
title: "Attendance basis: rostered vs fixed hours"
description: "Whether a person's expected day comes from the published roster or their own fixed pattern — and what each one expects."
---

> Documentation Index
> Fetch the complete documentation index at: https://peoplematter.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Attendance basis: rostered vs fixed hours

Every assignment (one person, at one branch, in one position) carries an
**attendance basis**: **Rostered** or **Fixed hours**. This one field decides something
specific — how [attendance](/en/docs/time/)'s "expected" count is worked out, and where
[lateness](/en/docs/lateness/) starts counting from — not which branch someone belongs
to, and not whether they can take leave.

## Rostered

For a rostered person, expected comes from the **published** roster only: a shift on the
roster that day means expected; a shift on a draft roster never counts; a branch with no
roster covering that day at all means not expected either. Whichever shift they actually
land on that day sets the expected start time and that shift's own flex window.

Covering a shift still counts, whatever the person's usual basis: someone normally marked
fixed-hours who covers a Saturday shift at some branch is treated exactly like the shift
says for that one day — the roster decides, regardless of their everyday basis. The other
direction also holds: a rostered person who punches in on a day their branch's roster has
nothing scheduled for them gets an **Off-roster** flag (the punch needs a reason, and a
manager sees it in **Timesheets**) — telling the manager that this arrival was not planned
for.

## Fixed hours

For a fixed-hours person, expected does not look at any roster — it looks at their own
**work pattern**: which weekdays count as working days, a start time, an end time, and a
flex window. These four fields live on the assignment form, alongside editing that
person's position and branch; an org can also set a **default work pattern** on Company ▸
Settings ▸ **Timekeeping** (under Policy in the settings list), which any new fixed-hours assignment starts from unless it
sets its own — changing the default only affects assignments created AFTER the change,
never the people who already have one.

What the flex window means: a 08:00 start with a 120-minute flex means arriving any time
from 08:00 to 10:00 counts as on time — though that alone is not the whole lateness
picture; see [how lateness is decided](/en/docs/lateness/) for the org's grace period
stacked on top. Days outside the pattern's working weekdays, and holidays on the org
calendar, are never expected — even on a weekday the pattern would otherwise count.

## Which one to pick

Before an org buys the scheduling module, every assignment can only be fixed hours, and
the assignment form does not even show this field as a choice — there is no roster to be
on, so "rostered" would not be a real option, just one that looks selectable and is always
empty. Once scheduling is bought, a new assignment defaults to **Rostered**, and whoever
creates it decides the person's real basis at that moment. A branch with no roster of its
own yet is better left fixed-hours until its first roster exists, then switched — the
switch is one field, either direction. Existing assignments never change basis just
because the org later buys scheduling; they stay fixed-hours, which is the true fact about
how those people have always worked.

There is no rule the system can apply automatically for who fits which basis: a branch
head nurse who works at the very branch that has a roster, but whose OWN position is never
actually assigned a shift on it, would get an Off-roster flag every single day if marked
rostered — fixed hours with her own pattern is the honest read. The
positions that genuinely receive shifts — doctors, nurses, pharmacists, assistants — are
exactly where rostered makes expected reflect what the roster actually scheduled.

Source: https://peoplematter.app/en/docs/attendance-basis/index.mdx
