A request nobody answers is worse than one that gets turned down. The employee doesn’t know whether to book the flight, and the days sit reserved against their balance indefinitely. BeeHR closes that loop by giving most requests a deadline.
The maturity date
Every request of a type with maturity enabled carries a maturity date — the day it stops being actionable.
It defaults to the from-date: the day the leave was supposed to start. That is nearly always the right answer, since approving time off after it was supposed to begin helps nobody. You can set it by hand on the request form when you need a different deadline — an earlier one, so you know before the travel agent’s cutoff.
Types with maturity turned off have no deadline at all and stay Pending until somebody acts. Which types those are is set in Request Types; out of the box it’s Sick Leave and Maternity Leave, both of which are usually filed after the fact.
What happens at the deadline
A job runs once a day, at 01:00 UTC. It finds every request that is still Pending and whose maturity date has already passed, and rejects it.
Three details worth knowing:
- It rejects requests that matured before today, not on it. A request maturing today survives that morning’s sweep — you have the whole day to decide.
- The rejection reason is set to “Expired without action”, so the record says plainly what happened.
- The status badge carries a small auto marker next to Rejected, which is what distinguishes it from a rejection somebody made.
Because it’s daily rather than continuous, a request doesn’t expire at the stroke of its deadline. It expires the next night.
The balance comes back
An auto-rejection is a normal rejection as far as balances go: the days that were being held are released to the employee. Nobody loses an allowance because their manager was on holiday.
What they do lose is the leave itself, which is the real cost.
Treat an auto-rejection as a miss
This is the part worth being honest about internally. An auto-rejected request is not a decision — it is the absence of one. Somebody asked, waited, and got silence followed by a rejection they can’t argue with because no human is attached to it.
If you’re seeing them, the fix is upstream:
- Work the Approvals inbox to zero. Anything left there is aging toward this.
- Check for the No approver badge. A request whose routing resolved to nobody will sit untouched until it expires, and it isn’t anyone’s fault that it wasn’t actioned — nobody was ever asked.
- Cover approvers who are away. A manager on two weeks’ leave is two weeks of their team’s requests quietly maturing.
Reopening one
An Admin can revert an auto-rejected request back to Pending exactly as they would any other decision, and then it can be approved properly. See Approving, Rejecting and Reverting.
Reverting does not give it a new deadline, though — the maturity date is still in the past, so unless it’s actioned that day the next night’s sweep will reject it again. If you’re reopening an expired request, decide it there and then.