Full Time Contractor Accrual
Most leave types accrue on a calendar schedule — a fixed number of days per month, or a lump sum once a year. The Full Time Contractor accrual behaviour is different: leave accrues based on business days actually worked, which suits contractors and freelancers who only earn leave for the days they actually work.
Setting It Up
Select Full Time Contractor from the Accrual Behaviour dropdown when creating or editing a leave type under Settings → Leave Types.
Note
For this accrual behaviour, the Days field changes meaning. Instead of “days per annum,” it becomes the number of business days that must be worked to accrue 1 day of leave — for example, 17 for annual leave or 26 for sick leave. If left blank, it defaults to 17.
How It Works
TeamHub recalculates the balance for a contractor-accrual leave type from scratch in two situations:
Immediately, whenever something happens that could affect it — a leave request is submitted, approved, declined, or cancelled.
Automatically every night (around 4am), for every employee on this accrual behaviour — so a new day still accrues as soon as enough business days have passed, even if nothing else happened that day.
Days Worked = Business Days Since Opening Date − Approved Leave (any type)
Days Owed = floor(Days Worked / Days Required Per Accrual)
New Entry = Days Owed − Days Already Posted
See Business Days for exactly how “business days” is calculated — including working-day schedules and public holiday / custom calendar exclusions.
Only the difference between what’s owed and what’s already been posted is added as a new entry, so nothing is ever double-counted, and a day only appears once it’s fully earned — there’s no partial credit part-way through a block of days.
Note
“Approved Leave” in the formula means leave of any type taken by the employee in the period, not just leave booked against this particular leave type. Being on leave at all — sick leave, annual leave, unpaid leave, anything approved — means that day wasn’t worked, so it won’t count toward this leave type’s accrual either. This is why the days-worked total can be lower than expected if you’re only looking at leave history filtered to this one leave type.
Note
The nightly run always counts business days only through yesterday, never today — a day only counts once it’s actually over. Since the run happens at 4am, “yesterday” has always already fully finished by the time it runs, so there’s no need to wait for a specific time of day.
Positive and Negative Accrual
Positive accrual is the normal case: as an employee works more days, the total owed crosses the next whole-day threshold and TeamHub posts a new accrual entry for the difference.
Negative accrual can happen because the balance is always recalculated from scratch rather than simply added to. If an employee’s leave is backdated or approved after the fact for dates already counted as worked, the recalculated total can drop below what’s already been posted. When that happens, TeamHub posts a negative adjustment entry that claws back the difference.
Note
A negative adjustment is expected, automatic behaviour, not an error — it almost always means a leave record was added or changed for a date in the past.
Checking How an Entry Was Calculated
Every accrual or adjustment entry posted for this leave type carries the full breakdown behind its number. Hover over the Days value for that entry in the All Entries table (under an employee’s leave type Balances) to see:
Calculation period — the leave type’s opening balance date (or the employee’s start date) through yesterday; today is never included, since a day only counts once it’s actually over
Business days worked — the net business days worked, and the gross business days before deducting approved leave
Public holidays in period — each public or custom-calendar holiday excluded from the count, by name and date
Approved leave entries in period — every approved leave record that counted against days worked (any leave type — see the note above), listed with its leave type, dates, and days
Total days on leave in period — the combined total of those leave entries (the figure subtracted from gross business days above)
Accrual rate — the leave type’s configured business-days-required-per-accrual
Total accrued to date — the running total this entry reconciles against
A reminder that a further day accrues automatically once the next full block of business days has been worked — no action needed from anyone
Worked Example
Here’s a real tooltip for an accrual leave type requiring 17 business days per day of leave:
Calculation period: 13 Apr 2026 - 08 Sep 2026 (yesterday, today not included)
Business days worked: 99
(103 business days less 4 on approved leave)
Public holidays in period (5):
- Freedom Day (27 Apr 2026)
- Workers' Day (01 May 2026)
- Youth Day (16 Jun 2026)
- National Women's Day (09 Aug 2026)
- National Women's Day (Observed) (10 Aug 2026)
Approved leave entries in period (3):
- Annual Leave: 12 May 2026 - 13 May 2026 (2 days)
- Sick Leave: 03 Jul 2026 (1 day)
- Annual Leave: 22 Aug 2026 (1 day)
Total days on leave in period: 4 days
Accrual rate: 1 day per 17 business days worked
Total accrued to date: 5 days
Credited only once a full block of days has been worked - there is no partial credit part-way through a block.
This runs automatically every day - a further day will accrue automatically once another 17 business days have been worked.
Here’s the same calculation, worked through step by step:
Note
The 103 business days below already have weekends and public holidays excluded — see Business Days for how that count is produced. 5 public holidays happened to fall in this period, but that’s just background; they’re not a separate subtraction here.
Step |
Result |
|---|---|
Business days from opening date (13 Apr 2026) through yesterday (08 Sep 2026) |
103 |
Less: 4 days of approved leave, any type, in that period |
− 4 |
= Business days actually worked |
99 |
Divided by 17 business days required per day of leave |
÷ 17 |
= Days owed, rounded down (99 ÷ 17 = 5.82) |
5 |
Important
99 business days worked ÷ 17 = 5.82 → floor to 5 days owed.
Since 5 days were already posted from earlier runs, this run’s new entry is 0 days — nothing changes yet. The employee has already worked 14 of the 17 business days needed for the next day (99 mod 17 = 14); once 3 more business days have been worked (99 → 102), a 6th day will accrue automatically, with no action needed from anyone.
Balances Can’t Be Manually Edited
Because the balance is continuously reconciled from the formula above, manually adding, editing, or deleting an opening, accrual, or adjustment entry on a contractor-accrual leave type is blocked for regular admins — the next automatic run would just recalculate over it. System administrators retain the ability to edit or delete existing entries for support purposes.
Frequently Asked Questions
- Why did a negative entry appear on this employee’s balance?
A leave record affecting the days-worked calculation — usually a backdated or late-approved booking — reduced the number of days actually worked, so the system posted a corrective adjustment.
- Why can’t I add or edit a balance entry for this leave type?
Contractor-accrual leave types reconcile their own balances automatically, so manual entries are blocked for regular admins. Contact a system administrator or Support if a correction is genuinely needed.
- Why does the days-worked count in the tooltip not match the leave I can see for this leave type?
Any approved leave — of any leave type — reduces days worked, not just leave booked against this one. Check the Approved leave entries in period list in the tooltip; it will include leave under other leave types too.
- Why doesn’t a particular entry show a calculation breakdown when I hover over it?
The breakdown is only captured on entries posted after this feature was added — older entries won’t have one.