# Carry-over rules

**For:** Manager | Admin
**You'll need:** A balance-tracking policy.

When a company period closes, leftover balance either rolls into the next period, expires, or some mix of both. Carry-over rules on the policy decide which.

## What it means

Three knobs control what happens at period close:

- **'Carry-over limit'** — the maximum hours that may roll forward. Anything above the limit is dropped. `0` means nothing carries over; leave it blank for "unlimited" (the full leftover balance carries).
- **'Expiry months'** — how long carried-over hours stay valid in the new period. After this many months, any unspent carry-over is wiped by a daily background task (`task_expire_carryovers`). Leave it blank for "no expiry".
- **'Carry-over priority'** — when a request is approved in the new period, do we draw from carry-over first (use-it-or-lose-it) or from the new entitlement first? Drawing from carry-over first is the friendlier default; it keeps the worker from losing hours to expiry.

## When to use which

| Pattern | Limit | Expiry | Why |
|---|---|---|---|
| No carry-over | `0` | — | Use-it-or-lose-it. Common for sick leave caps. |
| Limited carry-over with deadline | `40` | `3` months | Most common vacation pattern in CH/DE. |
| Unlimited carry-over | blank | blank | Generous; balance grows over years. Pair with a sensible **'Max balance'**. |
| Carry-over with expiry, no limit | blank | `6` months | Don't cap, but force usage by mid-year. |

## How it shows in the app

When you close a period from the **'Company periods'** page, {{ app_name }} reads each policy's carry-over rule and writes a signed `CARRY_OVER` row into the {doc}`/manage-leave/leave-transactions/view-the-leave-ledger` for every active person. The new period opens with that balance already in place, alongside its fresh `GRANT` row.

If the policy has an expiry window, {{ app_name }} also schedules an `EXPIRY` row to fire on the deadline. When that day arrives, the daily task posts a negative transaction for any carry-over hours still unused.

```{tip}
The carry-over computation runs once, when you close the source period. If you change a policy's carry-over rule after closing, existing carry-overs aren't recomputed — only future closes pick up the new rule.
```

## Related

- {doc}`aggregation-and-anchors`
- {doc}`/manage-leave/leave-transactions/view-the-leave-ledger`
- {doc}`/set-up-your-company/company-periods/index`
