Why-Analyzer for Business Decision Modeling

“Imagine you had a Why Button handy whenever you encountered some disconnect in day-to-day business operations.
Hit the Why Button and presto - answers appear in the form of relevant business rules.” - Ron Ross

OpenRules® Why-Analyzer provides a "Why Button" requested by Ron Ross. It works with decision models built in accordance with the DMN standard. It's much more than just a button but rather a graphical interface that allows business analysts to analyze the results produced by their decision models. You may try Why-Analyzer online from http://openjvm.jvmhost.net/WhyAnalyzer and watch video


"WHY-button" Graphical Interface 

Why-Analyzer is a stand-alone web application that provides a user friendly interface to analyze behavior of OpenRules® decision models  built in accordance with the DMN standard. Its main purpose is to answer to the question "Why did the selected decision model produce a particular outcome?" by showing the executed rules and related decision variables.

Why-Analyzer may download a DMN-based decision model, select a test case and execute the decision model. It presents graphically all decision variables and actually executed business rules. For example, WHY-Analyzer for the decision model “Loan Origination” described in the Chapter 11 of the DMN standard is shown on the picture below:

Top of Page

Selecting Decision Model

A user may select a decision model from the list of decision models already added to the Why-Analyzer:


You always may add more decision models to this list as specified in the files Main.xls - see the User Manual. 

Selecting Test Cases

Then a user may select a test case from the list of test cases for the selected decision model:


These test cases are described in the Excel table "testCases" - see Data.xls file for this model. Right after a test case is selected, the decision model will be immediately executed by the OpenRules Engine against this test case and the results will be shown in three tables "Decision Variable" , "Executed Business Rules", and "Execution Protocol".

Showing Decision Variables with Values 

The execution results will be shown in the table "Decision Variables" on the left.  All decision variables are categorized by the business concepts as specified by the decision model designer in its Glossary. You may hide or show the variables under every business concept by clicking on the buttons "+" or "-". For instance, on the picture above only Internal Variables are shown (all other variable are hidden).

Showing Executed Business Rules 

After the execution ALL actually executed business rules are shown on the table "Executed Business Rules" on the right. While the decision model may have much more business rules (your may see all rules by clicking on the hyperlink "Original Rules"), only actually executed rules are shown in this table.

For large decision models even this table may include too many rules that makes it difficult to understand WHY certain decision variables were assigned with some values like on the following view:

In this case, a user may click on the button "?" on the right of these variables. For example, on the initial WHY-Analyzer's view above, a user clicked on the button "?" next to the variable "Credit Contingence Factor", so only the rules in which this variables was involved were shown:

- use this "big" WHY-button to show again ALL executed rules.

                                                                         Top of Page

Showing Execution Protocol 

During the decision model execution OpenRules Engine always produces an execution protocol that shows each its actions ALL in the execution order. Here is an example of the complete protocol for a simple decision model "DecisionHello":

The Execution Protocol would be used as a last resort. If a user still needs more explanations about the execution results, s/he may always find more details in this protocol. A user may click on "+"/"-" buttons to Show/Hide the protocol.

Execution Reports in HTML

OpenRules® also provides an ability to generate decision execution reports in the HTML-format. To generate an execution report, you should add the following setting to the decision’s Java launcher:

decision.put("report", "On");

before calling decision.execute(). By default, execution reports are not generated.

OpenRules® automatically creates a sub-directory “report” in your main project directory and places several html-files (one per decision table) inside this sub-directory. 

Top of Page

Availability on Cloud and on Premises

You may try Why-Analyzer with a predefined set of decision models online without any installation. To run Why-Analyzer from our remote server, please click on


You may select and run all available decision models without any downloads. If you want to install Why-Analyzer locally, it is available as a part of the standard complete installation as a separate workspace "openrules.analyzer". You may deploy this project on your own Apache Tomcat server by simply running “deploy.bat”. Make sure that you already have "openrules.forms.lib" deployed on the same server - otherwise click-on openrules.forms.lib/deploy.bat. Then you may start a web application “WhyAnalyzer” with you own browser using “run.html”.  

Adding Your Own Decision Models

You may add your own decision model to the local version of the Why-Analyzer. To do that you should add a folder with your decision model to the folder “war/DecisionModels/” and properly modify the file  "war/GUI/Main.xls". Your own model should be organized similarly to already included decision models. The table "testCases" is mandatory.

Decision Analysis Services

OpenRules, Inc. provides professional services to assist customers in the development, analysis, and optimization of their decision models. We may help you to customize the Why-Analyzer for you particular needs by modifying its graphical interface and providing an integration with your specific decision modeling and execution environments. If you are interested, please contact us at consulting@openrules.com.

Top of Page