Showing results for 
Search instead for 
Did you mean: 

Cost-Benefit Analysis using machine learning in Power BI

Imagine you are the owner of a local restaurant and you’ve had modest success with a marketing coupon campaign in the past. You sent out some coupons through the local mail and ended up noticing an uptick in business over the next few weeks. Now you’re wondering which customers you should target next. Additionally, you’d like to know if there’s anything you can do to analyze the coupon campaign with the goal of maximizing benefits and revenue while minimizing costs. Cost-benefit analysis, further referred to as CBA, is one such analytical tool. Now when building binary prediction models using AutoML in Power BI, the resulting report allows you to use CBA with your data.


To get started building a binary prediction model in Power BI, you can refer to this post. Prior to building a model you will need historical data representing a past campaign. Once your data is ready, the historical outcome field you choose to predict should at the very least, for every row of your data, describe either a successful outcome, or one or more unsuccessful outcomes. A final item to consider for your machine learning model is that the target for prediction will need to be the successful outcome. Taking the restaurant’s coupon campaign as an example, a successful outcome could be a coupon sent out to a customer that then visits and purchases a meal.




After building a binary prediction model, the resulting Power BI report will have a CBA report, pictured above. A binary prediction model will produce probabilities between zero and one for each customer. The higher the probability, the higher chance of a successful result. A question this report can help answer is which customers should be sent a coupon. Answering this question is achieved by modifying three parameters for your potential campaign. The following examples will have the context of a coupon campaign:


  1. Population size: The number of addresses to receive a coupon.
  2. Unit cost: The cost to your business to both send out and honor a single coupon.
  3. Unit benefit: The benefit gained from a single coupon if someone ends up coming in and making a purchase with it.

While modifying these values, it is important to consider the total budget of your campaign and make sure that the combination of population size and cost don’t exceed that budget. Additionally, the units for cost and benefit are arbitrary, and can represent any sort of currency. Moreover, you might be in the phase of customer acquisition where benefit is not quantitative. In that case you can use CBA for modeling budget.


When the binary prediction model built using AutoML in Power BI is applied to new data, you get a percentage threshold from zero to one hundred percent for every row of your data. In the case of a restaurant’s coupon campaign, this would indicate how likely it is a customer with a particular set of characteristics would end up coming in to the restaurant and making a purchase. Based on your data, this customer would have a set of known characteristics, such as location. Let’s say the model suggests a minimum threshold of 25% for maximizing profit. Each row of your data may represent a single customer. In this case, each row that at minimum indicates a 25% threshold for a successful outcome is worth pursuing.




All the calculations for CBA are performed using DAX in Power BI, which means the formulas can be customized to suit your business needs. Once you have a binary prediction model ready to go, feel free to download the Power BI report and configure it however you like. As you get started on CBA, the last hint I’ll leave you with is that a successful campaign will have a unit cost that does not exceed the unit benefit. Here are some tips and tricks to modify the training report.


Thanks for sharing!

This all makes perfect sense, except for the local restaurant requires a premium power bi licence to enable such modelling, which I would image would negate the CBA benefits of this type of analysis. Plenty of businesses would benefit from this type of analysis on a pro license or at least a mid-teir license that sits between pro and premium.

Hi @tmckenzie 


I understand the point. Just fyi, this would work on an A2 capacity provisioned from here in case this works.


You can pause or turn off capacity when done. That ways you pay for only the time you did the training and scoring





@YasinShtiui  thanks for sharing this, it is indeed interesting and easy to deploy.

However, Auto ML requires a premium capacity or a power bi embedded license, which are expensive. 

In most cases, advanced analytics doesn't require that much capacity, so it shouldn't be expensive. You may deploy it using R instead and do clustering, regression, classification, etc.