Payrolls
Compute how many hours of each type employees have worked by crossing their time records against their scheduled hour types.
Module required
Payrolls is an optional module. If it is not activated for your account, the Payrolls menu item will not be visible. Contact MyChronos support or activate it from Modules & Integrations to enable it.
/admin/payrolls answers the question: of the hours this employee clocked, how many were regular hours, how many overtime, how many night hours...?
It does this by crossing each employee's actual time records against the hour types defined in their work schedule, producing a breakdown per employee, per day, and per type.
Key concepts
Before creating a payroll, it helps to understand four terms.
Schedule and shift
The schedule defines when an employee is expected to work. Each shift specifies:
- The time interval (e.g. 08:00–18:00 on Mondays)
- The shift hour type — which type is assigned to time worked inside that window (typically Regular Hours)
- Margins — tolerance minutes added before and after the shift. A 15-minute margin widens the shift window by 15 min at each end
Day day defaults
Defines which hour type applies to time worked outside the shift. Three configurations are possible:
| Mode | Example |
|---|---|
| All day | Any time outside the shift → Overtime |
| Time range | 22:00 to 06:00 → Night Overtime |
| Combination | Night Overtime for the night window + generic Overtime for the rest |
Hour types
Configurable labels such as Regular Hours, Overtime, Night Overtime, etc. Every time segment ends up assigned to an hour type that determines how it is counted in payroll.
Fixed vs flexible schedules
- Fixed: the shift has a specific timetable. The system compares each clocked minute against the shift window.
- Flexible: the shift has no fixed hours, only a total expected amount (e.g. 8 h). The system accumulates the total clocked and classifies anything beyond the expected hours as excess.
Assignment logic (visual summary)
For every minute of clocked time...
Does it fall inside the shift (+ margins)?
├─ YES → Shift hour type (e.g. Regular Hours)
└─ NO → Check the day day defaults
│
├─ Is there a time range covering this minute?
│ └─ YES → Range type (e.g. Night Overtime)
│
├─ Is there an "all day" setting?
│ └─ YES → Generic type (e.g. Overtime)
│
└─ No setting covers this minute → not assigned to any typeExample 1 — Fixed schedule, standard day
Setup: shift 08:00–18:00 · 15-min margins · fallback setting: all day → Overtime
Clocking 09:00 → 17:00 (entirely inside the shift):
| Hour type | Time |
|---|---|
| Regular Hours | 8 h 00 min |
Clocking 07:30 → 12:00 (starts outside the margin):
| Hour type | Time |
|---|---|
| Overtime | 15 min |
| Regular Hours | 4 h 15 min |
Example 2 — Fixed schedule with night range
Setup: shift 08:00–18:00 · 15-min margins · fallback setting: Overtime (all day) + Night Overtime (20:00–23:59)
Clocking 19:30 → 22:00 (crosses the OT → NOT boundary):
| Hour type | Time |
|---|---|
| Overtime | 30 min |
| Night Overtime | 2 h 00 min |
Two clockings: 07:30–12:00 + 19:00–23:30 (full day example):
| Hour type | Time |
|---|---|
| Regular Hours | 4 h 15 min |
| Overtime | 1 h 15 min (15 min morning + 1 h evening) |
| Night Overtime | 3 h 30 min |
| Total | 9 h 00 min |
Example 3 — Flexible schedule
In a flexible schedule, there is no fixed shift window. The system accumulates the total clocked time:
- If total ≤ expected hours → everything is Regular Hours
- If total > expected hours → the first N hours go to RH, the rest go to the day setting
Setup: 8 h daily · fallback setting: Overtime (all day)
Clockings 09:00–13:00 + 14:00–18:00 = 8 h (exactly the expected):
┌────────────────────────────────────────┐
│ Total clocked (8 h) = Expected (8 h) │
│ → All Regular Hours │
└────────────────────────────────────────┘Clocking 08:00–20:00 = 12 h (exceeds expected):
| Hour type | Time |
|---|---|
| Regular Hours | 8 h 00 min |
| Overtime | 4 h 00 min |
Example 4 — Flexible schedule with night range
When a flexible schedule has night ranges configured, those ranges apply only to the excess hours. Hours that fill the expected shift always count as Regular Hours, even if worked at night.
Setup: 8 h daily · fallback setting: OT (all day) + NOT (20:00–23:59)
Clockings 08:00–16:00 + 21:00–23:00 = 10 h total:
| Hour type | Time |
|---|---|
| Regular Hours | 8 h 00 min |
| Night Overtime | 2 h 00 min |
Night ranges classify the excess, not all night time
If an employee works exactly the expected hours (e.g. 8 h), everything is Regular Hours regardless of what time of day they were worked. The night range only applies to time beyond the expected hours.
Example with a cut in the middle of a night range:
⚠️ Both night hours (21:00–23:00) get different types: the first completes the shift (RH), the second is excess (NOT).
FAQ
Does the margin prevent minor early arrivals from generating Overtime? Yes. Time within the margin counts as Regular Hours. With a 15-min margin, arriving at 07:50 when the shift starts at 08:00 gives you 10 min of RH, not OT.
Can a day with no clockings appear in a payroll? Yes, showing 0 hours across all types. The system does not auto-generate absences.
Can I have more than one night range per day? Yes. You can configure as many ranges as needed.
In a flexible schedule, do night hours always count as Night Overtime? No. Only hours that exceed the expected total. If you work exactly 8 h (even at night), everything is Regular Hours.
Creating a payroll
Go to /admin/payrolls and click + Create payroll. Specify the date range and MyChronos will process all time records for that period.
Time records are assigned to one payroll only
Once a payroll is generated for a date range, those records are locked to it. A second payroll for the same dates will return no results — this prevents double-counting. Plan your payroll frequency accordingly.
Reviewing and editing a payroll
After generation, the payroll opens in edit view. For each employee and date you see:
- Time — Hours calculated by the system
- Modified time — If manually adjusted
- Hour type — The assigned type
For each entry you can Modify the value, Add more types, or Change the hour type. Once reviewed, click Mark as validated.
The payroll summary
Each payroll has a Summary button showing totals for all hour types across all employees. From the summary you can:
- Regenerate — Recalculates using current records and schedules (payrolls do not auto-update)
- Edit — Return to edit view
- Export to Excel — Download as a spreadsheet
- Export to PDF — Printable version
Multi-payroll summary report
To combine multiple payrolls into a single report (e.g. a full year), go to /panel/payrolls-summary.