AWS Backend for Marketing Mix Modeling
Budget: $1,500 – $3,000 USD
Marketing Mix Modeling (MMM) Automation Backend on AWS (multi-client, any channel)
Objective
Build a config-driven MMM engine that works for any client and any marketing channel mix, runs in automation on AWS, and produces a consistent set of standardized outputs for downstream analytics and budget planning.
Key Requirements
Cloud & Packaging (AWS): Runs on AWS (Batch/SageMaker Processing/ECS/EKS). Containerized. Artifacts to S3. Logs/metrics to CloudWatch.
Multi-Client, Channel-Agnostic: No code changes per client; use configuration to map arbitrary channel names and calendars/currencies.
Data Inputs (canonical schemas): daily/weekly spend, sales/outcome, price, promo, optional reach_freq, search_query_volume, distribution, macro.
Data Contracts & Validation: Enforce schema/grain/range/null checks with clear errors before modeling.
Feature Engineering: Carryover/adstock windows, seasonality/holiday features, calendar/fiscal handling, currency normalization.
Modeling (MMM): Per-channel adstock/carryover and saturation/shape (Hill/logistic; monotone alternative acceptable); controls for price/promo/distribution/seasonality/macro; optional hierarchical pooling (brand/region). Bayesian preferred (with uncertainty); provide frequentist baseline for comparison. Spec search/model selection across adstock/shape families.
Diagnostics & Selection: Out-of-sample tests (time splits), residual checks (ACF), convergence stats, WAIC/LOO (or BIC/AIC) ranking.
Calibration (optional): Integrate lift/geo experiments to calibrate channel effects when available.
Budget Optimization & What-If: Constrained optimizer (budget, min/max, lockouts, pacing) with risk-aware option using parameter uncertainty; fast scenario simulator.
Standardized Outputs (must have):
model/meta (metadata: window, granularity, channels, spec, seed, runtime),
model/parameters (adstock half-life/lag, shape params, controls, posterior stats),
curves/response_curves (spend→KPI with intervals; marginal & average ROAS),
metrics/elasticities_roas (at current spend; recommended spend if optimized),
decomp/contribution_by_period (driver contributions that reconcile to KPI),
optimizer/recommendation (+ config used),
whatif/scenario_*,
diagnostics (fit/forecast metrics, residuals, convergence),
calibration_report (if experiments exist),
compare_models (spec ranking).
Primary format Parquet; JSON for metadata. Stable field names across clients.
Security/Privacy Modes:
Standard mode (data stored in our lake permitted).
Zero-retention mode: read/process/train on client data sources without storing client data; only model parameters/curves leave; no raw values in logs.
Integration with Ingest: Compatible with Fivetran (and other pipelines) outputs; engine assumes data is already landed/queriable.
Performance Targets: Train on ~2 years daily, 12–20 channels within agreed time on a standard AWS instance; reproducible with seeds.
Observability: Structured logs (no raw data), run status/metrics, basic drift signals.
Documentation: Brief setup/config guide, output schema reference, and modeling notes (1–2 pages each).
Acceptance Criteria: Config-only client onboarding; standardized outputs produced end-to-end; optimizer returns feasible plans respecting constraints; diagnostics and model selection included; reproducible results with same inputs/seed.
Objective
Build a config-driven MMM engine that works for any client and any marketing channel mix, runs in automation on AWS, and produces a consistent set of standardized outputs for downstream analytics and budget planning.
Key Requirements
Cloud & Packaging (AWS): Runs on AWS (Batch/SageMaker Processing/ECS/EKS). Containerized. Artifacts to S3. Logs/metrics to CloudWatch.
Multi-Client, Channel-Agnostic: No code changes per client; use configuration to map arbitrary channel names and calendars/currencies.
Data Inputs (canonical schemas): daily/weekly spend, sales/outcome, price, promo, optional reach_freq, search_query_volume, distribution, macro.
Data Contracts & Validation: Enforce schema/grain/range/null checks with clear errors before modeling.
Feature Engineering: Carryover/adstock windows, seasonality/holiday features, calendar/fiscal handling, currency normalization.
Modeling (MMM): Per-channel adstock/carryover and saturation/shape (Hill/logistic; monotone alternative acceptable); controls for price/promo/distribution/seasonality/macro; optional hierarchical pooling (brand/region). Bayesian preferred (with uncertainty); provide frequentist baseline for comparison. Spec search/model selection across adstock/shape families.
Diagnostics & Selection: Out-of-sample tests (time splits), residual checks (ACF), convergence stats, WAIC/LOO (or BIC/AIC) ranking.
Calibration (optional): Integrate lift/geo experiments to calibrate channel effects when available.
Budget Optimization & What-If: Constrained optimizer (budget, min/max, lockouts, pacing) with risk-aware option using parameter uncertainty; fast scenario simulator.
Standardized Outputs (must have):
model/meta (metadata: window, granularity, channels, spec, seed, runtime),
model/parameters (adstock half-life/lag, shape params, controls, posterior stats),
curves/response_curves (spend→KPI with intervals; marginal & average ROAS),
metrics/elasticities_roas (at current spend; recommended spend if optimized),
decomp/contribution_by_period (driver contributions that reconcile to KPI),
optimizer/recommendation (+ config used),
whatif/scenario_*,
diagnostics (fit/forecast metrics, residuals, convergence),
calibration_report (if experiments exist),
compare_models (spec ranking).
Primary format Parquet; JSON for metadata. Stable field names across clients.
Security/Privacy Modes:
Standard mode (data stored in our lake permitted).
Zero-retention mode: read/process/train on client data sources without storing client data; only model parameters/curves leave; no raw values in logs.
Integration with Ingest: Compatible with Fivetran (and other pipelines) outputs; engine assumes data is already landed/queriable.
Performance Targets: Train on ~2 years daily, 12–20 channels within agreed time on a standard AWS instance; reproducible with seeds.
Observability: Structured logs (no raw data), run status/metrics, basic drift signals.
Documentation: Brief setup/config guide, output schema reference, and modeling notes (1–2 pages each).
Acceptance Criteria: Config-only client onboarding; standardized outputs produced end-to-end; optimizer returns feasible plans respecting constraints; diagnostics and model selection included; reproducible results with same inputs/seed.