Try five live demosdemo.gravixar.com

Module library

Leave management that keeps balances right

Annual, sick, unpaid, parental and bereavement leave. New joiners get a fair share of the year, managers approve or decline, and the balance changes in the same step as the approval, so the two never drift apart.

The leave bug almost everyone has shipped once: a request is approved, but the balance never goes down. Here the approval and the balance change happen together or not at all, so the two cannot disagree.

Under the hood

Leave approval and balance update run inside the same Prisma transaction. If either fails, both roll back. The leave row never lives in "approved" status while the balance still reads as unspent.

Pro-rated annual leave for new joiners is its own small wrinkle: a hire mid-year doesn't get full annual leave. The policy lives in leavePolicy.ts as a single source of truth, so the engine can't read one rule while the UI renders another. Submit, approve/decline, notify, balance auto-adjust. Notifications fire to all managers on submit, to the requester on decision, with email if Resend is configured.

Related modules

Also in Operations

Bring me a real operations problem. I will show you the system running before you sign anything.

The Ops Leak Audit is the fixed-price first step: I count the hours your tools cost your team, then price the fix. Rather talk first? Book a 30-minute call. If it is not a fit, you still leave with notes you can use.