facebookexperimental / Robyn

Robyn is an experimental, AI/ML-powered and open sourced Marketing Mix Modeling (MMM) package from Meta Marketing Science. Our mission is to democratise modeling knowledge, inspire the industry through innovation, reduce human bias in the modeling process & build a strong open source marketing science community.
https://facebookexperimental.github.io/Robyn/
MIT License
1.07k stars 323 forks source link

Can we optimize budget allocation based on KPIs (Key Performance Indicators)? Additionally, I'd like to understand how the mean value is calculated in the budget allocator code. #975

Closed amanrai2508 closed 1 month ago

amanrai2508 commented 1 month ago

Project Robyn

Describe issue

Hi @all I wanted to know :

  1. Can we optimize budget allocation based on KPIs (Key Performance Indicators)?
  2. Additionally, I'd like to understand how the mean value is calculated in the budget allocator code. (Can someone refer me to the code ?)
gufengzhou commented 1 month ago
  1. The allocator needs a metric to optimise towards. So yes, it always miximises the dependent variable, whatever you're modeling. Not sure if this is what you're asking.
  2. Do you mean "mean spend"? then Here, it's the mean spend of a period you set as date_range. Mean response is the response of mean spend on a given saturation curve, see here.
amanrai2508 commented 1 month ago

Thanks for the reply @gufengzhou . For the 1st question : So currently we are sending total_budget (max response) scenario and we are getting the optimized revenue against that. I am asking is there a way that we can pass target KPI (Use Case : Let's say we are targeting for 2 million usd of revenue for the next quarter) and for that we want the amount of spend (optimized) that will help us to get that revenue.

gufengzhou commented 1 month ago

At the moment, you can just adapt the total_budget and try out what spend brings you closer to your target revenue. We're not offering the mentioned capability yet, because it's a different optimisation objective --> it'd be minimising the spend given a target, instead of maximising the target, given a spend. It's not super trivial to do.