What is owed on the last day, and how to be sure of it
Every other number this system produces is provisional. This one is final, it is paid, and it is checked by somebody who has just stopped being busy. It is worth getting the design right for this case alone.
Key takeaways
Accrue the final part-period. Leaving on the 9th still earns the hours worked to the 9th.
Carried hours are owed too. They are accrued and untaken like any other.
Overtaken leave can only be recovered if a written term says so.
Value the hours on a 52-week average of weeks with pay, looking back up to 104.
Attach the working. The number without it is an assertion.
The leaving calculation
Fig 1. Five steps and one branch. The branch is the one businesses assume goes their way and usually does not.
Security & identity
Management
Analytics
Front-end & mobile
The final part-period
Somebody who leaves on the ninth of the month has worked whatever they worked between the first and the ninth, and that accrues like any other hours. It is a small number and it is omitted constantly, because the accrual job runs on closed pay periods and the last period never closes normally.
So the leaving event closes it early rather than skipping it. This matters more than the amount, because a leaver who spots that their final fortnight accrued nothing has a reason to check everything else, and everything else is four years long.
One leaver, one calculation
Fig 2. The whole leaving calculation as one line. None of the arithmetic is hard; all of it has to be attributable.
Management
Analytics
People
The rate is its own calculation
The hours are only half the answer. What they are worth is a week’s pay, and for somebody whose pay varies that means an average over the last 52 weeks in which they were actually paid something, ignoring the weeks with no pay and looking back as far as 104 weeks to find 52 that count.
Skipping the unpaid weeks is the part that gets missed, and it always goes the same way. A bank worker who did nothing for eleven weeks over the summer has those weeks excluded from the average, not counted as zeroes. Counting them as zeroes drags the rate down for exactly the workers whose pay is most variable.
The four-week pot is valued at normal remuneration, which brings in regular overtime and commission, and the remainder at basic contractual pay. The system already knows which pot each remaining hour sits in, from part two, which is why that split was carried in the data rather than reconstructed here under time pressure.
The sentence the evidence has to be able to write
This worker’s leave year opened on 12 November, under the statutory default.
They worked 1,417 recorded hours in it, from 34 closed pay periods and one part-period.
That accrued 171.0 hours at 12.07%, rounded up in each period.
They took 104 hours across five bookings, on these dates.
67 hours remained, valued at 12.94 an hour from a 52-week reference period.
The payment of 866.98 was made in the final payroll run on this date.
Where this ends
The system does not stop a business getting holiday wrong, because most of the ways of getting it wrong are decisions people make. What it removes is the category of error where nobody decided anything — the accrual that ran for four years while the only record of it was a spreadsheet column, the carried hours that were zeroed because zeroing was the default, the final fortnight that accrued nothing because the job only ran on closed periods.
It also makes the honest answer the cheap one, which is the pattern worth copying out of this design more than any of the arithmetic. Sending every worker their balance each month is a small feature that happens to close the open-ended carry-over route in part four. The compliance outcome falls out of the operational one.
The next post prices it and the one after gives the service names, the tables and the IAM. The interesting thing about the cost is that the expensive step runs once per contract rather than once per shift, so a business that doubles its rota does not double its bill.