Proceeding with the challenges proposed in Decision Management Community to all who use Decision Management technologies, we are going to use Progress Corticon Studio in the search for a solution of Challenge Oct-2014.
Due to the fact that Decision Management Community is an English speaking community, the proposed solution uses English as parent language, but should be emphasized that there is a wide range of BRMS, among themselves Corticon, in which the ability to write rules is provided in different languages, helping business users to understand them (without the need to use the Google Translator).
With this in mind, the first step is the definition of the Object Model, and the Vocabulary that the business user will use to write the business rules. Based on the data of the problem description we define the following objects, each of which have their corresponding attributes:
The next step will be to create a ruleflow to execute rules. In it, we decided to work on the premise that it will always be desirable to evaluate the rules defined, but mitigation criteria will only be evaluated when necessary, i.e. if the borrowing has not been previously granted.
This way, the new borrowing could be passed because the client would satisfy both the conditions of Rule 1 (or mitigation criteria) and the conditions of Rule 2 (or mitigation criteria), or because the client would satisfy only the conditions of one of the rules (or mitigation criteria). And in each case the information that a business user can extract at a later satage ( when reviewing the results of actual executions , in order to be able to make corrections and improvements in the conditions of the rules) will be different.
Once these assumptions are defined, this is our proposal for the Ruleflow (imagen below: “Proposal for Ruleflow”).
Proposal for Ruleflow
And now, with the ruleflow defined, it is time to write the business rules.
In Cortico Studio rules are written inside Rulesheets. A business rule, in any BRMS, is composed of a condition part and an action part, but Corticon also for each Rulesheet, provides the ability to:
- Create specific filters, to reduce data on which to execute the rules discarding those objects that do not meet business needs.
- Create verbalizations in natural language for the conditions and the actions of the rules written in the rulesheet.
- Relate messages that will be shown as part of the excecution of the rules writtten in the rulesheet.
New Borrowings cannot exceed 30% of Total Assets.
We have written the condition of rule 1 in the Rule1.ers rulesheet and we have added a number of messages to it to audit its execution.
Besides, as can be seen in the image bellow, we have created a verbalization which makes the understanding of the rule easier.
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
We have written the rule 1 mitigation criteria in the Mitigation Criteria – Rule 1.ers rulesheet, and, like in the previous case, we have added a number of messages to audit its execution.
Besides that, as we can see in the image bellow, we have created a bervalization which makes the understanding of the rule easier.
In the rules and mitigation criteria that we have written, the only value assigned in the validation exit of the borrowing is (PASS), and so we must make sure to assign a (FAIL) value, in those cases in which nothing has been assigned.
That’s the reason why the rule that validates such possibility is written in the Otherwise.ers rulesheet. Like in the previous cases, a number of messages has been added to audit its execution.
And a verbalization that makes the understanding of the rule easier.
New Borrowings cannot exceed 1-4 Threshold.
we have written the rule2 condition in the Rule2.ers rulesheet, and we have added a number of messages to adit its execution.
Besides, like can be seen in the image bellow, we have created a verbalization that makes the understanding of the rule easier.
The new borrowings is less than the non-repo collateral available for the customer
The rule2 mitigation criteria has been written in the Mitigation Criteria – Rule 2.ers rulesheet, and, like in the previous cases, we have added a number of messages to audit its execution.
Besides, as we can see in the image bellow, we have created a verbalization that makes the understanding of the rule easier.
Once we have written the business rules, we are going to create the rule tests (Ruletest).
Having into account that the data provided in the test for their creation, we will create two independent tests, each one with 10 scenarios in which the only difference will be the amount of borrowings demanded, which will vary between 1000000 and 10000000.
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
Once the tests have been executed, it can be see that, for scenarios from 1 to 5, the borrowing is always accepted through the execution of the Rule 1:
However, from scenerios 6 to 10, the borrowing will never be accepted, and the Otherwise rule will always be executed:
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
once we have executed the tests, it can be seen that, for scenarios from 1 to 2, the borrowing will always be accepted through the execution of Rules 1 and 2.
However, from sceneraios from 3 to 10, even though the borrowing will also be accepted, it will only be validated through the execution of Rule 1:
The business user will notice from the results of the executions that in every case in which Rules 1 or 2 couldn’t be applied, the mitigation criteria couldn’t be applied either, and it would be possible to reach conclussions so that the appropriate actions can be taken.
One of those actions, as can be seen in the image bellow, could be to make modifications on the mitigation criteria to make the validation of the borrowing easier.
With this change, when the rule tests are executed again, it can be seen that those which used to fail have been corrected:
Another measure could be adding new rules to the flow, rules that make tests on other attibutes of the model. The rules would be added to the flow easily, as can be seen in the following image:
Besides, Corticon allows users to modify the model easily, not only allowing to add new attributes on which they can write rules, but also allowing to change the cardinality of the relationships established among its attributes. For example, using the data related to the test scenarios proposed for this problem as a basis, a client will relate only with a new borrowing that he has demanded (and so, this borrowing is the only one that is taken into consideration in the defined rules), but the user could modify the model at any moment to meet other type of scenarios, like, for example, that the client relates with all the borrowings that he has previously demanded, in a way that the rules can take them into consideration when allowing the new borrowing or not. Another scenario could be when several clients demand a borrowing, thus being necessary to validate conditions on each one of them, etc. los que soliciten el nuevo prestamo y por lo tanto se necesiten validar condiciones sobre cada uno de ellos, etc.