Operationalizing Analytics: Invoking a Decision Service

Blog Post created by michellebrodale@fico.com on Dec 21, 2017

As covered in this blog series, my colleague Lamar set to help managers make informed decisions about employee compensation and promotions. Beginning with a Kaggle dataset of employee data, she created an Employee Attrition Score, decision tree and analytic model-powered strategy.


Of course, running the analysis is one thing – it is what you do after that, ultimately, really counts. In this blog series, I am going to walk you through how to implement the model and strategy into a software system, so managers can actually use the analytic models to make decisions. Before I get into the implementation details, I want to describe what decision services are and how we use them at FICO.


Invoking a Decision Service


This is an exciting time for software developers, who now have myriad low-friction, rapid options for integration and deployment into the cloud, and can benefit from the growing number of platform services available by the cloud vendors. For this project, I used the FICO Decision Management Suite (DMS), which is available on AWS, Amazon’s Cloud Platform (as well as other configurations).


software implimentation.pngI implemented my decision service as an AWS Lambda function, which is auto scaled, meaning the service is available whenever it’s needed – no matter how many people are using it. However, it is not sitting idle when it is unused, so you do not have to pay for the computing resources you do not need.


Many of us are using voice-activated devices, like Amazon Echo or Google Home, to control the lights in our homes, play music, or even order dinner. Imagine if you could access your operationalized decisions just as easily? That is, wouldn’t it be nice if you could just ask “Alexa, what is the attrition risk for employee X?” and then engage in further dialog to help you arrive at the best decision to make to retain your employee? That’s the ease of use I’m aiming for with this implementation.


In DMS, we are exploring the use of Lambda functions for our DMS RESTful web service deployment. Think of a RESTful web service as a process running somewhere in the Cloud that takes data in and spits data out. You are probably using them without even knowing every time you order something on the internet, as most web applications now use RESTful services to get the work done. The decision services built in FICO DMS, and using Lambda functions, help me to make the exact same decision many times in many ways.


When I need a quick response, I build a web application to invoke my RESTful decision service using FICO Application Studio. Managers can build user-friendly web applications quickly and easily using FICO Application Studio to determine the best immediate action.


RESTful services can also be called from other services or applications. For example, suppose I create a RESTful decision service that would automatically compensate my development team after a sale. I can include this RESTful decision service as part of the sales fulfillment process. During the testing phase, I use common open source utilities such as SoapUI and Jmeter, which provide a developer-friendly way to invoke a decision service.


At quarterly performance review time, suppose I want to mail analytically-derived recommendations to all of my managers for their teams; I can drop a file into a secure location that triggers my decision service to be called in Apache Spark for fast batch processing.


FICO decision services can also be executed in any JAVA container if no internet is available.


Deployment is just one aspect of implementing an analytically powered decision service that helps managers make smarter, faster decisions. Stay tuned for my next blog about designing a decision service with FICO DMN Modeler, a powerful and visually intuitive tool for decision modeling. In the meantime, check out our Blaze Advisor and Decision Modeler Community for more information and discussion about decision management and the tools you can use to make it happen.