Skip to content

Setup Considerations: leave types and policies

Leave is configured in two layers: a leave type says what kind of absence something is, and a policy says how much of it people get and who qualifies. Getting the split right before anyone has a balance saves reworking entitlements later.

Decision 1: what belongs to the type, and what belongs to the policy

Section titled “Decision 1: what belongs to the type, and what belongs to the policy”

The two layers answer different questions, and putting a rule on the wrong one is the most common configuration mistake here.

OptionDescription
Leave typeWhat the absence is. Its category, whether documentation is required, whether half-days are allowed, whether the balance can go negative, and any hard limits on a single request.
PolicyHow much is granted, how it accrues, whether it carries over, and which employees it applies to.

The test is whether the rule would change between two groups of employees. If it would, it belongs on a policy. If it is true of the absence itself no matter who takes it, it belongs on the type.

Example: at HC Corp UK Ltd, “requires a medical note beyond a threshold” is a property of sick leave itself, so it sits on the type. “Twenty-eight days a year for full-time staff” is a property of a group, so it sits on a policy.

A leave type’s code cannot be changed once the type exists, because requests already in flight reference it as a string. Codes are lowercase letters, digits, and underscores, starting with a letter.

Choose a scheme before you create the first type. This is the single least reversible decision in leave configuration.

Example: annual_leave and sick_leave read clearly in an export years later. lt_01 does not, and cannot be corrected.

Create a type where the absence is genuinely a different thing — different rules, different reporting, different entitlement. Do not create one for every reason someone might be away.

Every type you create is a policy to maintain, a balance to initialise, and a row in every report. Types you cannot articulate a distinct rule for are better folded together.

Example: HC Corp UK Ltd distinguishes annual leave from sick leave because their rules and reporting differ. It does not create separate types for “holiday” and “vacation”, which are the same thing named twice.

Types supplied as system defaults cannot be deleted. They can be deactivated, and an inactive type is hidden from the request form rather than removed from history.

Decision 4: whether the balance may go negative

Section titled “Decision 4: whether the balance may go negative”

A type can permit requests that would take a balance below zero. That is a policy choice about trust and recovery, not a technical setting.

Allowing it suits an organization that would rather approve a genuine need and reconcile afterwards. Refusing it suits one that wants the system to hold the line so managers are not asked to.

Example: if HC Corp UK Ltd allows negative balances on annual leave, an employee who has used their allocation can still request more and have it approved. If it does not, the request is refused before a manager ever sees it.

Policies can be restricted by minimum tenure, employment type, and gender, and a filter left empty places no constraint. One policy per type is marked as the default, and it applies to anyone matching no other policy.

Always have a default. An employee matching no policy has no entitlement, which surfaces as a missing balance rather than as an obvious error.

Example: HC Corp UK Ltd gives full-time staff a standard annual leave policy as the default, and a longer-tenure policy above a service threshold. Someone matching neither would have no annual leave at all.

A current limitation: grade and department are not yet available as eligibility filters. Eligibility today is set by tenure, employment type, and gender.

DecisionCost of changing later
Leave type codeHighest. It cannot be changed at all once the type exists.
Adding a type after balances existMedium. Balances have to be initialised for it separately.
Eligibility on a live policyMedium. Employees move between policies, and their entitlement moves with them.
Deleting a policyMedium. Existing balances are kept, but the policy stops applying to new requests.
Documentation threshold, limits, half-dayLow. They apply to new requests from the point you change them.
Type name, colour, sort orderLow.

Create your leave types first, then a policy for each. Balances are generated from the active policies, so both layers must exist before anyone has an entitlement to draw on.