The expressions above read these as $const. They are the figures the annual refresh replaces, so they live as data rather than being written into the formulas — which is what makes a year-on-year change a one-line diff instead of an edit to arithmetic.
Constant
Value
qualifyingMonths
12
adultDaysPerLeaveDay
18
adultTeaDaysPerLeaveDay
22
newspaperDaysPerLeaveDay
11
adolescentDaysPerLeaveDay
14
adolescentTeaDaysPerLeaveDay
18
maxDaysInTwelveMonths
366
Test vectors (12)
Every case is executed against this model on each build, by the Java engine and independently by a JavaScript one. A mismatch of a single cent fails the build, so the page cannot ship advertising a figure the model no longer produces.
Case 1 — L1 288 days worked in a shop or factory after two years: 16 days
given serviceMonths
24
given daysWorked
288
given establishment
shopFactory
given adolescent
no
given daysTaken
0
expect daysEntitled
16
expect daysRemaining
16
Case 2 — L2 300 days: still 16, part of 18 days earns nothing
given serviceMonths
24
given daysWorked
300
given establishment
shopFactory
given adolescent
no
given daysTaken
0
expect daysEntitled
16
Case 3 — L3 tea garden, 286 days: one per 22 = 13
given serviceMonths
24
given daysWorked
286
given establishment
teaGarden
given adolescent
no
given daysTaken
0
expect daysEntitled
13
Case 4 — L4 newspaper worker, 286 days: one per 11 = 26
given serviceMonths
24
given daysWorked
286
given establishment
newspaper
given adolescent
no
given daysTaken
0
expect daysEntitled
26
Case 5 — L5 adolescent in a factory, 280 days: one per 14 = 20
given serviceMonths
24
given daysWorked
280
given establishment
shopFactory
given adolescent
yes
given daysTaken
0
expect daysEntitled
20
Case 6 — L6 adolescent in a tea garden, 288 days: one per 18 = 16
given serviceMonths
24
given daysWorked
288
given establishment
teaGarden
given adolescent
yes
given daysTaken
0
expect daysEntitled
16
Case 7 — L7 eleven months of service: no annual leave yet
given serviceMonths
11
given daysWorked
288
given establishment
shopFactory
given adolescent
no
given daysTaken
0
expect daysEntitled
0
Case 8 — L8 exactly twelve months qualifies
given serviceMonths
12
given daysWorked
288
given establishment
shopFactory
given adolescent
no
given daysTaken
0
expect daysEntitled
16
Case 9 — L9 days taken come off the remainder
given serviceMonths
24
given daysWorked
288
given establishment
shopFactory
given adolescent
no
given daysTaken
5
expect daysRemaining
11
Case 10 — L10 the remainder never goes negative
given serviceMonths
24
given daysWorked
288
given establishment
shopFactory
given adolescent
no
given daysTaken
30
expect daysRemaining
0
Case 11 — L11 adolescent in road transport: s.117(2) lists no rate, the adult 1 per 18 is shown (288 → 16)
given serviceMonths
24
given daysWorked
288
given establishment
roadTransport
given adolescent
yes
given daysTaken
0
expect daysEntitled
16
Case 12 — L12 adult in road transport, 288 days: 16
The whole model as JSON — inputs, outputs, formulas, vectors and sources in one re-runnable document.
This model is published under CC BY 4.0: use it, adapt it, build on it, with attribution. The licence covers the model — the expression of each rule and the arrangement of the catalog. The rates and thresholds are law, and nobody licenses those; the sources above are where they come from.