Task 4: Making intermediate decisions
When selecting a camera, multiple factors influence the decision beyond the basic considerations of budget, subject, and user level. Other criteria include camera color, tilt screen availability, viewfinder presence, or weight limitations.
Each additional factor exponentially increases the number of possible cases in a decision table, resulting in more rows to map scenarios to camera models.
Decision tables can grow exponentially with each condition column added. To manage this complexity, you can break the decision logic into smaller, manageable pieces by identifying intermediate decisions. Intermediate decisions work as follows:
- Intermediate decisions depend on a subset of input data nodes, not all of them.
- The final decision depends on these intermediate decisions rather than all original inputs.
- This reduces the number of dependencies for the final decision.
- Each intermediate decision has its own simplified decision logic
The benefits of breaking the decision logic into smaller, intermediate decisions are the following:
- Reduces the number of cases the final decision must cover.
- Decomposes one large decision table into several smaller tables.
- Each smaller table covers fewer cases due to reduced dependencies.
- Overall logic becomes more maintainable and understandable.
Take the camera example. Instead of having the camera model depend directly on all inputs, you can introduce an intermediate decision for choosing the sensor format.

The suggestion for the camera model goes from depending on the user level, subject, budget, weight limit, and tilt screen to depending on the sensor format, weight limit, and tilt screen. The sensor format depends on the user level, subject, and budget.
This reduces the camera model's dependencies from 5 to 3, significantly simplifying its decision table.
Exercise 1: Creating a basic decision model
You build a decision model for camera selection with the following components:
- Go to the data model and create a new enumeration type
weight limitwith the three following values:250 g,500 g, and1000 g. - Go to the Models tab and create a new decision model. Then:
- Add three input data nodes to the decision model:
- budget of output type
budget - subject of output type
subject - level of output type
level - weight limit of output type
weight limit - tilt screen of output type
Boolean
- budget of output type
- Add a decision node camera model and associate it with the output type
string.Camera models are anonymously named as
m1,m2,m3, and so on. - Draw links between the camera model node and the five input data nodes.
- Add three input data nodes to the decision model:
- Add a decision table to the camera model decision node:
- Click the decision node and open the Logic tab.
- Click Create rule artifact and select Decision table.
- Add the following condition columns:
weight limit,tilt screen,user level,budget, andsubject. - Add an action column
camera model. - Copy row contents from Task 3 into the appropriate columns.
- Duplicate rows for the different weight limits and tilt screen options. It requires six copies of the eight original rows.
Note: For this exercise, leave the decision column empty for simplicity.
- The weight limit is 250 g.
- No tilt screen is required.
- The user level is beginner.
- The budget is high (
>= 1500).

Exercise 2: Introducing an intermediate decision
You simplify the decision model by introducing an intermediate decision for the sensor format:
- Add a decision node sensor format and associate it with the output type
sensor format. - Draw links between the sensor format node and the budget, subject, and level nodes.
- Delete the links between the camera model node and the budget, subject, and level nodes.
- Draw links between the camera model and the sensor format, weight limit, and tilt screen.
- Add a decision table to the sensor format decision node:
- Click the decision node and open the Logic tab.
- Click Create rule artifact and select Decision table.
- Copy row contents from Task 3 into the appropriate columns.
- Add a decision table to the camera model decision node:
- Click the decision node and open the Logic tab.
- Click Create rule artifact and select Decision table.
- Add the following condition columns:
weight limit,tilt screen, andsensor format. - Add an action column
camera. - Add a row for each possible case considering the following constraints:
- No full-frame cameras under 250 g exist. These rows can be omitted as no suggestion is possible.
- Only full-frame cameras are suggested if the weight limit is 1000 g.
m1 camera for:- A weight limit of 250 g
- No tilt screen required
- Micro Four Thirds sensor format

Lessons learned
Decision table rows can grow exponentially with condition columns. In many decision-making problems, breaking large decision tables into smaller ones by using intermediate decisions improves maintainability. However, decomposition is only effective when intermediate decisions break two or more dependencies between input data and the final decision.
The effectiveness of this approach depends on accurate dependency analysis. In the example, we assumed that camera model depends only on sensor format, not on subject, level, or budget. If different APS-C camera models are recommended for beginners versus professionals, this assumption breaks down. Careful analysis of the decision-making problem is essential to identify the correct dependencies.
Limitations
While the example uses only six nodes, real-world problems often involve numerous input data and decision nodes. Diagrams with more than 20 nodes can become difficult to read and understand. The following task presents a method to reduce diagram size and improve readability for complex decision models.