# Expense approval routing (DMN) Routing decisions are where DMN pays off, because the answer is a person or a role rather than a number, and the rules change often. --- ## What this example shows * A category input matched against a list. * Amount bands controlling the approval level. * An output naming the approving role. --- ## Columns | **Column** | **Type and meaning** | | ----------------- | ----------------------------------------------- | | Amount (input) | number: claim total | | Category (input) | string: travel, equipment, entertainment, other | | Approver (output) | string: the approving role | --- ## 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. | **Amount** | **Category** | **Approver** | **Annotation** | | ------------- | -------------------- | ------------------ | ------------------------------------- | | < 100 | \- | "line manager" | Auto-approved above receipts check | | \[100..1000) | not("entertainment") | "line manager" | | | \[100..1000) | "entertainment" | "department head" | Policy requires a second pair of eyes | | \[1000..5000) | \- | "department head" | | | \>= 5000 | \- | "finance director" | | --- ## Making it your own * not("entertainment") is a FEEL negation, which saves listing every other category. * Return a role rather than a person, so the table survives people changing jobs. * Add a cost-centre input if approval depends on budget ownership. --- ## Related [Holiday entitlement (DMN)Service length and contract type.](https://help.gocapable.com/diagrams/holiday-entitlement-dmn.html) [Insurance risk score (DMN)Collect, because every matching rule contributes.](https://help.gocapable.com/diagrams/insurance-risk-score-dmn.html) [DMN examplesBack to the rest of these examples.](https://help.gocapable.com/diagrams/dmn-examples.html) --- _The hit policy is the whole decision._