Documentació MyChronos
Features

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:

ModeExample
All dayAny time outside the shift → Overtime
Time range22:00 to 06:00 → Night Overtime
CombinationNight 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 type

Example 1 — Fixed schedule, standard day

Setup: shift 08:00–18:00 · 15-min margins · fallback setting: all day → Overtime

Day zones: Regular Hours inside shift window, Overtime outside

Clocking 09:00 → 17:00 (entirely inside the shift):

Clocking entirely inside shift: all Regular Hours
Hour typeTime
Regular Hours8 h 00 min

Clocking 07:30 → 12:00 (starts outside the margin):

Clocking starting before margin: overtime for early portion, regular hours for rest
Hour typeTime
Overtime15 min
Regular Hours4 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)

Day zones with night range: Regular Hours inside shift, Overtime outside, Night Overtime from 20:00

Clocking 19:30 → 22:00 (crosses the OT → NOT boundary):

Clocking crossing Overtime to Night Overtime boundary
Hour typeTime
Overtime30 min
Night Overtime2 h 00 min

Two clockings: 07:30–12:00 + 19:00–23:30 (full day example):

Hour typeTime
Regular Hours4 h 15 min
Overtime1 h 15 min (15 min morning + 1 h evening)
Night Overtime3 h 30 min
Total9 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):

Flexible schedule: 12h clocking — first 8h Regular Hours, remaining 4h Overtime
Hour typeTime
Regular Hours8 h 00 min
Overtime4 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:

Flexible schedule with night range: 8h Regular Hours + 2h Night Overtime
Hour typeTime
Regular Hours8 h 00 min
Night Overtime2 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:

Three clockings: chronological fill cuts through the 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.

Related pages