Shift swaps share the same approval engine but have their own eligibility layer on top, see shift swaps →.
Platform · Leave and duty
One approval engine, five request types, nothing waits on a memory of who signs off
Leave, duty, work requests, off requests and shift extensions all go through the same generic approval machinery. Configure the chain once per leave type or per unit, and every request that matches it is checked against the organisation as it exists right now, not as it existed when the request was filed.
The mechanism
A request is Pending until every step accepts it, Rejected the moment one does not
Under the hood, leave, duty, swap, work requests and shift extensions are all the same concept: an ordered list of approval steps. Each step names one or more "eligible approver" mappings, and the step is satisfied the moment any matching person acts on it.
Where the chain lives
Leave and duty: configured on the leave/duty type itself, as two independent chains, Operational and Non-operational, selected automatically by whether the requesting unit is flagged non-operational.
Who can act on a step
A mapping names a membership scope (the requester, their primary unit, a secondary unit, or the whole organisation), optionally a specific role, and optionally the unit's Primary Head of Unit specifically.
A unit with nothing configured
Resolves to an empty chain, which means the request auto-approves on creation. That is a real, reachable state, not an error case, some organisations genuinely want certain request types to need no sign-off at all.
Eligible approvers are computed live, not frozen at the moment a request is filed. If a team manager changes on Tuesday, a request submitted on Wednesday is checked against Wednesday's org chart. A step that only the requester can satisfy, the beneficiary's own consent, fires automatically at submission, so a chain that opens with self-consent never makes anyone click twice.configured
Balances
Four allowance pools, each its own ledger
Replacement allowance, compensation earned for working outside a normal schedule, is tracked as four separate pools, each with its own source events and its own rule for which leave types may draw from it.
| Pool | What generates it | What consumes it |
|---|---|---|
| Granted allowance | Overtime duties, Work Requests that drew on Bank of Working Hours, shift extensions, shifts overlapping a public holiday | A leave request of a type configured to deduct from it |
| Meeting allowance | Duty requests flagged as meeting-allowance type | Same, configured per leave type |
| Instructor allowance | Shifts where the employee is assigned the instructor role | Same, configured per leave type |
| Annual rest allowance | Granted once per year as a standing entitlement | Same, configured per leave type |
Every grant is consumed FIFO by expiration date, spilling into the next grant if one day's deduction outruns what is left in the earliest. A grant that has already been spent, even partially, cannot be revoked, that protects the audit trail against double-accounting. Cancelling a leave that consumed a pool refunds exactly what that leave took, matched by the leave request's own id. How much allowance each combination of shift and day earns, and for how long a grant stays valid before it expires, is a table an administrator sets, not a fixed rule.configured
Fairness
Vacation Score: an auditable answer to who gets the popular week
Every 24/7 roster eventually has two people who want the same Christmas week. SkyRoster gives that decision a running, transparent score instead of leaving it to who asked first.
How it accrues
Each approved leave that is configured to generate score earns points from a biweekly scoring table, 24 regular periods a year, plus optional dated overrides for a specific holiday week, pro-rated by how much of a full day the leave actually covers.
It only ever goes up
Editing a leave to a shorter period or a lower-scoring type afterwards does not claw back the score already earned. Every employee starts each calendar year back at zero, and a closed year adds a small bonus for unused leave allowance.
Where it surfaces
On the employee's own dashboard, in the Team Scheduler's sort options, and as an input when two requests overlap on a popular date, a supervisor can see, not guess, who has the lower score. Every change to a scoring table is field-level audited.
The supervisor's view
The Team Scheduler
A supervisor's roster grid, every employee of the selected units against the calendar, colour-coded by shift, requests actionable from the cell they land on.
Filter, search, sort by fairness
Filter the employee list by qualification, search by name or job number, and sort by Vacation Score specifically, a supervisor deciding who gets priority for an upcoming date can surface the lowest score first rather than trusting memory.
Never a stale view
While the scheduler is open, it polls every five seconds for approvals happening elsewhere, another approver, or the same request approved from a phone, and updates the grid on its own, so nobody double-approves an already-resolved request.
When a colleague's leave is visible in someone else's scheduler view, description and contact details are deliberately redacted for non-managers, while the leave type itself stays visible, enough to colour the cell correctly, not enough to expose why.
Documents
A document requirement can sit at two different points in the chain
At the type
A whole leave or duty type, Sick Leave, for instance, can be flagged as requiring an uploaded document before the request can even be submitted. PDF, Word, JPG or PNG, up to 15MB. No document, no submission.
At a specific approval step
Independently, one step in the chain can require a document before that approver can act, even when the type itself asked for nothing at creation.
A manager can decline an invalid document two different ways, and the difference matters.Decline for document resets the whole chain to step one and keeps the request Pending, every approver re-reviews once a valid file lands.Decline document on a document-required step is narrower: it clears just that document, keeps the request at its current step, and temporarily hands eligible- approver status to the employee themselves so they can see and act on their own request until they re-upload, then quietly restores the real approvers. Either way, nobody has to refile from scratch, and a daily reminder nudges anyone whose request is still waiting on a document.
Bring your own approval chains.
Every organisation configures this differently, some short, some with three sign-offs and a document gate. Bring your actual policy to a working session and we will show you the exact chain it becomes.
Who else will ask, and what they will want
- HR and payrollWhether an approved leave that draws on a pool reaches the payroll export correctly.
- Head of unitWhether a Primary Head of Unit step delegates correctly when that head is the beneficiary.
- Controllers and unionsWhether Vacation Score is auditable enough to settle a dispute over a popular week.