Decisions with Mitigation Criteria

The Decision Management Community ( published an interesting Challenge in Oct-2014. It deals with a quite typical problem when some business rules may be mitigated by other rules.  Here is an OpenRules-based solution that follows the DMN guidelines. The main idea is to use multi-hit decision tables when more specific rules (mitigations) may override more generic rules.

The first rule set states:

Rule # 1:
New Borrowings cannot exceed 30% of Total Assets.
Mitigation Criteria:
If the executive committee flag is set to “Y” and the executive committee exposure override is set to a percentage higher than the new borrowings/total assets ratio then PASS
Otherwise FAIL

It is quite natural to represent it as follows:


Here we assume that initially the Rule 1 is always PASS. If Loan Amount exceeds 30% of Total Assets the Rule 1 is FAIL. However, if the mitigation criteria is true, it is PASS again.

The second rule set states:

Rule # 2:
New Borrowings cannot exceed 1-4 Threshold.
Mitigation Criteria:
The new borrowings is less than the non-repo collateral available for the customer
then PASS
Otherwise FAIL

can be similarly represented by the following multi-hit decision table:


To finalize the Loan Qualification Result, we may simply combine the results of previous decision tables as follows:


Hopefully this multi-hit table is self-explanatory. I don’t think in this case we need a complex decision requirement diagram as the decision itself should simply execute these 3 decision tables and show the results:


You may find the complete implementation in one Excel file “DecisionMitigate.xls“. And you do not have to learn any proprietary GUI. Instead you may simply model your decision directly in Excel. This completes our solution for the challenge.

Below I will explain how we created test cases for the problem and validated execution results.

After creation of the above decision tables with a free use of decision variables in their columns, we used Copy/Paste to create the following Glossary:


The test data was provided to us as below:

Customer #200: ABC Bank

Total Assets = 20,000,000
Executive Committee Flag = “Y”
Executive Committee Exposure Override = 35%
1-4 Threshold = 1,000,000
Non-Repo Collateral = 2,500,000

Customer #500: Bank One

Total Assets = 50,000,000
Executive Committee Flag = “N”
Executive Committee Exposure Override = 0%
1-4 Threshold = 3,000,000
Non-Repo Collateral = 3,250,000

We put it in the following Data tables in Excel:


Using this data we created 4 test cases with expected results:

Mitigate7When we executed these test cases using the standard OpenRules engine, we received the following Executing Results.


About jacobfeldman

CTO at
This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s