Kytico Logo
KYTICOSTUDIO

14 hrs

saved per week

500+

shifts per week

2 weeks

build time

From 15 Hours to 2 Hours: Automating NDIS Payroll Compliance

How we built custom automation to handle complex allowances, break compliance, and clock-in validation that standard integrations couldn't solve.



The Challenge

An NDIS provider was using ShiftCare + Xero, but their real payroll rules were too complex for the standard integration.

  • Complex allowances (especially active night)
  • Break compliance across grouped shifts for 55+ staff
  • Inconsistent mileage handling
  • Clock-in issues requiring manual investigation

The admin team spent about 15 hours/week checking shifts, fixing break records, and chasing anomalies.


The Approach

Phase 1: Streamlit checker

First, we built a Python + Streamlit checker to flag risky items and safely auto-fix deterministic break-time issues.

  • It flagged allowances, break compliance, and clock-in anomalies.
  • It auto-fixed break timings only where rules were deterministic.
  • Everything uncertain stayed in a human review queue.

This phase proved detection quality without risky mass updates.


Phase 2: Safe auto-approver

Once phase 1 was stable, we introduced an auto-approver with strict safety rules: auto-fix when clear, flag when uncertain.

For each selected pay period, the system:

  • Applies the proven break-time fixes
  • Applies active night allowances where eligible
  • Uses shift logs + Gemini 2.5 Flash Lite for ambiguous attendance cases
  • Auto-approves when evidence is sufficient
  • Flags anything uncertain for manual review

Mileage automation was deprioritised because the client's process changed and mileage became too irregular for reliable automatic handling.


New Workflow

  1. Handle exceptions for the period.
  2. Run the auto-approver.
  3. Review only the flagged shifts.

This keeps humans involved where judgment is needed, not on routine checks.


The Results

  • Manual effort dropped from ~15 to ~2 hours per week.
  • Payroll quality improved and recurring errors were removed.
  • Compliance checks became consistent across 500+ shifts/week.
  • Admin effort shifted from data entry to review/oversight.

Technical Highlights

  • ShiftCare API integration with audited writes
  • Python + Streamlit checker app
  • Auto-approver workflow with Gemini-assisted decisioning
  • Shift-grouping logic for break compliance
  • Clock-in validation using notes/tasks/event logs

Safety & Testing

  • Staging tests before production rollout
  • Audit logs for every change and approval
  • Conservative thresholds (ambiguous cases are flagged, not auto-written)
  • Gradual rollout from low-risk to higher-impact automations

TL;DR

We started with a conservative checker, proved reliability, then expanded into a safe auto-approver. The team now spends about 2 hours/week on payroll oversight instead of 15.