Payroll and working time in cleaning: what the collective agreement actually says

The month-end, from the clock-in to the payslip input — what the agreement governs, where the hand-offs break, and what to check in your own set-up.

Where the month goes

Ask a payroll manager in a cleaning company what the last week of the month looks like and the answer is usually the same. The rota is somewhere. The hours are on paper, or in a photograph of paper. The rates live in a spreadsheet that one person maintains, and the rules that decide which rate applies are in the collective agreement and in that person’s head.

By the time the file leaves for payroll, the hours have been through four or five hands. Rota to paper, paper to spreadsheet, spreadsheet to the rate table, rate table to the payroll file. Every one of those hand-offs is a place the number can change, and none of them leaves a mark when it does.

What a collective agreement governs

A collective agreement does not just set an hourly rate. In cleaning work it typically decides:

  • which hours carry a premium — evenings, nights, Sundays, public holidays — and how large that premium is
  • whether a shift has a minimum length, and what happens to one that comes in short
  • how breaks are treated, and whether they are paid
  • where overtime starts and how it is counted
  • whether travel time between sites counts as working time
  • what a new starter is paid while they are still learning the round

The detail differs by country, by sector and by the agreement your contracts name, so nothing in that list should be read as the rule for your own company. What matters for the software question is that every one of those clauses has a data consequence: a rate that depends on when the hour was worked, and a rule about which hours count at all.

The part that breaks at month-end

A rate table is easy to apply while the hour is still an hour. It is very hard to apply three weeks later, from a line that says “Monday, 06:00–08:15” and does not say whether that Monday was a public holiday. So the awkward shifts get approximated, the premiums get rounded, and the person doing the work knows exactly which lines they were unsure about — right up until the moment the file is sent.

That is not carelessness. It is what a retrospective reconstruction looks like when the underlying record was never written in a form a payroll run can use.

What to check in your own set-up

  • Which hours the agreement makes more expensive, and whether your timesheets record the shift type or only the total.
  • Whether next month’s public holiday is visible in the data by the time payroll sees it.
  • Who owns the mapping between what a worker does and which rate applies — and whether that mapping lives anywhere except in one person’s memory.
  • What happens when the same building is cleaned by two crews at different times of day.

If the answer to any of those is “the person who does the payroll”, the company is carrying the exposure that every cleaning operation carries: it depends on one person remembering, in the last week of the month, under time pressure.

How Moonfoos handles it

Moonfoos treats the rates as part of the contract rather than part of the payroll run. They are configured once per contract — day, evening, weekend, holiday — and applied as the hour is recorded, so a shift that starts at 18:00 arrives already carrying the rate that belongs to it. The timesheets are generated from the on-site clock-ins and tagged by shift type, which is what turns the end of the month from a rebuild into a review.

None of that removes the need to know your own agreement. The rates Moonfoos applies are the ones the company gives it, and matching those to the document is a job for whoever knows it best — usually the person doing the payroll today. This article explains how the record reaches payroll; it is not legal advice, and the agreement and your payroll provider decide the detail.

See it on your sites.

Thirty minutes, live product, no slides. Tell us how you run it today and we will show you the line that changes.