You are here:
Numeric Ranges in Decision Matrices
Use numeric ranges to keep matrices with sizable data small. With number ranges, you can concisely specify a range of acceptable values in a matrix column instead of listing individual values.
Required Editions
| Available in: Lightning Experience |
| Available in: Enterprise, Unlimited, and Developer Editions for clouds that have Business Rules Engine enabled |
The number of rows in a decision matrix that uses a range column is determined by multiplying the number of unique values in the range column and the other input columns. For example, a decision matrix has these input columns: one number range column, and one text column. The number range column has three unique values and the text column has two unique values. For the matrix to include all combinations for these values, the matrix has six rows.
A city’s public administration office wants to define base fare for local public transport based on a citizen’s age and gender. Here’s how the office can set up the age criteria, gender, and the corresponding base fare by using a number range column to concisely capture the age values.
| Input Data | Output Data | |
|---|---|---|
| Age (Number Range) | Gender (Text) | Base_Fare (Currency) |
| 0 | Female | $0 |
| 0 | Male | $0 |
| 10 | Female | $0.75 |
| 10 | Male | $0.75 |
| 18 | Female | $2.5 |
| 18 | Male | $3 |
| 55 | Female | $1.5 |
| 55 | Male | $2 |
| 65 | Female | $0.75 |
| 65 | Male | $1 |
The Age column is a number range. Each value in the Age column defines the start of a range. Each subsequent value represents the start of a new range, and therefore is excluded from the previous range. The column represents these ranges:
- From 0 through 9.99
- From 10 through 17.99
- From 18 through 54.99
- From 55 through 64.99
- 65 or above
According to the input condition in the matrix, here’s the base fare for citizens with these ages and genders:
- Age 9, Female: $0
- Age 10, Male: $0.75
- Age 44.5, Female: $2.5
- Age 56, Male: $2
- Age 65, Male: $1
- Age 70, Female: $0.75
If the city’s public administration office wants to keep the same base fare for all females below 18, here's how they can set up their input and output data.
| Input Data | Output Data | |
|---|---|---|
| Age (Number Range) | Gender (Text) | Base_Fare (Currency) |
| 0 | Female | $0 |
| 0 | Male | $0 |
| 10 | Male | $0.75 |
| 18 | Female | $2.5 |
| 18 | Male | $3 |
| 55 | Female | $1.5 |
| 55 | Male | $2 |
| 65 | Female | $0.75 |
| 65 | Male | $1 |
According to the input condition in this matrix, here’s the base fare for citizens with these ages and genders:
- Age 9, Female: $0
- Age 10, Male: $0.75
- Age 12, Female: $0
- Age 19, Female: $2.5
- Age 56, Male: $2
- Age 65, Male: $1
- Age 70, Female: $0.75
This example highlights invalid data in the number range column:
| Gender (Input) | Age (Input) | Discount (Output) |
|---|---|---|
| Male | 0 | 5 |
| Male | 15 | 10 |
| Male | 100 | 20 |
| Female | 0 | 6 |
| Female | 20 | 12 |
| Female | 100 | 24 |
The values shown in the table is not allowed because it attempts to define different sets of numeric ranges for the "Age" column based on the "Gender" column (e.g., Age ranges for Male: [0-14.99, 15-99.99, 100+], versus Age ranges for Female: [0-19.99, 20-99.99, 100+]). This may create ambiguous and unpredictable lookup results, as the range boundaries would shift based on other input values.

