Skip to main content
Showing results for 
Search instead for 
Did you mean: 

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started


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.