AWS Backend for Marketing Mix Modeling

Job ID: 39903141

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.