01
Eight leave types
Annual, sick, emergency, maternity and paternity, unpaid, study, Hajj and bereavement — the set Egyptian employers actually operate, not a generic three.
Leave & absence · the balance nobody argues about
Most leave disputes are arithmetic: a weekend charged as leave, a balance spent twice while two requests sat unapproved, a holiday one branch observes and another does not. Flume computes the working days on the server before the request is submitted, and reserves the balance the moment someone asks rather than the moment someone approves.
What a request actually costs
Six days off across a weekend is four days of leave, and a branch that observes a local holiday charges its own calendar. Change the request below and watch the working-day count and the remaining balance move — including the case where an earlier request is still pending and has already reserved the days it asked for.
Request annual leave for
The weekend inside the range is not charged to the balance. Counting calendar days here would quietly cost this employee two days of annual leave.
Entitled + adjustment − reserved − used = available. Reserved is what a pending request is holding, which is why two requests cannot spend the same days.
What ships
01
Annual, sick, emergency, maternity and paternity, unpaid, study, Hajj and bereavement — the set Egyptian employers actually operate, not a generic three.
02
Each type carries its own rules, including whether it draws on a balance at all, and can be switched off entirely without deleting its history.
03
Per employee, per type, per business year, with the year resolved on the Cairo calendar rather than a UTC boundary.
04
Carry-over, a goodwill day, a correction after a dispute — recorded as an adjustment against the balance rather than an edited entitlement.
05
A pending request holds its days immediately, so the same balance cannot be spent twice while approvals are queued.
06
The employee sees the exact working-day count and the resulting balance before submitting — computed by the same code that will charge it.
07
Weekends and the branch’s own company holidays are excluded automatically, with half-days supported.
08
Requests route to the approver the reporting tree resolves, with the decision, its author and its timestamp kept.
09
Who is off when, so a supervisor can see the clash before approving into it rather than after.
10
A cancelled request releases its reservation back to the balance rather than leaving the days stranded.
11
Absence volume by type and department, approval turnaround and unpaid exposure — per employee or company-wide, exportable.
How it actually works
A pending request reserves its days immediately. Systems that only deduct on approval let an employee submit three overlapping requests against ten remaining days and rely on whoever approves them noticing — which, at the end of a month, they do not. Reserving on request makes the double-spend impossible rather than merely discouraged.
The working-day count an employee is shown before submitting is produced by the server, not estimated in the browser. If the preview and the eventual deduction were computed in two places they would eventually disagree, and every disagreement is a support ticket that starts with “but it said”.
Company holidays are configured per branch, so a plant that shuts for a local observance charges its own calendar while head office charges the national one. The same calendar drives attendance and payroll, so the three cannot disagree about whether a Thursday was a working day.
Entitled plus adjustment, minus reserved, minus used. Keeping “remaining days” as its own editable field is how balances drift: two writes race, or someone fixes a symptom by typing over the total. Deriving it means the components always explain the answer.
Book a demo
The fastest way to judge Flume is to run it against a period you already argued about. Send a month of punches and the payroll you produced from it, and we will show you the same month reconciled — including what the anomaly detectors flag.