MMMSummaryFactory.roas#

MMMSummaryFactory.roas(hdi_probs=None, frequency=None, output_format=None)[source]#

Create ROAS (Return on Ad Spend) summary DataFrame.

Computes ROAS = contribution / spend for each channel with mean, median, and HDI bounds.

Parameters:
hdi_probssequence of float, optional

HDI probability levels (default: uses factory default)

frequency{“original”, “weekly”, “monthly”, “quarterly”, “yearly”, “all_time”}, optional

Time aggregation period (default: None, no aggregation)

output_format{“pandas”, “polars”}, optional

Output DataFrame format (default: uses factory default)

Returns:
pd.DataFrame or pl.DataFrame

Summary DataFrame with columns:

  • date: Time index

  • channel: Channel name

  • mean: Mean ROAS

  • median: Median ROAS

  • abs_error_{prob}_lower: HDI lower bound for each prob

  • abs_error_{prob}_upper: HDI upper bound for each prob

Examples

>>> df = mmm.summary.roas()
>>> df = mmm.summary.roas(frequency="monthly")
>>> df = mmm.summary.roas(hdi_probs=[0.80, 0.94])