Leave Plans — Controller Guide
Three questions on one screen, in the order you answer them: what plans do we run, what do employees call them, and who is on one. The last is the one with a deadline — an employee on no plan accrues nothing and cannot record PTO or sick leave at all.
Where it is: Accounting → Leave plans (/accounting/leave-plans).
Part 1 — The ideas you need first (read once)
A plan is data, not a code change
Every attribute of a plan — how it accrues, how often, the cap, the carryover limit, the waiting period, whether it pays out on departure — is stored on the plan. Assigning somebody to one is then just a join.
That matters most for sick leave, which is jurisdictional. The plan set is specific to your tenant and to where your people work, so most tenants run several sick plans alongside their PTO plans. That is normal, not clutter.
The four shapes, and why a granting plan has no cadence
How it pays out offers exactly four shapes:
| Shape | What it means |
|---|---|
| Accrues every pay period | Earns a rate each period. The only shape with a cadence. |
| Accrues per hour worked | Earns against hours actually charged. |
| Grants a full year on 1 January | The whole entitlement lands at the start of the calendar year. |
| Grants a full year on the hire anniversary | The whole entitlement lands on the person's own anniversary. |
Pick a granting shape and the How often field disappears. That is deliberate, and it is a guard rather than tidiness: "grants a fixed amount annually" combined with "every semi-monthly pay period" is not a configuration, it is a bug — an 80-hour annual entitlement becomes 1,920 hours a year, and it lands as a positive balance that nothing queries for being too large. Arcvue makes the pair impossible to express rather than merely invalid.
The Hours field relabels itself to match: Hours accrued on an accruing plan, Hours granted each year on a granting one.
Read the plan back in words before you save it
The form has fourteen fields and fourteen fields do not tell you what a plan does. The "This plan will…" box under the form states, in one sentence, what the plan you have just described will actually do — and it updates as you type.
Read that sentence, not the form. It is how you catch a plan that is internally valid and wrong.
Blank is not zero
On Stop accruing at and Carry over at most, leaving the box empty means no limit — it does not mean zero. The placeholders say so. A zero in either box is a real, and very different, instruction.
Part 2 — How to run it
Step 1 — Say what employees see
The What employees see panel sits at the top for a reason: it is the only part of this screen an employee ever encounters.
A tenant runs several PTO plans and several sick plans, and which plan someone is on is an actuarial detail about their accrual rate — not something to show them on a timesheet. So the timesheet picker renders a family word, and this is where you choose it. Each chip shows the word and how many plans hide behind it: "PTO · 3 plans" says at a glance that three variants collapse to one thing an employee reads.
- Click the pencil to rename. Enter saves, Escape cancels.
- "· not confirmed" means nobody has chosen that word yet — it is a default standing in. Confirm it before employees read it.
- An amber line — "N plans have no posting account, so no employee can be offered them" — means those plans are unusable until you set the account under Leave Types. Fix that first; a plan nobody can be offered is not a plan.
Step 2 — Build the plans
Click New plan.
- Plan name — name it for what it is, not for who is on it.
- Leave type — which type this plan accrues.
- How it pays out — one of the four shapes above.
- Hours — the rate, or the annual grant.
- How often — only on the per-period shape.
- Stop accruing at (hours) and Carry over at most (hours) — blank for no limit.
- Waiting period (days) — before accrual starts.
Then the four switches:
| Switch | What it does |
|---|---|
| Prorate for part-time | Scales the accrual by FTE. |
| Pay out on departure | The balance is owed in cash when somebody leaves. |
| This is the SCA version of the plan | Marks the plan as the Service Contract Act variant. |
| Carried on the balance sheet as accrued leave | On by default. Whether the balance is a liability you carry. |
Tenure ladder (optional) takes JSON. When you set one, the ladder decides the rate by length of service and the single Hours value above is not what pays out — this is the field most likely to surprise you later.
Read the This plan will… sentence. Then Create plan.
Step 3 — Assign people, and clear the amber count
Who is on a plan is the section that matters most on any given day, and it has exactly one loud line:
N people on your payroll roster are on no leave plan. Until someone assigns them one, they cannot record PTO or sick leave.
People with no plan sort to the top. Click Assign a plan, pick the plan, set Effective from (defaults to today), and Assign.
The table has four columns:
| Column | What it tells you |
|---|---|
| Person | The employee. Terminated people show struck through. |
| On payroll | Yes, or Not on the roster. This is the discriminator for the two counts below — somebody off the roster is usually a subcontractor. |
| Leave they can record | The plans they hold. None — they cannot record PTO or sick leave in amber is the actionable state; a quiet None on somebody off the roster is correct. |
| Assign | Opens the plan picker and the effective date. |
Two counts, and only the first is a problem:
- On the payroll roster with no plan — amber, and the number to drive to zero. These are employees who cannot record leave.
- Not on the payroll roster with no plan — stated quietly. These are usually subcontractors, who do not accrue leave, so having no plan is the correct state. Assigning them one would be the mistake. Read the list and check only for anyone you believe is genuinely an employee.
Terminated people show struck through and offer no assign action.
The creation form is headed New leave plan, so that heading is how you
tell you are creating one rather than editing an existing plan — the two look
alike once you are typing.
Step 4 — Read and correct balances
The Balances section lists everyone who holds a leave plan with the hours they have available, and it is where a wrong balance gets put right. It is also the on-screen form of the PTO and Sick Leave Balances report: Preview on that card in Accounting → Reports opens this page scrolled to this table, with the same as-of date and departed-staff choice the downloads use.
| Control | What it is for |
|---|---|
| As of | The date the balances are worked out for. A balance is point-in-time, like a bank balance, so it is taken as of a day rather than for a month; blank means today on your company's own clock. Set it back to see what somebody had available on a date you are being asked about. |
| Include people who have left | Adds anyone with a termination date, each shown with the date they left. Off by default, because the roster is what you work from day to day; turn it on to settle a balance that may still be owed at departure. |
| Employee | Everyone on the payroll roster holding at least one plan. Subcontractors are absent and that is correct — they do not accrue leave. |
| Correct | Opens the correction form for that row. Disabled for anyone holding no plan, since there is no balance to correct. |
Each leave family — PTO, Sick Leave and their SCA variants — gets its own column of hours. Several plans can sit in one family and their hours add together in that column, which is why a correction names the individual plan rather than the family.
An empty cell is not a zero. It means the person holds no plan in that family at all, so there was never anything to use. A zero would say they had used everything. The difference matters before you correct anything.
The correction form
| Field | What to enter |
|---|---|
| Which plan | The specific plan this corrects, showing each plan's own balance as it stands. Only plans that person actually holds are offered, so nobody can be granted hours under a plan they were never assigned. |
| Direction | Add hours or Remove hours. Spelled out in words rather than a minus sign, because a correction that goes the wrong way reads as correct afterwards. |
| Hours | How many, as a positive number — Direction carries the sign. Quarter-hour steps. |
| Effective date | The date the correction takes effect, which is not the date you are entering it. |
| Why (required) | The reason. Stored with your name and the time, and it is what anyone reading this balance in a year will use to understand why the number moved. Write the cause, not the action. |
| Record correction | Writes the entry. Disabled until the plan, a positive number of hours and a reason are all present, so a half-filled form cannot move a balance. |
Dating a correction into a month that has already closed is allowed, and is the point. Balances are worked out from the leave ledger rather than stored, so a correction effective in March fixes March and every date after it. Use the date the balance first became wrong — using today instead leaves every report between the two dates wrong.
Nothing is ever overwritten and there is no delete. A correction adds an entry; the original figure and your correction both stay on the record. A mistaken correction is fixed by a second one the other way, and both remain visible — which is what makes the history defensible.
Only the roles that may move hours see the Correct button. Everyone else reads the balances and cannot change them, because an accrued balance is a liability on the books.
Part 3 — When something looks wrong
| Symptom | What it means → what to do |
|---|---|
| A plan's "What it does" reads "Tenure ladder is unreadable — this plan will refuse to accrue." | The stored ladder is not valid JSON. The plan is live and accruing nothing. Anyone assigned to it is silently earning zero. Fix the ladder or retire the plan — this is shown in red rather than as "no ladder" precisely so it cannot hide in a normal-looking row. |
| "The tenure ladder is not valid JSON, so this plan cannot be saved." | Same problem, caught before it ships. Create plan stays disabled until the JSON parses. The required and optional field names are listed under the box. |
| Somebody cannot find their leave type on their timesheet | Either they hold no assignment (check Who is on a plan), or the plan's family has no posting account (the amber line in What employees see). |
| "N plans have no posting account" | Set the account on Leave Types. Until then no employee can be offered those plans. |
| The employee sees a word I did not choose | Nothing has been confirmed for that family — look for "· not confirmed" and rename it. |
| A retired plan is still in the list | Show retired is ticked. Retired plans render struck through and offer no actions. |
| "No active leave plans. Create one to start accruing — an employee on no plan accrues nothing." | Exactly what it says. Nothing accrues for anybody until at least one plan exists and people are assigned to it. |
| Somebody off the payroll roster shows "None" | Correct for a subcontractor. If they are an employee, they are missing from the payroll roster — that is a roster problem, not a leave problem. |
| I changed a plan's rate and balances did not move | Plans are created and retired here, not edited in place. To change how a plan behaves, build the replacement and reassign people to it with an effective date. |
One-line summary
Build the PTO and sick-leave plans your tenant accrues under — four shapes, and a granting plan deliberately has no cadence — choose the single word employees see on a timesheet instead of the plan name, then drive the amber "on the payroll roster and on no plan" count to zero, because an employee on no plan cannot record PTO or sick leave at all.
Related
- Approving and declining time off → Leave Requests (
/accounting/leave-requests) - Leave types and their posting accounts → Leave Types (
/admin, Accounting → Advanced settings → Leave Types) - Recording hours, including leave → Timekeeping
- Pay codes and how leave reaches payroll → Payroll & Pay Codes
- SCA health & welfare, and the SCA plan variant → SCA Health & Welfare (
/accounting/sca-hw)