From metaflow-marketing-skills
Optimizes paid media budget allocation using MER, marginal ROAS, diminishing returns modeling, and incrementality analysis. Useful for marketing teams reallocating ad spend across channels.
How this skill is triggered — by the user, by Claude, or both
Slash command
/metaflow-marketing-skills:ad-spend-allocatorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
1. **Collect channel data** — Spend, revenue/conversions, and time period per channel
Marketing Efficiency Ratio (MER) = Total Revenue ÷ Total Ad Spend (across ALL channels)
MER is the north star metric. Platform-reported ROAS overcounts because of attribution overlap — Google and Meta both claim credit for the same sale.
| Metric | What It Measures | Use For |
|---|---|---|
| MER | Blended efficiency across all channels | Strategic planning, board reporting |
| Platform ROAS | Platform-attributed revenue ÷ platform spend | Within-platform optimization |
| Incremental ROAS | True lift over holdout baseline | Channel investment decisions |
| Marginal ROAS | ROAS on the last dollar of spend | Allocation decisions |
| Blended CAC | Total spend ÷ new customers | Efficiency per new customer |
| LTV:CAC | Customer lifetime value ÷ CAC | Long-term channel viability |
Rule of thumb: If platform ROAS sums to more than your actual MER, you have attribution overlap. The gap = overclaimed conversions.
| Business Type | Healthy MER | Notes |
|---|---|---|
| DTC ecommerce (physical products) | 3.0-5.0x | Lower for high-margin, higher for low-margin |
| Subscription/SaaS (LTV-driven) | 1.5-3.0x on first purchase | Needs 6-12 month LTV analysis |
| Lead gen (service businesses) | CPL-based, not MER | Use CAC targets instead |
| Luxury/high-AOV | 5.0-10.0x | Can tolerate higher thresholds |
Confidence note: MER benchmarks vary significantly by industry, margin structure, and LTV. These are starting points — calibrate to your actual unit economics.
The key insight: ROAS is not linear with spend. Every channel has a curve.
| Zone | Characteristic | Marginal ROAS Behavior | Action |
|---|---|---|---|
| Under-invested | Budget capped, high impression share gaps | Marginal ROAS > average ROAS | Scale up aggressively |
| Efficient frontier | Sweet spot — spend matches demand | Marginal ROAS ≈ average ROAS | Maintain, test small increments |
| Saturating | Diminishing returns setting in | Marginal ROAS < average ROAS but above target | Scale carefully, watch for decay |
| Over-invested | Wasting spend on low-intent audiences | Marginal ROAS < target | Cut budget, reallocate |
Signals of under-investment:
Signals of saturation:
Practical calculation of marginal ROAS:
Marginal ROAS = (Revenue at spend level B − Revenue at spend level A) ÷ (Spend B − Spend A)
Example: Channel grew from $10K/mo ($40K rev, 4.0x ROAS) to $15K/mo ($55K rev, 3.67x ROAS).
Not every channel needs to be an efficiency champion. Assign roles:
| Role | Purpose | ROAS Expectation | Example Channels |
|---|---|---|---|
| Primary driver | Bulk of revenue, proven efficient | At or above MER target | Google Search non-brand, Meta Advantage+ Shopping |
| Scaling channel | Unlocking new audiences/growth | Slightly below primary, high incremental | Meta prospecting, Google PMax |
| Support/mid-funnel | Consideration and warming | Lower direct ROAS, assist-heavy | YouTube, Meta video, Demand Gen |
| Fill/hygiene | Brand defense, retargeting | Very high ROAS but low volume | Google brand, retargeting |
| Experimental | Testing new channels | Unknown, budget-capped | TikTok, Pinterest, LinkedIn new launch |
Google Power Pack (2025): Demand Gen → AI Max → PMax working together. Demand Gen creates interest at the top, AI Max captures it in search, PMax scales at the bottom. Evaluate as a system, not as siloed channels.
Agency mistake to avoid: Killing a "low ROAS" channel that's actually feeding your "high ROAS" channel. Run incrementality tests before defunding a suspected assist channel.
Platform attribution lies. Incrementality testing tells the truth.
| Method | Evidence Quality | Effort |
|---|---|---|
| Geo-based holdout tests | Highest | High — requires geo split |
| Conversion lift tests (Google, Meta native) | High | Medium — use platform tools |
| Marketing Mix Modeling (Google Meridian) | High for strategic | High — needs data science |
| Ghost ads / PSA tests | Medium-High | Medium |
| Pre-post analysis on pause events | Medium | Low (opportunistic) |
| Platform-reported ROAS alone | Low | Zero — but unreliable |
Google Meridian (2025): Google's open-source Marketing Mix Modeling framework. Incorporates granular video and Search signals. Calibrate with conversion lift tests. Best for organizations with data science capability or larger spenders ($1M+/year).
If platform-reported ROAS is 5.0x but incrementality test shows 60% lift, actual incremental ROAS is 3.0x. Use the incremental number for allocation decisions.
| Channel | Reported ROAS | Incrementality | True Incremental ROAS | Action |
|---|---|---|---|---|
| Google brand | 15x | 20% lift | 3.0x | Defensive only — don't scale beyond natural demand |
| Google non-brand | 4x | 85% lift | 3.4x | Primary driver — scale aggressively |
| Meta prospecting | 3x | 75% lift | 2.25x | Scaling channel — monitor marginal |
| Meta retargeting | 8x | 30% lift | 2.4x | Support — don't pay to reach already-converting users |
Build a forecast that accounts for:
Q[X] Forecast:
Base spend = [previous quarter adjusted for seasonality]
CPM inflation factor = +9% (2025 Meta), +[X]% (Google)
Expected MER = [trend analysis + planned improvements]
Forecast revenue = Forecast spend × Expected MER
Confidence range: ±15% (narrower if stable, wider if volatile)
Always build three scenarios:
| Scenario | Spend Change | Expected Outcome | Risk |
|---|---|---|---|
| Conservative | Flat or -10% | Maintain current efficiency | Missing growth opportunity |
| Base case | +15-20% | Scale within efficient frontier | Typical execution risk |
| Aggressive | +40-50% | Capture growth, risk efficiency decay | Higher CPA, learning resets |
| Platform | 2025 CPM Movement | Implication |
|---|---|---|
| Meta | +9% avg ad price (Q1 2025 earnings) | Rising costs compress MER — not always a performance issue |
| Google Search | Competitive pressure on non-brand | Growing Smart Bidding adoption pushes auctions |
| YouTube | Relatively stable | Still cost-efficient for reach |
| TikTok | High volatility | Check quarterly |
| Premium pricing | Viable for B2B only |
Implication for allocation: If channel ROAS declined 10% YoY but CPMs rose 9%, the underlying efficiency is roughly flat. Don't cut a channel that's fighting macro pressure successfully.
| Channel | Spend | Revenue | ROAS | Marginal ROAS | Incrementality | Role |
|---|---|---|---|---|---|---|
| [channel] | $[X] | $[X] | [X]x | [X]x | [X]% lift | [role] |
Conservative reallocation: Shift 10-15% of budget at a time. Observe for 14-21 days before next move.
Why not 50%? Big reallocations destabilize learning on both sides. The receiving channel enters learning phase, the losing channel loses momentum. Gradual > dramatic.
Expected new revenue =
(Remaining spend on channel A × ROAS_A) +
(New spend on channel B × Marginal_ROAS_B) +
(Original spend on channel B × ROAS_B)
If expected new revenue > current revenue, the shift is value-creating.
## Ad Spend Allocation Analysis
### Current State
| Channel | Spend | Revenue | ROAS | Marginal ROAS | Role |
|---------|-------|---------|------|--------------|------|
**Blended MER:** [X]x (target: [X]x)
**Total Spend:** $[X]/month
**Total Revenue:** $[X]/month
### Key Findings
- [Channel X] is [under-invested / saturating / over-invested]
- Marginal ROAS gap: [specific]
- Incrementality concern: [if applicable]
- CPM trend context: [Meta +9%, etc.]
### Reallocation Recommendations
| Move | From | To | Amount | Expected Impact |
|------|------|-----|--------|----------------|
| 1 | [channel] | [channel] | $[X] (X% of budget) | [specific outcome] |
### Quarterly Forecast
| Scenario | Total Spend | Expected MER | Expected Revenue |
|----------|------------|-------------|-----------------|
| Conservative | $[X] | [X]x | $[X] |
| Base | $[X] | [X]x | $[X] |
| Aggressive | $[X] | [X]x | $[X] |
### Testing & Validation Plan
- [Incrementality tests to run]
- [Monitoring cadence]
- [Rollback criteria]
Input: "DTC skincare brand. Monthly spend: Google $18K (Search + PMax), Meta $22K (ASC + prospecting), TikTok $5K, YouTube $3K. Revenue last month: $165K. I'm told by the CMO to either cut 20% or justify why not. Where should I push and where should I cut?"
Output:
| Channel | Spend | Revenue (platform-reported) | ROAS | Est. Marginal ROAS | Role |
|---|---|---|---|---|---|
| Google Search (non-brand) | $8K | $32K | 4.0x | 3.5x | Primary driver |
| Google Search (brand) | $2K | $28K | 14.0x | 5.0x (incremental) | Fill/defense |
| Google PMax | $8K | $26K | 3.25x | 2.5x | Scaling |
| Meta ASC | $15K | $48K | 3.2x | 2.4x | Primary driver |
| Meta prospecting | $7K | $14K | 2.0x | 1.8x | Scaling |
| TikTok | $5K | $8K | 1.6x | Unknown | Experimental |
| YouTube | $3K | $5K | 1.67x | Unknown | Support/MOFU |
Blended platform ROAS (sum): 4.0x ($161K/$48K) Actual MER: $165K ÷ $48K = 3.44x Attribution overlap: ~14% (platform sum overcounts by this much)
| Priority | Move | From | To | Amount | Expected Impact |
|---|---|---|---|---|---|
| 1 | Kill TikTok test OR commit $10K+ | TikTok | Google Search non-brand | $5K | +$17-18K revenue at 3.5x marginal |
| 2 | Reduce Meta prospecting | Meta prospecting | Meta ASC | $3K | ASC has better marginal; prospecting feeds ASC but at 1.8x marginal, it's too expensive |
| 3 | Kill YouTube at this scale | YouTube | Google Search non-brand | $3K | $3K is below YouTube's signal threshold — reallocate |
| 4 | Net result: | No cut; reallocation | Expected MER lift to 3.7x |
Cutting 20% ($9.6K) proportionally would:
Instead: Shift the same $9.6K from underperformers to overperformers. Keep total spend at $48K, raise expected revenue to ~$177K, MER moves from 3.44x → ~3.69x.
| Scenario | Monthly Spend | Expected MER | Expected Revenue | Notes |
|---|---|---|---|---|
| Conservative (CMO's cut) | $38.4K | 3.5x | $134K/mo | Value destructive |
| Base (reallocation) | $48K | 3.7x | $178K/mo | Recommended |
| Aggressive (scale winners) | $58K | 3.5x | $203K/mo | Requires creative refresh pipeline |
Before any major move, run:
npx claudepluginhub narayan-metaflow/metaflow-marketing-skills --plugin metaflow-marketing-skillsCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.