Aggregation, anchors, ceilings, and accrual#

For: Manager | Admin You’ll need: A policy where you’ve already chosen a tracking mode — see Tracking modes — balance, spell, and unlimited.

A balance policy needs to answer four questions: over what window does the entitlement reset, when does service-year math start, how big is the entitlement (and does it grow with service), and how do hours land in the balance. Here’s what each setting does.

What it means#

Aggregation scope#

The window over which the entitlement is granted and the balance lives. Most companies use the company period (calendar, rolling, or fiscal year — set under Settings → Leave). Some use a rolling 12 months from the anchor so the balance resets on each person’s work-anniversary instead of on Jan 1.

Service-year anchor#

The reference date Shiftavo uses to compute „years of service“ for tier matching and rolling windows. Options are:

  • ‚Hire date‘ — the day the person started.

  • ‚Employment-type start‘ — the day they joined their current employment type.

  • ‚Custom‘ — a date you set per person on the membership.

Which one you pick matters most for tiered policies, because the tier ladder is matched against this number. A senior who switched employment types last week shouldn’t drop to entitlement tier 1 — usually you want ‚Hire date‘.

Ceiling mode — flat vs. tiered#

Flat — every person on this policy gets the same entitlement, set in ‚Flat-ceiling weeks‘. Five weeks for everyone.

Tiered — entitlement steps up at service-year thresholds (min_service_years). Add the rungs of the ladder under How to manage tiers on a leave policy. A common setup: 4 weeks for years 0–4, 5 weeks from year 5, 6 weeks from year 20.

Deduction method — fixed vs. average#

When a request is approved, how many hours come off the balance per booked day?

  • Fixed — a constant value per day (typically the contracted day-length).

  • Average — the rolling average of the person’s worked hours over a recent window. Use this for variable-hour staff so part-timers don’t burn full-day entitlements on a half-day shift.

Accrual method — none, monthly, or hourly#

How does the balance grow during the period?

  • None — full entitlement is granted up front when the period starts (prorated by service date for new joiners).

  • Monthly1/12 of the entitlement on the first of each month.

  • Hourly — entitlement accrues per worked hour, posted when timesheet rows are submitted.

Monthly accrual fires from a daily background task; hourly accrual fires the moment a time entry is submitted. Either way, the row shows up in the How to view the leave ledger as an ACCRUAL transaction.

Entitlement and max balance#

‚Entitlement‘ is the per-period grant (in hours or weeks, depending on the field). ‚Max balance‘ is the ceiling the running balance cannot exceed — accruals that would push it over are silently capped. Set max balance higher than entitlement if you want to allow some overflow from carry-over, or equal if you want a hard cap.

How it shows in the app#

On the policy form, these fields appear under sub-headings as you fill out the basics. The detail page lays them out read-only with the tier ladder if the policy is tiered.

In the ledger, you’ll see the effects: GRANT rows when a period starts, ACCRUAL rows on the schedule above, BOOKING rows on approval, CARRY_OVER rows at period close.