Holiday entitlement (DMN)

Entitlement calculations are exactly the sort of rule that lives in a policy document and gets applied inconsistently. A table fixes that.


#What this example shows

  • Service length as a numeric range.

  • A contract type input constraining which rules apply.

  • An output in days, pro-rated in the annotation.


#Columns

Column

Type and meaning

Years of service (input)

number: complete years

Contract (input)

string: permanent or fixed-term

Entitlement days (output)

number: annual entitlement


#The decision table

Hit policy: U (Unique). Cells are FEEL expressions, so a range, a list or a negation is a legal value; a dash means the input is irrelevant to that rule.

Years

Contract

Days

Annotation

< 1

"permanent"

25

Pro-rated from start date

[1..3)

"permanent"

25

[3..5)

"permanent"

27

[5..10)

"permanent"

29

>= 10

"permanent"

32

Capped at 32

-

"fixed-term"

25

Always pro-rated by contract length


#Making it your own

  • Pro-rating belongs in a literal expression, not in this table. Keep the two separate.

  • Add a part-time input if entitlement scales with hours.

  • Note the statutory minimum somewhere; the table should never fall below it.



The hit policy is the whole decision.