Skip to main content

Decision Table

A Decision Table is the most common boxed expression in DMN. It represents a rules engine where inputs are matched against rules to determine an output.

Structure

  1. Hit Policy: Determines how many rules can match and how the result is aggregated.
  2. Input Clauses: The columns defining conditions (e.g., Age, Risk Level).
  3. Output Clauses: The columns defining results (e.g., Approved, Interest Rate).
  4. Rules: The rows containing input entries (unary tests) and output entries (expressions).

Hit Policies

CodeNameDescription
UUniqueOverlap is forbidden. Only one rule can match.
AAnyRules may overlap, but matching rules must produce the same output.
PPriorityRules may overlap. The output is selected based on the priority of the output values.
FFirstRules are evaluated top-to-down. The first match wins.
CCollectAll matching rules returned (as a list).
C+Collect (Sum)Returns sum of outputs.
C<Collect (Min)Returns minimum output.
C>Collect (Max)Returns maximum output.
RRule OrderReturns list of matches in rule order.

Example

UAgeCredit ScoreLoan Approved
1< 18-false
2>= 18> 700true
3>= 18<= 700false