Suppose you want to compute a budget optimization for \(N_M\) media channels for a set of regions \(G\) and time interval \([t_0,t_1]\). Consider any budget vector \(b=(b_1,\ldots b_{N_M})\) where \(b_i \geq 0\) denotes the total budget allocated to channel \(i\) over these regions and time periods. Let \(c_i=\sum\limits_{g \in G} \sum\limits_{t=t_0}^{t_1}\ \ddot{x}^{[M]}_{g,t,i} u_{g,t,i}^{[M]}\) be the actual historical budget for each channel \(i\) over the optimization regions and time periods. To obtain the media units for each geo and time period under the budget vector \(b\), you scale each channel's historical media units by the ratio \(\frac{b_i}{c_i}\).
Accordingly, you define the raw media units under a given budget vector \(b\) as:
\( \ddot{x}_{g,t,i}^{[b]} = \dfrac{\ddot{x}^{[M]}_{g,t,i}b_i }{c_i}\) for \(t \in [t_0-L,t_1] \)
and the corresponding transformed media units as:
\( x_{g,t,m}^{[b]} = L_{g,i}^{[M]}\left( \ddot{x}_{g,t,i}^{[b]} \right) = \dfrac{x_{g,t,i}b_i}{c_i} \)
The media units are scaled for all time periods, including time periods prior to \(t_0\). The budget \(C\) corresponds to the time interval \([t_0,t_1],\) and this scenario captures the expected outcome generated during the same interval \([t_0,t_1]\). This includes outcome driven by media executed prior to \(t_0\), but excludes the lagged effect of media beyond \(t_1\). As such, the expected outcome does not exactly correspond to the budget but it should be similar if the time interval is long, or if the media execution during \([t_0-L,t_0-1]\) is similar to the media execution during \([t_1+1,t_1+L]\).
There are advantages and disadvantages to this definition,
but an advantage is that the expected outcome doesn't depend on future media
execution beyond \(t_1\), which might be unknown. This is particularly an
issue when hill_before_adstock=False
, where the media execution after
\(t_1\) can alter the lagged effect of media executed during
\([t_1+1,t_1+L]\).
Fixed budget optimization
Consider a fixed budget optimization with total budget \(C\). Define the set of all budget vectors with this total budget as \( B_C = \left\{ b: \sum\limits_{i=1}^{N_M} b_i=C \right\} \). The quantity being optimized is expected outcome, defined as follows:
The true parameter values are unknown. Because Meridian is a Bayesian model, the expected outcome has a posterior distribution. The objective function of the budget optimization is chosen to be the posterior mean of the expected outcome, which is equivalent to the mean of the posterior predictive outcome distribution. The optimal budget vector is defined as:
Where:
- \(J\) is the total number of Markov Chain Monte Carlo (MCMC) posterior draws.
- The \(j\)th posterior draw of each parameter is denoted with the superscript \(^{(j)}\).
Flexible budget optimization
For flexible budget optimization, the expected outcome is optimized while allowing the total budget to vary. The optimization is constrained on either the minimal marginal ROI or the target ROI constraints.
Target ROI constraint
When the target ROI is specified, Meridian searched over all budget vectors \(b=(b_1,\ldots ,b_{N_M})\) such that the total ROI \(\text{ROI} \geq \text{ROI}_{target}\ \forall m\), while allowing the total budget \(\sum\limits_{i=1}^{N_M} b_i\) to vary. The optimal budget vector is defined as follows:
\( s.t.\ \dfrac{\sum\limits_{i=1}^{N_M} \text{ExpectedOutcome}_i}{ \sum\limits_{i=1}^{N_M} b_i } > \text{ROI}_{target} \)
Where the target ROI constraint is applied at the total marketing ROI level, and not at channel level.
Minimal mROI constraint
When the minimal marginal ROI is specified, Meridian searches over all budget vectors \(b=(b_1,\dots,b_{N_M})\) such that the marginal ROI \(\text{mROI}_i \geq \text{mROI}_{minimal}\ \forall i\), while allowing the total budget \(\sum\limits_{i=1}^{N_M} b_i\) to vary. The optimal budget vector is defined as follows:
\( s.t.\ \text{mROI}_i(b_i) > \text{mROI}_{minimal}\ \forall i \)
Where the minimal mROI is applied at channel level, and not at the total marketing level.
Channel-level spend constraints
Channel-level spend constraints are available for both fixed and flexible budget optimization to prevent unreasonable optimization outcomes, such as putting all spend into one single channel. The channel-level spend constraint is defined as:
Where:
- \(b_i^{'}\) is the non-optimized spend for channel \(i\).
- \(LB_i\) is the user-specified lower bound with the value between \(0\) and \(1\).
- \(UB_i\) is the user-specified upper bound with the value greater than \(1\).