This is the approval most companies build first, because it is small enough to build in an afternoon and everybody already understands the rules. It also runs into monday's limits faster than any other — not because the tool is weak, but because leave needs arithmetic and a calendar, and a board does neither on its own.
The build
Twenty minutes, and it is genuinely enough for a team of thirty.
One board, one item per request. Columns: Person, Dates (a timeline, not two date columns — you want it on a calendar later), Type (holiday, sick, unpaid, parental) and Status.
Collect requests with a form rather than by letting people add items. It is not about tidiness: a form makes every request arrive with the same fields filled in, which is what lets the rest of this be automatic. Requests that arrive as chat messages are the actual problem being solved here.
The first limit
And a balance nobody trusts is worse than no balance.
You can put an Allowance number column on a people board and a formula that subtracts days taken. What you cannot do is have the number update itself when a request is approved, handle a half day, or carry five days into next year.
So somebody maintains it. That is fine for a while and it is where most leave boards quietly break: the board says one thing, the spreadsheet says another, and the first person to notice is somebody who was told they had four days and did not.
Decide which one is the truth and write it at the top of the board. If the spreadsheet is the record, the board is a request queue and should not show a balance at all. Half a balance is the worst of both.
The second limit
The clash is obvious to a person and invisible to an automation.
An approver looking at one request sees one request. The question they are actually being asked — can we afford to lose this person that week — needs the other requests beside it.
The fix is not an automation, it is a view. Add a Calendar or Timeline view of the same board, filtered to Approved and Requested, and make looking at it part of approving. Two overlapping bars is a decision; a notification is not.
If cover matters — a shift, a duty rota, a client account — put the covering person in a column on the request. Making it a required field on the form is the cheapest control on this page.
The third limit
Which is where the labels start multiplying.
Most companies want two agreements: the manager, who knows whether the work can spare them, and HR or payroll, who knows whether the days exist. A status column holds one value, so the second agreement has to be encoded in the label — Manager approved, With HR, Approved — and every stage you add multiplies the labels and the automations that move between them.
Questions
A board with one item per request, a form for people to submit them, a status column with Requested, Approved and Declined, and one automation that notifies the manager when a request arrives. That is the whole of it and it takes about twenty minutes. The form matters more than it looks: it stops requests arriving as messages, which is where they get lost.
Not on its own. A number column can hold a balance and a formula column can subtract days taken, but nothing recalculates it when a request is approved and nothing carries it across a year end. Most teams end up maintaining the balance by hand, in the board or in a spreadsheet beside it, and that is the honest limit of running leave on a project tool.
monday will not warn you. The workable answer is a calendar or timeline view of the leave board that the approver looks at before deciding — the clash is obvious to a person and invisible to an automation. Put it in the approval step itself rather than trusting anybody to remember.
Usually both, in that order, and this is where a single status column starts to hurt: one column holds one value, so "the manager has agreed and HR has not looked yet" has no way to be written down except by inventing labels for every combination.
What we built
It does not do balances, and we are not going to pretend otherwise.
Signoff puts the manager and HR in two stages of one approval rather than in six status labels, shows the requester exactly who it is sitting with, and keeps the reason a request was declined attached to the request instead of in a message somebody deleted.
When the manager is away, the approval can be passed on without the request going back to the start — and the trail records that it was passed, by whom, to whom.
What it does not do is count your remaining days. Nothing on this page does. If balances are the thing hurting, you want a leave system, not an approvals app, and we would rather say so than sell you the wrong one.
Keep reading
Why the person who received the goods should approve before the budget holder, what to attach so it can be checked, and where a board stops being accounts payable.
The difference between approving a contract and signing one, surviving four rounds of redlines, and why every new version invalidates the last approval.
Why no app can live on a subitem card, what a status column on the subitem board does and does not do, and how to get a sign-off recorded against one anyway.
Three approvals a month, free, every feature on. Enough to run a fortnight of leave through it and see whether the two stages help.