Caireo
BUILT FOR NDIS PROVIDERS

Every shift, note and dollar.
One platform.

One record per shift — rostered, checked in, written up, billed and paid. Console on the desk, app in the pocket.

Admin consoleSee how it works

Move your cursor — they’re watching. Give one a click.

THE PROBLEM

Six tools. None of them talking.

TodaySpreadsheetGroup chatTimesheetsPaper notesInvoicesPayroll

A roster in a spreadsheet. Notes on paper. Timesheets by text. Every claim typed twice.

With CaireoRosterNotesBillingPayrollBudgetAuditOne recordper shift

One shift record. Every role sees the correct slice of it, and nothing is entered twice.

HOW IT RUNS

One week, one record.

Each step writes to the same shift. Nothing gets re-keyed, and nothing gets reconstructed on Friday afternoon.

1Rosterauto-filled, constraint-checked2Check inon location, geofenced3Recordnote, incident, signature4Billclaimed from real hours5Paypayslip and Xero, same data
WHAT SHIPS TODAY

Twelve modules, one console.

Not a roadmap — this is live in the admin console and the mobile app right now.

MonTueWedThuauto-filled

Rostering that fills itself

Auto-roster scores every worker on availability, weekly hours, travel and key-worker fit — then shows its working.

on site 09:02

Check-in that proves itself

Workers clock on at the participant’s address. Out-of-bounds is flagged, travel is captured for billing.

TOTALXero

Billing from what happened

Invoices built from completed shift events, priced off the NDIS guide, pushed to Xero over OAuth.

signed

Notes signed on the spot

Progress notes and incidents written against the shift they belong to, signed on the worker’s device.

Open shifts

Publish, workers claim, you approve.

Today board

Late, missed and running — live.

Participants

Plans, goals, risks, agreements.

Workers

Rates, availability, expiring checks.

Payroll

Pay periods from real worked time.

Xero

One-click connect, two-way sync.

Voice

Roster it by saying it out loud.

Reports

Utilisation, CSV export, full trail.

TWO SURFACES

A console for coordinators. A phone for everyone else.

Support workers and participants share one binary — the app routes to the right tabs from the signed-in role.

Admin web

Next.js 15, desktop-first. Rostering, billing, payroll, alerts and audit — with rebindable keyboard shortcuts.

Check in

Care worker

Schedule, check-in, notes, timesheet, availability.

68%plan used

Participant

Day ahead, plan budget, notes, messages.

WHO SEES WHAT

Four roles, enforced in Postgres — not in the interface.

Hiding a button is not access control. Role lives in the auth token and every query is filtered before it returns.

ROLERoster boardAll participantsTheir own shiftsBilling & payrollPlan budgetAcross orgs
Admin
their organisation
Support worker
their own work
Participant
their own supports
Platform admin
tenants, not records
Full accessScoped to themNo access
TRUST

Three things wrap every participant record.

Role in the auth tokenRLS policy in PostgresAppend-only audit logparticipant record

Tenant isolation

Every table carries an organisation_id behind an RLS policy. One provider cannot read another’s rows.

Append-only audit

Record changes land in an immutable log with actor, timestamp and diff — exportable when an auditor asks.

Accessible by default

Light and dark, large-text and high-contrast modes, keyboard navigation throughout, mobile held to the same bar.

CONNECTED

Plugs into the back office you already run.

XeroStripeSupabaseMapsEmailPush

Xero two-way sync · Stripe subscriptions · Supabase Postgres with RLS · Maps & geofencing · SMTP invites and reminders · native push

Ready when you are.

Sign in to your organisation’s console, or ask your platform administrator for an invite.

Admin sign-in Talk to us