Marketing Budget Allocation Model

Hold total weekly budget constant and reallocate across channels/countries/devices to minimize blended CPA
Excluded combos (R²<0.3): spend adjusted to level where incremental CPA ≤ λ (capped at historical max). “Weekly Budget” = last 7-day cost. “Current CPA” = last 7-day blended CPA.
CPA = k × Sγ model | 53 weeks | Data: Jul 14, 2025 – Jul 13, 2026 | Last 7d: Aug 10–16, 2026 (excl 3d SKAN lag)

Total Weekly Budget
$200K$900K$1.6M$2.3M$3M
CPA Guardrail (max blended CPA)
$15
$12$15$18$21$25
Portfolio Health Floor (min blended health rate)
35%
25%30%35%40%45%50%
Combo Health Floor (pause combos below this rate)
0%
0% (off)10%20%30%40%
Ramp-Rate Constraints (max weekly change per combo)
Max Scale-Up
+20%
10%25%50%75%100%
Max Scale-Down
-20%
10%25%50%75%100%
Mode
Uncheck to see target only (Full Ramp)

Combination Detail

Click any combination to see CPA scatter, $10K milestone table, and rationale. Green = spend increase, Red = decrease vs current.

Per-Combination Allocation Table

Channel / Country / Device Last 7d Spend Last 7d CPA Last 7d Acq Target Spend Target CPA Target Acq/Wk Change Health (52wk) Health (7d) Zone
Legend
Zone
Tested (within historical range)
● Nx Extrapolating (1–2x hist max)
● Nx Uncharted (>2x hist max)
R² (Model Fit)
0.70+ Strong fit
0.50–0.69 Good fit
0.30–0.49 Weak fit
<0.30 Poor fit
Health (% Prime D1 1500+)
45%+ Excellent
35–44% Good
25–34% Below average
<25% Low
52wk = model training period avg
7d = most recent week actual
Next Week (Ramp)

Platform Export

Performance-weighted campaign-level inputs. Best-performing campaigns (lower CPA + higher health) get proportionally more of the budget increase (or less of the cut). ⭐ = top performer, ⚠️ = underperformer. Uses Next Week values when ramp is enabled.

Campaign Weekly Budget Daily Budget tCPA Bid Change
$XX,XXX Ramp-limited (not yet at target)
(Nwk) Weeks to reach target at current ramp rate
Change
+N% Increase vs current spend
-N% Decrease vs current spend

Data Explorer

Filter to see actual daily/weekly trends for any combination.





Methodology

Model: CPA = k × Sγ (Power-Law)

Each channel/country/device combination is fitted with a power-law model on weekly (spend, CPA) data over 52 weeks. The model is fitted in log-log space via linear regression with 5% outlier trimming (top 2.5% + bottom 2.5% of CPA observations removed).

Tab 1: CPA — Minimize Blended CPA

λ is the portfolio marginal CPA — the cost of acquiring one additional user from the most efficient next dollar across all optimized combos.

For each optimized combo, marginal CPA at spend S is:

Marginal_CPA(S) = k × Sγ / (1 − γ)

At the optimum, every optimized combo has the same marginal CPA = λ. This is the equal-marginal-returns condition. Binary search finds the λ where Σ Si = Budget.

Target spend per combo: Si = ((1−γi) × λ / ki)1/γi

Tab 2: CPHC — Minimize Cost Per Healthy Customer

CPHC (Cost Per Healthy Customer) = Spend ÷ Healthy Acquisitions, where a “healthy” customer is one who is both Prime and meets the D1_1500 threshold (uploaded ≥1500 photos in day 1).

Each combo has a measured health rate (fraction of acquisitions that are healthy). Since health rate is approximately constant per combo regardless of spend level (avg correlation = −0.05), the quality-adjusted model is:

CPHC = CPA / health_rate = (k / h) × Sγ
Marginal_CPHC(S) = (k / h) × Sγ / (1 − γ)

The optimization is identical to Tab 1 except λ is in CPHC units and allocation accounts for health rate:

Si = ((1−γi) × λ × hi / ki)1/γi

Effect: Combos with higher health rates receive proportionally more budget. A combo with 50% health rate gets treated as 2× more efficient than one with 25% health rate (at the same raw CPA).

Health rate data: 52-week aggregate % of customers acquired who are Prime + D1_1500. Ranges from 20.5% (Google/US/Android) to 58.2% (Meta/DE/Android).

Tab 3: Health Constrained — CPA Optimization with Health Floor

Same raw CPA optimization as Tab 1, but with an additional constraint: the portfolio blended health rate must be ≥ the floor set by the slider.

Algorithm:

  1. Compute the unconstrained raw-CPA-optimal allocation (same as Tab 1)
  2. Calculate blended health rate = Σ(acqi × hi) / Σ(acqi)
  3. If health ≥ floor → done (constraint satisfied naturally)
  4. If health < floor → iteratively pause the lowest-health optimized combo (set its spend to $0) and reallocate that budget to remaining combos. Repeat until floor is met.

Paused combos are shown with ⏸️ in the allocation table. Their budget is redistributed to the remaining (healthier) combos via re-solved λ.

Trade-off: Higher floor = more combos paused = higher CPA (less efficient channels excluded) but better customer quality. The slider lets you explore this frontier.

Excluded Combos (R² < 0.3)

Combos with R² below 0.3 have unreliable spend→CPA relationships. Instead of curve-based optimization, they use the $10K milestone table:

On the CPHC tab, incremental CPHC (= incr_CPA / health_rate) is compared against λ instead.

Confidence Zones

Prediction intervals (80%) use each combo’s residual standard error, widened by an extrapolation factor proportional to distance beyond historical data.

Ramp-Rate Constraints

Large budget swings (e.g., +150% or -70%) cause platform algorithm instability — Meta and Google have algorithmic learning phases that reset when budgets change dramatically. The ramp-rate constraint limits weekly changes per combo:

S_this_week = clamp(S_optimal, S_current × (1 − maxDown), S_current × (1 + maxUp))

Defaults: maxUp = 25%, maxDown = 20% (asymmetric because cutting too fast destroys pixel/conversion signal permanently, while overspending is just temporarily expensive).

The allocation table shows both Target (unconstrained optimal) and Next Week (clamped) targets. A convergence indicator (Nwk) shows how many weeks at the ramp rate to reach target from current spend.

Channel-specific note: Apple Search Ads has no “learning phase” — you could ramp faster there. Consider setting higher limits for ASA combos (future enhancement).

CPA / CPHC Guardrail

On the CPA and Health Constrained tabs: when blended CPA would exceed the guardrail target, the model caps total deployment at the maximum budget where CPA ≤ target. Excess budget remains unspent.

On the CPHC tab: the guardrail operates on blended CPHC (cost per healthy customer). The slider range adjusts to $20–$60 to reflect the higher absolute CPHC values.

Data Source

Weekly aggregated data from quicksight.r_and_o (Redshift). Channels: Meta, Google App, Apple Search Ads. Devices: Android & iOS. Filter: is_raw_branch_log_data = 'N'. “Last 7d” metrics reflect the most recent complete week (Aug 10–16, 2026).

Health rate: SUM(CASE WHEN is_prime_acq='Y' THEN is_d1_1500 END) / SUM(customers_acquired) — constant per combo across 52-week history (correlation with spend ≈ −0.05).