Annual Leave
Flowtly provides capabilities to configure annual leave limits at both the organisational and individual employee levels. This flexibility supports various scenarios, including changes in employee seniority or specific contractual agreements. Annual leave limits for all employees are configured by default in the organisation settings. For employee-specific situations, such as seniority adjustments, use the individual leave limit settings located within the employee profile.
Configuring Individual Annual Leave Limits
Each annual leave limit is configurable with a specific agreement type and for a defined period. To establish or modify an annual leave limit for an employee, add an entry specifying the limit (e.g., 26 days) and its effective date. The form requires the following information:
- Days - The number of days for the annual leave limit.
- Start Date - The date from which the limit becomes applicable.
- Variant - The agreement variant to which the limit applies (e.g., employment agreement or B2B).
- Holiday Type - The specific type of holiday the limit applies to.
Once annual leave information is configured, the limit appears in the employee's list under the Free Days/Year column and is reflected in the Free Days Left column.
To adjust an employee's leave limit, remove an existing entry if the limit should no longer apply, or add an entry to establish a different limit. An entry overrides prior settings for the same contract and leave type from its specified start date. For instance, if an employee's limit is temporarily increased for a specific period, add an entry for the increased limit, followed by another entry to revert to the standard limit once the period concludes. Leave limits apply indefinitely from their specified start date until another configuration changes the limit for the same contract and leave type.
How the entitlement is worked out
The employee's annual leave tab opens on the balance: the Time off balance card with last year's days beneath it, and How we calculate this beside both. On a narrow screen they stack.
Time off balance is the same reading the employee sees on their own page: Available now, By year end, the annual figure as a chip, and a bar showing what has been accrued and what is already taken. It is the only place the balance appears on this tab. On the person's other tabs the header carries a Leave balance card with the same available now figure and the year-end one beneath it, so the two cannot disagree; on the annual leave tab that card is left out rather than repeating the figure.
The Days off card on the home page carries the same reading for the signed-in employee: Available now as its headline, the same bar, the annual entitlement, what has accrued so far and what is left By year end, last year's days on their own line, and any leave still awaiting approval labelled separately — it has not been taken off the balance yet. A balance below zero is shown as the number below zero on the home page, where the full card reads 0 and states the overdraft beneath it. When there is no annual allowance, no entitlement has been set, or part of the summary could not be loaded, the card says so instead of showing a figure. View my time off opens the full page.
How we calculate this is the arithmetic behind that figure, and it ends on exactly the number the card shows:
- Annual limit — the days configured for this contract, with a chip saying where the figure comes from: Individual for an entry on this tab, or default · <variant> for the organisation default. Either way this is the entitlement for a full-time contract.
- × EPE from the contract — the full-time equivalent of the employee's active agreement, the same percentage shown beside Job Size and Weekly working time there.
- Balance from previous years — the net position of every year before the current one: everything earned up to last 31 December, less everything taken in that time. It appears only when it is not zero, so nobody in their first year of employment sees it. It can be negative, when more was taken in earlier years than was earned, and the balance above already accounts for that.
- Accrued so far — how much of the year has been earned to date, shown against the annual figure.
- Carried over from last year, Lapsed unused and Used appear only when they are not zero.
- Available now — the total, and the same number as the card above.
Balance from previous years is not a carry-over, and the two never appear together. A carry-over is days moved forward by your carry-over settings: there is a limit on how many move, and they expire on a date you set. A balance from previous years is simply what the arithmetic of earlier years left over — nothing moved it forward, no limit applied to it, and nothing expires it. Which of the two you see depends on whether carry-over is switched on for your organisation; see Common holiday settings.
On a narrow screen this panel is collapsed; select How we calculate this to open it.
Important: The number in the Days column is the entitlement for a full-time contract. EPE is applied to it afterwards, by Flowtly. Entering an individual limit that has already been reduced by hand for a part-time employee prorates it a second time and leaves the person with too few days.
So for a half-time employee whose organisation grants 20 days, the correct individual limit is still 20 — or no override at all, since the organisation default already says 20. The half is applied by the EPE line.
A balance is always read as of a date, and it counts leave up to and including that date. Leave booked for a later day, including the working day straight after it, does not reduce the balance shown for that date.
Accrual is spread through the year, so the accrued figure part-way through a year is smaller than the annual entitlement and is not a sign that the entitlement is wrong.
When the whole year is granted up front
Accrual spread through the year is one of two bases. Which one applies is set for your organisation as a whole, and it can be set differently per contract type; it is not a switch on the holiday settings page today, so ask Flowtly support to change it. On the other basis the whole year's entitlement is available from 1 January, and nothing is held back for later months. Polish employment-contract rules work this way from an employee's second calendar year: only the first year is earned month by month, and after that somebody can take two weeks in February without having "earned" them yet.
When a person's year is granted up front, the balance reads differently, because there is nothing still to accrue:
- The line under Available now says how much of the year has been used — 7 days used of 26 days for the whole year — instead of how much has accrued so far. The entitlement, what is gone and what is left are all on screen, so there is nothing left to add up by hand.
- The breakdown's row is Granted for the whole year rather than Accrued so far, and it carries no of 26 days beside it: the figure already is the whole year.
- No monthly rate is shown. There is no +2.2 days per month, because the days do not arrive monthly.
A fixed-term contract that ends part-way through the year is still granted its days up front; the entitlement simply stops where the agreement stops, so the figure is smaller than a full year's.
Everything else is unchanged — By year end, the bar, the annual chip and last year's days all read exactly as they do for someone whose leave accrues.
Days carried over from last year
Beneath the Time off balance card, Leave from <year> shows what this person brought into the current year, and whether anybody stated it. A figure somebody typed in is marked entered by hand; one Flowtly worked out from the previous year is marked calculated. Use Add carry-over, or Edit and Delete on a figure already there. When nothing has been entered the row reads No carry-over has been entered for this person.
The days a person started the year with are a record, not what they can still take, so the row shows them as four separate figures:
- Opening · 1 Jan <year> — the days carried into the year.
- Used from this pool — how many of them have been taken.
- Expired — how many lapsed unused on the expiry date.
- Still available — what is left of the carry-over today. This is the figure to read when planning leave.
When Flowtly cannot tell how much of the carry-over has been used or has expired, only the opening figure is shown, rather than zeros nobody measured. When the person carried a deficit into the year — more leave taken than earned — the row shows the opening figure below zero and Deducted from <year>, the amount taken off this year's entitlement, and nothing else: there is no pool to use and nothing to expire.
While carried-over days are still left and have an expiry date, the Time off balance card and the Days off card on the home page warn about them: <amount> from <year> expires on <date>. Use it first. The amount is what is still left of the carry-over, not the opening figure. Once the carry-over has been used up or has expired, the warning gives way to a settled line such as From <year>: <amount> used.
A hand-entered figure has a Source, note and override options section. Open it to read the note left with the figure and, if you are allowed to change it, what editing and deleting do. Flowtly does not show who entered the figure, when, or which calculated figure it replaced, and the section says so rather than leaving a gap: Entered by: unavailable · Entry date: unavailable. and Replaced calculated figure: unavailable.
Deleting a hand-entered figure asks for confirmation first: Delete this entry? The calculated carry-over from the organisation's settings applies again, and this person's balance is recalculated.
This matters most for an organisation that started using Flowtly part-way through a year: the days people walked in with are exactly the ones Flowtly cannot work out for itself, so somebody has to state them.
Where each limit comes from
The limits table sits under the Annual entitlements heading, with the tab's one Add annual time off button beside it. The button is shown only to people allowed to manage agreements.
Deleting an individual limit asks for confirmation first: Delete this individual limit? The organisation's calculation applies again for this person, and their balance is recalculated from the applicable rule.
Every row in the limits table carries a chip saying where it comes from: Individual for a limit set on this tab, default · <variant> for the organisation default, and = default as a warning when a personal row merely repeats the default — a row like that looks harmless and then silently survives the next change to the default. A footer counts how many rows do it.
When Flowtly cannot tell where the rows come from, each row's chip reads Source unavailable and a line under the table says The original rule and entry history for these rows are unavailable. — rather than showing no chip, which would read as though the rows simply follow the organisation default.
The organisation default in force is listed as well, greyed, reading The organisation default for this contract, with a button to Change in organisation settings. A default that a personal row overrides reads Superseded by an individual limit above.
If neither a personal limit nor a default covers this person's contract variant, the tab says so in red — No leave limit is set for this person — rather than showing a zero that reads like an allowance somebody has used up.
On a narrow screen each row of the table becomes its own card.
Overtime accrual
Where your organisation accrues overtime, Flowtly works out each month how many hours a person logged above their working-time norm and proposes adding them to the person's overtime pool, the pool their pick-up days draw on. Nothing is added until someone accepts the proposal. The proposals are listed in the Overtime accrual section, under the annual entitlements table. The section appears only once the person has at least one proposal, so it is not shown at all in an organisation that does not accrue overtime.
Each row is one month:
- Month and Overtime, the hours above the norm, which can be negative;
- Pool before and Pool after, what the pool held before and after that month's hours;
- Status: Pending, Accepted or Rejected.
All figures are in days, hours and minutes, the same way as the entitlements table above, so an accepted month reads the same in both places. An accepted row shows the figures as they were when it was accepted: the pool is worked out again from what is in force at that moment, and never goes below zero. A rejected row shows a dash for both pool figures, because it added nothing.
A pending row offers Accept and Reject:
- Accept adds the month's hours to the pool in one click, as a new row in the entitlements table above. The balance and the table refresh straight away.
- Reject asks you to confirm first: nothing is added to the pool, and that month is not offered again.
If the month has already been decided elsewhere, Flowtly says so and refreshes the list. If the person's overtime entitlements do not allow the hours to be added right now, for example because an entitlement was entered by hand the same day or the pool is split by reason, Flowtly says so and the month stays pending; review the entitlements above.
The section is shown to people who can manage employees. Accepting and rejecting also need the right to manage agreements; without it the section is read-only.
Limits belonging to a removed employee
When an employee is removed from the organisation, their annual leave limits are kept and marked as no longer applicable. They stop counting towards anything the organisation is actively managing, and the number on each entry is preserved, because it is the figure every past leave balance for that person was measured against.
Nothing needs cleaning up afterwards. If the person is restored, their limits apply again exactly as they did before.
Exporting a person's whole leave history
The annual leave tab carries an Export leave history (CSV) button at the top. It downloads one file for the person whose record is open, covering every year since their first countable agreement — not only the year on screen.
The file has one row per year and leave type, and for each one it gives what was carried over
into that year, what was accrued, what was used and what was left. Every figure appears
in days and in seconds, because a "day" here is the 8-hour entitlement day the accrual is
denominated in rather than the person's own contracted day — the two differ for a part-timer, and
the file states which one it means. A source column reads stated for a year whose opening
balance somebody entered by hand and derived for one Flowtly worked out; a stated zero is a
decision somebody recorded, not a missing figure.
Beside used, each row also gives what is planned — approved time off dated after the day the figure was calculated, so it is always zero for a finished year — and what is pending, meaning requests still waiting for a decision. A balance column shows what is left of the allowance that leave type draws on: the annual balance for annual leave and on-demand leave, and what remains of its own limit for a type that has one. For a type with no limit set, the balance is left empty rather than shown as 0, because there is nothing for it to run out of. These columns come after all the others, so a spreadsheet built on the earlier layout still reads it.
The figures for past years are reconstructions, and the file says so on its first line. Each year is recalculated under the leave configuration in force on the day of the export, because the accrual rule is not dated — so a figure for an earlier year can differ from what the person was told at the time. The current year is calculated under the configuration that genuinely applies to it, so that one is exact. This matters most when the numbers are going to be paid against: read the first two lines of the file before passing it on.
The button is shown only to someone who may read that person's leave. Being able to open the tab is not enough on its own — the export asks for the same permission as managing or approving time off. Somebody on an hourly contract has no leave entitlement to export, and the tab offers no button for them.
Example use cases
- Adjusting leave for employee seniority: Increase an employee's annual leave limit from 20 to 26 days after they reach a certain tenure, effective from a specific date.
- Implementing special agreements: Provide a temporary increase in leave days for an employee based on a unique contract or project, then revert to the standard limit after the period ends.
- Differentiating leave by contract type: Configure distinct annual leave limits for employees on standard employment agreements versus those on B2B contracts.
- Correcting or updating leave entitlements: Modify an employee's annual leave allocation if there's a change in company policy or an error in previous settings.
- Checking a part-time employee's days: Read the entitlement breakdown to confirm that a part-time employee's annual figure is the organisation default reduced once by their EPE, and not a limit that was already halved by hand.