Shipping cost (DMN)

Shipping rules are the textbook decision table: two inputs, banded values, and a result that must be exactly right.


#What this example shows

  • Numeric bands expressed as FEEL ranges.

  • A list value, matching several destinations in one rule.

  • An annotation column carrying the reasoning.


#Columns

Column

Type and meaning

Zone (input)

string: domestic, eu or rest

Weight kg (input)

number: parcel weight

Cost (output)

number: shipping charge


#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.

Zone

Weight kg

Cost

Annotation

"domestic"

<= 1

3.95

Letter rate

"domestic"

(1..5]

6.50

"domestic"

> 5

11.00

Courier

"eu"

<= 1

8.95

"eu"

(1..5]

14.50

"eu"

> 5

24.00

"rest"

<= 1

12.95

"rest"

(1..5]

22.50

"rest"

> 5

39.00

Quote on request above 20kg


#Making it your own

  • Note the bracket style: (1..5] is over 1 and up to 5, which avoids gaps and overlaps.

  • Add a dimensional weight input if volume matters as much as mass.

  • Keep the annotation column; it is where the reasoning lives.



The hit policy is the whole decision.