Inspiration
Payday Super started 1 July 2026. Super is now paid every payday, on a new measure — qualifying earnings. Every pay code has to be mapped by hand, and payroll software calculates from whatever settings you entered without checking whether they're right. One wrong code repeats in every pay run, for every employee, at up to a 60% penalty uplift.
What it does
Upload a client's pay codes and pay run summary, pick their award, and every code comes back correct, underpaid, overpaid, or needs review — with the reasoning trail, the ATO passage or award clause behind it, and the exact dollar impact. The bookkeeper approves each flag, then downloads the report, fix steps and a draft client letter.
How we built it
Python core, FastAPI, React. A two-model cascade classifies every code, grounded in hybrid retrieval over the ATO guidance, SGR 2009/2 and the client's award. Suspicious codes go to an agent with five read-only tools, capped at six logged steps. A second model verifies each conclusion. All money is plain Python, unit tested — the model never does arithmetic.
Challenges we ran into
Real code names are messy and often ambiguous, which pushed us to investigate how each code is actually paid rather than what it's called. Tuning when to say "unclear" instead of guessing took real work.
What we learned
Retrieval beat model size. Letting the system decline to answer made it better, not worse. Separating judgement from arithmetic removed a whole class of doubt.
What's next for Pay Code Auditor
The ongoing per-pay-run check — that's the subscription. Then any payroll export format, multiple awards per audit, and the edge cases we excluded.
Built With
- fastapi
- pydantic
- python
- react
- typescript
- uvicorn
Log in or sign up for Devpost to join the conversation.