Awards & Compliance
Complete guide to Australian modern awards, penalty rates, break rules, and employment compliance in Timesheet.
Awards & Compliance
Timesheet provides comprehensive support for Australian modern awards, ensuring compliance with Fair Work regulations, penalty rates, break rules, and leave entitlements. The system is designed to handle complex award structures and automatically calculate correct pay rates.
Overview
The awards system handles all aspects of Australian employment compliance:
- Modern Awards - Support for all Australian modern awards
- Penalty Rates - Automatic calculation of overtime, weekend, and public holiday rates
- Break Rules - Mandatory break enforcement based on hours worked
- Leave Entitlements - Annual leave, sick leave, and TOIL tracking
- Employment Types - Casual, part-time, and full-time classifications
- Audit Compliance - Complete audit trails for Fair Work compliance
Key Features
Modern Award Support
- Flexible award structure supporting any Australian modern award
- Multiple award levels and classifications
- Employment type specific conditions
- Historical award rate tracking
Automatic Calculations
- Real-time penalty rate calculations
- Overtime detection and application
- Weekend and public holiday rates
- Break rule enforcement
- Leave accrual calculations
Compliance Reporting
- Fair Work compliant timesheets
- Penalty rate breakdowns
- Break compliance reports
- Leave balance tracking
- Audit trail documentation
Award Structure
Award Hierarchy
graph TD
A[Award] --> B[Award Level]
B --> C[Condition Set]
C --> D[Employment Type]
C --> E[Break Rules]
C --> F[Pay Rules]
C --> G[Penalty Rules]
C --> H[Leave Entitlements]
C --> I[TOIL Rules]Core Award Components
Award
The top-level award definition:
| Field | Type | Description |
|---|---|---|
name | String | Award name (e.g., "Retail Industry Award 2020") |
description | String | Award description and scope |
isActive | Boolean | Whether award is currently active |
levels | Array | Award levels and classifications |
Award Level
Different classifications within an award:
| Field | Type | Description |
|---|---|---|
label | String | Level name (e.g., "Level 1 - Retail Employee") |
conditions | Array | Condition sets for different employment types |
Condition Set
Employment type specific conditions:
| Field | Type | Description |
|---|---|---|
employmentType | String | casual, part-time, full-time |
breakPolicy | String | auto, always, never |
breakRules | Array | Break rules for this employment type |
payRule | Object | Base pay rate configuration |
penaltyRules | Array | Penalty rate rules |
leaveEntitlements | Array | Leave entitlement rules |
toilRule | Object | Time off in lieu rules |
Pay Rules
Hourly Pay Structure
interface IPayRule {
type: "hourly" | "salary"
rate?: number // Hourly rate for hourly employees
annualAmount?: number // Annual salary for salaried employees
currency: string // Currency code (AUD)
hoursPerWeek?: number // Standard hours for salary calculation
}Pay Rule Examples
Casual Employee
{
"type": "hourly",
"rate": 25.50,
"currency": "AUD"
}Full-time Salary
{
"type": "salary",
"annualAmount": 65000,
"currency": "AUD",
"hoursPerWeek": 38
}Pay Calculation
The system calculates pay using:
- Base Rate - From pay rule configuration
- Hours Worked - From timesheet data
- Penalty Multipliers - Applied based on penalty rules
- Award Level - Employee's assigned award level
Penalty Rates
Penalty Rule Types
Overtime Hours
Penalty rates based on hours worked:
{
"label": "Overtime - Over 8 hours",
"triggerType": "overtime_hours",
"thresholdHours": 8,
"rateType": "multiplier",
"rateValue": 1.5,
"stackable": false
}Time of Day
Penalty rates for specific times:
{
"label": "Evening penalty",
"triggerType": "time_of_day",
"startHour": 18,
"endHour": 22,
"rateType": "multiplier",
"rateValue": 1.15,
"stackable": true
}Day of Week
Weekend and public holiday penalties:
{
"label": "Weekend penalty",
"triggerType": "day_of_week",
"days": ["Saturday", "Sunday"],
"rateType": "multiplier",
"rateValue": 1.25,
"stackable": false
}Public Holidays
Special rates for public holidays:
{
"label": "Public holiday penalty",
"triggerType": "public_holiday",
"rateType": "multiplier",
"rateValue": 2.0,
"stackable": false
}Penalty Rate Calculation
Stackable vs Non-Stackable
- Stackable: Multiple penalties can apply (e.g., evening + weekend)
- Non-Stackable: Highest penalty rate applies
Calculation Examples
Base Rate: $25.00/hour
| Scenario | Penalties Applied | Calculation | Final Rate |
|---|---|---|---|
| Weekday 9-5 | None | $25.00 × 1.0 | $25.00 |
| Saturday 9-5 | Weekend (1.25×) | $25.00 × 1.25 | $31.25 |
| Weekday 7-9pm | Evening (1.15×) | $25.00 × 1.15 | $28.75 |
| Saturday 7-9pm | Weekend + Evening | $25.00 × 1.25 × 1.15 | $35.94 |
| Public Holiday | Public Holiday (2.0×) | $25.00 × 2.0 | $50.00 |
Break Rules
Break Rule Structure
interface IBreakRule {
label: string // Break description
minHours: number // Minimum hours to trigger break
maxHours: number | null // Maximum hours (null = no limit)
breakMinutes: number // Break duration in minutes
paid: boolean // Whether break is paid
}Common Break Rules
Rest Breaks
{
"label": "Paid rest break",
"minHours": 4,
"maxHours": 5,
"breakMinutes": 15,
"paid": true
}Meal Breaks
{
"label": "Unpaid meal break",
"minHours": 5,
"maxHours": null,
"breakMinutes": 30,
"paid": false
}Break Enforcement Policies
Auto Policy (Recommended)
- Automatically applies break rules based on hours worked
- Deducts unpaid breaks from total hours
- Adds paid breaks to total hours
- Flags non-compliance for review
Always Policy
- Always applies configured breaks regardless of hours
- Useful for fixed break schedules
- May result in over-compliance
Never Policy
- No automatic break application
- Manual break management only
- Requires careful monitoring for compliance
Break Compliance Tracking
The system tracks break compliance:
- Required Breaks - Based on hours worked and break rules
- Actual Breaks - Recorded break times from timesheets
- Compliance Status - Whether breaks meet minimum requirements
- Flags - Non-compliant shifts flagged for review
Leave Entitlements
Leave Types
Annual Leave
{
"label": "Annual Leave",
"daysPerYear": 20,
"accrual": "progressive",
"carriesOver": true,
"payRate": 100,
"loadingPercent": 17.5
}Sick Leave
{
"label": "Personal/Sick Leave",
"daysPerYear": 10,
"accrual": "progressive",
"carriesOver": true,
"payRate": 100,
"loadingPercent": null
}Long Service Leave
{
"label": "Long Service Leave",
"daysPerYear": 8.67,
"accrual": "progressive",
"carriesOver": true,
"payRate": 100,
"loadingPercent": null
}Leave Accrual Methods
Progressive Accrual
- Leave accrues gradually based on hours worked
- Most common for ongoing employees
- Calculated per pay period
Upfront Accrual
- Full entitlement granted at start of year
- Common for fixed-term contracts
- Adjusted for part-year employment
Leave Loading
Annual leave loading is additional payment:
- 17.5% Loading - Standard annual leave loading
- Applied to Base Rate - Loading calculated on base pay rate
- Casual Loading - May replace annual leave for casual employees
TOIL (Time Off In Lieu)
TOIL Rules
interface IToilRule {
weeklyThresholdHours: number // Hours before TOIL accrues
accrualMultiplier: number // TOIL accrual rate (1.0 = 1:1)
maxBalanceHours: number | null // Maximum TOIL balance
expiryWeeks: number | null // TOIL expiry period
payoutOnExpiry: boolean // Pay out expired TOIL
}TOIL Configuration Example
{
"weeklyThresholdHours": 38,
"accrualMultiplier": 1.0,
"maxBalanceHours": 76,
"expiryWeeks": 52,
"payoutOnExpiry": true
}TOIL Calculations
- Accrual: Hours over threshold × multiplier
- Usage: TOIL hours deducted when leave taken
- Expiry: Automatic expiry based on rules
- Payout: Convert expired TOIL to pay
Employment Types
Casual Employment
- Hourly Rates - Paid per hour worked
- Casual Loading - Additional 25% loading (typically)
- No Leave Entitlements - Loading in lieu of leave
- Flexible Hours - No guaranteed hours
Part-Time Employment
- Guaranteed Hours - Minimum hours per week
- Pro-rata Entitlements - Leave based on hours worked
- Regular Schedule - Consistent work pattern
- Award Protection - Full award coverage
Full-Time Employment
- Standard Hours - Typically 38 hours per week
- Full Entitlements - Complete leave entitlements
- Overtime Rates - Penalty rates for extra hours
- Job Security - Ongoing employment
API Endpoints
Award Management
List Awards
GET /api/awards?page=1&limit=50&search=retailResponse:
{
"awards": [
{
"_id": "award_id",
"name": "Retail Industry Award 2020",
"description": "Modern award for retail employees",
"isActive": true,
"levels": [
{
"label": "Level 1 - Retail Employee",
"conditions": [
{
"employmentType": "casual",
"breakPolicy": "auto",
"breakRules": [...],
"payRule": {...},
"penaltyRules": [...],
"leaveEntitlements": [...],
"toilRule": {...}
}
]
}
],
"createdAt": "2024-01-01T00:00:00Z",
"updatedAt": "2024-01-01T00:00:00Z"
}
],
"pagination": {
"page": 1,
"limit": 50,
"total": 25,
"pages": 1
}
}Create Award
POST /api/awards
Content-Type: application/json
{
"name": "Hospitality Industry Award 2020",
"description": "Modern award for hospitality workers",
"isActive": true,
"levels": [
{
"label": "Level 1 - Food Service Employee",
"conditions": [
{
"employmentType": "casual",
"breakPolicy": "auto",
"breakRules": [
{
"label": "Unpaid meal break",
"minHours": 5,
"maxHours": null,
"breakMinutes": 30,
"paid": false
}
],
"payRule": {
"type": "hourly",
"rate": 24.80,
"currency": "AUD"
},
"penaltyRules": [
{
"label": "Weekend penalty",
"triggerType": "day_of_week",
"days": ["Saturday", "Sunday"],
"rateType": "multiplier",
"rateValue": 1.25,
"stackable": false
}
],
"leaveEntitlements": [],
"toilRule": null
}
]
}
]
}Employee Award Assignment
Assign Award to Employee
PATCH /api/employees/{employeeId}
Content-Type: application/json
{
"awardId": "award_object_id",
"awardLevel": "Level 1 - Retail Employee",
"employmentType": "casual"
}Common Award Examples
Retail Industry Award 2020
Casual Employee - Level 1
- Base Rate: $25.50/hour (including 25% casual loading)
- Weekend Penalty: 1.25× on Saturday/Sunday
- Evening Penalty: 1.15× after 6pm weekdays
- Break Rules: 30min unpaid meal break after 5 hours
Part-Time Employee - Level 1
- Base Rate: $20.40/hour
- Overtime: 1.5× after 38 hours/week
- Weekend Penalty: 1.5× on Saturday, 1.75× on Sunday
- Leave Entitlements: 4 weeks annual leave, 2 weeks sick leave
Hospitality Industry Award 2020
Casual Employee - Level 1
- Base Rate: $31.00/hour (including 25% casual loading)
- Weekend Penalty: 1.25× on Saturday/Sunday
- Public Holiday: 2.75× on public holidays
- Break Rules: 10min paid break after 4 hours, 30min unpaid meal break after 5 hours
Manufacturing Award 2020
Full-Time Employee - Level 3
- Base Rate: $28.50/hour
- Overtime: 1.5× first 2 hours, 2.0× thereafter
- Shift Penalties: 1.15× afternoon, 1.30× night shift
- Leave Entitlements: 4 weeks annual leave + 17.5% loading
Best Practices
Award Configuration
- Start Simple - Begin with basic award structure, add complexity gradually
- Test Calculations - Verify penalty rate calculations with sample data
- Document Rules - Maintain clear documentation of award interpretations
- Regular Updates - Keep awards current with Fair Work changes
Employee Assignment
- Correct Classification - Ensure employees are assigned correct award levels
- Employment Type Accuracy - Verify casual/part-time/full-time classifications
- Historical Tracking - Maintain records of award changes over time
- Bulk Updates - Use bulk operations for award rate increases
Compliance Monitoring
- Regular Audits - Review penalty rate applications and break compliance
- Exception Reporting - Monitor flagged entries and compliance issues
- Documentation - Maintain audit trails for Fair Work compliance
- Training - Ensure managers understand award requirements
Data Quality
- Accurate Timesheets - Ensure clock-in/out times are accurate
- Break Recording - Verify break times are properly recorded
- Public Holiday Configuration - Maintain accurate public holiday calendar
- Rate Updates - Apply award rate increases promptly
Troubleshooting
Common Issues
Incorrect Penalty Rates
- Check Award Assignment - Verify employee has correct award and level
- Review Penalty Rules - Ensure penalty rules are configured correctly
- Validate Time Data - Check timesheet entries for accuracy
- Test Calculations - Use sample data to verify calculations
Break Compliance Issues
- Review Break Rules - Check break rule configuration
- Monitor Break Policy - Verify auto/always/never policy is appropriate
- Check Time Thresholds - Ensure minimum hours are set correctly
- Validate Break Times - Verify actual break times are recorded
Leave Accrual Problems
- Check Employment Type - Verify casual employees don't accrue leave
- Review Accrual Rules - Check progressive vs upfront accrual settings
- Validate Hours - Ensure hours worked are calculated correctly
- Monitor Carry Over - Check leave balance carry over rules
Award Calculation Errors
- Verify Base Rates - Check hourly rates and salary amounts
- Review Multipliers - Ensure penalty multipliers are correct
- Check Stackable Rules - Verify stackable vs non-stackable penalties
- Test Edge Cases - Test calculations for complex scenarios
Compliance Reporting
Fair Work Reports
- Timesheet Summary - Employee hours and penalty rate breakdown
- Break Compliance - Break rule adherence reporting
- Leave Balance - Current leave entitlements and usage
- Award Coverage - Employee award assignment verification
Audit Documentation
- Change History - Complete audit trail of award changes
- Calculation Details - Detailed penalty rate calculations
- Exception Reports - Flagged entries and manual adjustments
- Compliance Certificates - Formal compliance statements
Next Steps
- Award Structure - Detailed award configuration guide
- Penalty Rates - Penalty rate setup and calculations
- Break Rules - Break rule configuration and enforcement
- Leave Entitlements - Leave accrual and management