Imagine you are an Airline reservation officer working at the check-in counter for a busy domestic airline. Getting the aircraft off on-time is critical as delays can result in fees applied by the airport controllers, needing to fly at a lower altitude increasing the cost of fuel, and other penalties.
A message from the supervisor appears on your screen saying that the economy cabin is overbooked; you will need to upgrade some passengers to Business or First Class — but which passengers should be chosen and which cabin should they be upgraded to? A decision needs to be made but what factors should be considered? This can be recorded in a Decision Model using a Decision Requirements diagram.
This is helpful but the busy check-in officer would still need to weigh up all the factors and make an unbiased decision. Should a disgruntled passenger be given priority over a Gold level frequent flyer, or should the fact that a particular passenger is connecting to an international flight take precedence. These 'rules' can all be recorded in a Decision Table, making it clear which passengers should get an upgrade and to which cabin: Business or First Class. This will make it much easier to make the decision and the rules can be formulated, agreed upon and checked for consistency back at head office. In this example we have kept it simple and used two factors: firstly the number of flights the passenger has made in the last month and secondly how overbooked the cabin is.
The table is divided into columns and rows. There are three types of column: inputs that are required to make the decision, outputs that are the result of applying the rules, and annotations.
This is again very helpful but still requires the busy check-in officer to be able to source all the required information required to find the right row in the Decision Table. Even if all this information were available, a wrong decision could still result from human error in selecting the wrong row in the table.
Fortunately the Decision Models can be automated and generated to programming code that can be executed by an application. So our busy check-in officer would not need to do anything or make any decisions; as he or she was checking in the passengers, if a particular passenger was entitled to an upgrade it would be visible on the computer screen. In the next diagram the model has been simulated so that the business and technical staff can agree that the model has been defined correctly. Any number of user-defined data sets can be used to test the model before generating the programming code that will run in the check-in system and display the result to the end user.
When developing the models a business or technical user can step through the simulation and the system will show that user which row in the Decision Table was fired to determine the output. This is very useful in models that are made up of multiple decisions.
It is common for the rules that govern the upgrade decision to change. For example, the Marketing Department might decide they want to reward passengers that travel on long-haul flights. The Decision Requirements diagram can be altered to include the new input, the Decision Table modified, and the programming code regenerated. Once the changes have been pushed through to the airport systems, the right passengers will be automatically upgraded. The check-in officer could still view the Decision Tables during a training and briefing session to understand the rules.