- Project type
- Portfolio project
- Dataset
- Synthetic dataset
- Dataset provenance
- A synthetic weekly e-commerce marketing dataset (January 2023 to December 2024) created for modelling and budget-optimisation practice.
- Client status
- Demonstration analysis; does not represent a PA Data Analytics client.
View the data behind this chart
| Month | Actual revenue | Model-fitted revenue |
|---|---|---|
| 2023-01 | $780,659 | $777,940 |
| 2023-02 | $756,909 | $756,338 |
| 2023-03 | $724,723 | $728,051 |
| 2023-04 | $705,401 | $705,156 |
| 2023-05 | $945,021 | $952,083 |
| 2023-06 | $752,169 | $730,920 |
| 2023-07 | $873,979 | $891,547 |
| 2023-08 | $791,576 | $790,158 |
| 2023-09 | $729,243 | $724,518 |
| 2023-10 | $894,399 | $913,645 |
| 2023-11 | $933,780 | $924,618 |
| 2023-12 | $948,259 | $952,040 |
| 2024-01 | $846,935 | $858,917 |
| 2024-02 | $794,305 | $805,714 |
| 2024-03 | $766,408 | $763,647 |
| 2024-04 | $948,479 | $936,672 |
| 2024-05 | $789,934 | $797,669 |
| 2024-06 | $787,235 | $784,789 |
| 2024-07 | $928,345 | $942,926 |
| 2024-08 | $826,781 | $803,061 |
| 2024-09 | $963,461 | $963,277 |
| 2024-10 | $752,190 | $763,546 |
| 2024-11 | $978,515 | $975,435 |
| 2024-12 | $1,004,106 | $980,147 |
01Business question
When most of a marketing budget goes to one channel, is that because the channel earns it, or because of habit? In this dataset, Paid Search received 54% of paid spend (about $10,281 a week) and Email 4.5% (about $855 a week). This project asks whether each channel's estimated contribution to revenue supports that split.
02Dataset & context
Dataset: Synthetic / Demonstration Dataset. This portfolio analysis uses a synthetic weekly marketing dataset covering 104 weeks from January 2023 to December 2024. The dataset contains weekly revenue and marketing spend across four paid channels (about $19,049 a week in total) and was created for modelling and budget-optimisation practice. It does not represent a PA Data Analytics client.
03Approach
Marketing mix modelling works from aggregated weekly data rather than user-level tracking. It estimates how much revenue each channel contributes, allowing for delayed and diminishing effects, and can then be used to search for a better allocation of the same total budget.
04Methodology
- Adstock transformation to capture the carry-over effect of spend into later weeks. Decay rates are assumptions based on typical channel behaviour, not measured values.
- Seasonality terms and event dummies, including a January indicator.
- Saturation (Hill) curves to model diminishing returns as spend increases.
- OLS regression with full diagnostics, and Ridge regression to handle correlated channels.
- Channel contribution decomposition and ROAS per channel.
- Constrained optimisation (SciPy SLSQP) holding total weekly spend constant.
05Modelling & analysis
The model explained most of the week-to-week variation in the dataset's revenue (R² = 0.957). This is an in-sample fit and is not a measure of forecast accuracy.
Out-of-sample performance: 5-fold cross-validated R² = 0.761 (± 0.144). Standard k-fold validation is not chronological, so a time-series validation would be a stricter test. The model's budget recommendations should therefore be treated as directional.
Model output: in this dataset, Email had a modelled ROAS of 44.10x on a relatively small budget, compared with 3.00x for Paid Search. A high modelled ROAS on a small budget does not necessarily mean returns will stay at the same level as spend increases. The budget-reallocation analysis therefore uses saturation curves and allocation constraints rather than simply shifting spend towards the channel with the highest ROAS. Paid Search's effect was also not statistically significant in the OLS model (p = 0.107), so its ROAS estimate is less certain than the others.
Dataset finding: the model estimated an average January effect of approximately −$14,760 per week (p < 0.0001), applied across the January weeks of both years in the dataset.
06Results within the dataset
Model projection. Applying the optimised allocation to the same weekly budget, the model projects weekly revenue rising from about $104,474 to $113,346 (+$8,871, or 8.5%), roughly $461,310 a year, with no increase in total spend. This is a projection from the model on synthetic data, not a result achieved by any business.
07What this analysis demonstrates
How marketing mix modelling can test whether a budget split matches each channel's estimated contribution, how saturation changes the answer compared with ranking channels by ROAS, and how a recurring seasonal pattern such as a January dip can be quantified. It also shows why in-sample fit should be reported alongside out-of-sample performance.
08How a business could use this analysis
- Check whether the current budget split is supported by evidence.
- Move budget in stages and measure the effect, rather than applying a model's allocation all at once.
- Validate channel effects and adstock assumptions with incrementality or geo tests.
- Plan around predictable seasonal dips, for example by shifting to retention activity.
09Related service
This project demonstrates methods used in our marketing analytics services.
10Apply this to your data
If you are facing a similar question, we can look at what your data can support and what a useful answer would look like.