There is not one but several representations of prescriptive decision logic. In this blog post, we describe the most used ones, from the simplest to the most sophisticated one.
Decision tables are a tabular representation of decisions. You can think of a decision table as a spreadsheet where rows are decisions and columns are the elements of decisions: inputs/outputs, conditions/conclusions, or conditions/actions.
Decision tables are to be used when all the decisions (rows) have similar conditions (first columns) and similar actions (last columns). They should be used for stable decision logic where changes in the number of conditions are not frequent. Otherwise, they will pose the same difficulty as if the decision logic were mixed in with the code of the rest of the application.
A decision tree is a flowchart representation that graphically resembles an upside-down tree. The root of the tree is a decision that needs to be made. The inner nodes represent tests on attributes. The branches of the tree are further steps that need to be run, and the leaves of the tree are the decisions. Paths from root to a leaf represent a final decision.
Decision trees are more powerful than decision tables because they allow decisions to have different numbers of conditions and actions. They are a better visual representation than decision tables when managing hierarchical decisions. Decision trees are to be used when the decisions share many conditions.
Decision graphs are a generalization of decision trees where the flowchart is not from the root to the leaves. Links of the flowchart can go from one internal node to another at the same level or go up to a node at a higher level.
Decision graphs are more sophisticated than decision trees. They are particularly useful for reflexive decisions, such as in dynamic questionnaires that can backtrack on a question based on information provided by respondents.
Lookup models are similar to VLookup in Excel. They transform a large data spreadsheet into a smaller indexed spreadsheet. Let’s say you import an auto insurance pricing spreadsheet with state, age, gender, score range, and rate columns. Given a value to each of these columns, the lookup model will retrieve the rate that matches these values.
Lookup models are interesting when the tables are very large and really represent a lookup: determining a set of values from another set of values.
With business rules, decisions take the form of “condition(s)-action(s)”. A rules engine iterates through the ruleset and triggers the rules with conditions that are true.
Business rules provide a natural way to express decisions. They can express any imaginable decision logic and symbolic computation, making it the choice for highly sophisticated decisioning applications where the conditions as well as the actions can take a great variety of forms.
Which representation is the best?
No representation is better than the other. That’s why SMARTS supports them all.
With SMARTS, you write your decisions in the form that suits you best. You can build a complete decision flow as a graphical diagram that reflects the actual flow of your transactions and mirrors the steps you get used to. You can display your decisions as a rule set, a decision table, trees, or a decision graph. And if necessary, you can switch from one representation to any other at any time.
Learn more about Decision Management and Sparkling Logic’s SMARTS™ Data-Powered Decision Manager