[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M718MD3T8STG7BGSFESMF1ZA":3,"skill-same:01M718MD3T8STG7BGSFESMF1ZA":70},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":6,"ownerHtmlUrl":53,"ownerBlogUrl":6,"ownerDescription":54,"updatedAt":55,"install":56,"resources":69},"01M718MD3T8STG7BGSFESMF1ZA","ad-spend-allocator",null,"Optimize budget allocation across paid media channels using Marketing Efficiency Ratio (MER), marginal ROAS analysis, diminishing returns modeling, and incrementality-informed decisions.","narayan-metaflow\u002Fmetaflow-marketing-skills","narayan-metaflow","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F181216517?v=4","01M718MB0Y27AYKTC9ZKT16V86","narayan","01M718MB209XRYRTS3ZZFK0JXS",18,"MIT","https:\u002F\u002Fgithub.com\u002Fnarayan-metaflow\u002Fmetaflow-marketing-skills\u002Fblob\u002Fmain\u002Fskills\u002Fad-spend-allocator\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000040","财务","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"ad spend allocator","ad","budget allocation","roas","channels","decisions","paid media","returns","marketing","allocation","modeling","Budget","optimize","across","efficiency","analysis","paid","Media","incrementality","2026-11-10 10:12:30",false,"---\nname: ad-spend-allocator\ndescription: \"Optimize budget allocation across paid media channels using Marketing Efficiency Ratio (MER), marginal ROAS analysis, diminishing returns modeling, and incrementality-informed decisions.\"\n---\n\n## Process\n\n1. **Collect channel data** — Spend, revenue\u002Fconversions, and time period per channel\n2. **Calculate core metrics** — MER, channel ROAS, blended CAC\n3. **Assess marginal efficiency** — Where is each channel on its diminishing returns curve?\n4. **Assign channel roles** — Primary driver, scaling channel, support channel, fill channel\n5. **Model reallocation scenarios** — What happens if you shift $X from channel A to B?\n6. **Factor incrementality** — Adjust for platform-reported vs actual incremental lift\n7. **Build forecast** — Quarterly plan with seasonality and CPM trend context\n8. **Recommend moves** — ICE-prioritized action plan with expected outcomes\n\n## Core Metrics Framework\n\n### MER vs Platform ROAS\n\n**Marketing Efficiency Ratio (MER)** = Total Revenue ÷ Total Ad Spend (across ALL channels)\n\nMER is the north star metric. Platform-reported ROAS overcounts because of attribution overlap — Google and Meta both claim credit for the same sale.\n\n| Metric | What It Measures | Use For |\n|--------|-----------------|---------|\n| **MER** | Blended efficiency across all channels | Strategic planning, board reporting |\n| **Platform ROAS** | Platform-attributed revenue ÷ platform spend | Within-platform optimization |\n| **Incremental ROAS** | True lift over holdout baseline | Channel investment decisions |\n| **Marginal ROAS** | ROAS on the *last* dollar of spend | Allocation decisions |\n| **Blended CAC** | Total spend ÷ new customers | Efficiency per new customer |\n| **LTV:CAC** | Customer lifetime value ÷ CAC | Long-term channel viability |\n\n**Rule of thumb:** If platform ROAS sums to more than your actual MER, you have attribution overlap. The gap = overclaimed conversions.\n\n### Target MER Benchmarks (Starting Points)\n\n| Business Type | Healthy MER | Notes |\n|--------------|-------------|-------|\n| DTC ecommerce (physical products) | 3.0-5.0x | Lower for high-margin, higher for low-margin |\n| Subscription\u002FSaaS (LTV-driven) | 1.5-3.0x on first purchase | Needs 6-12 month LTV analysis |\n| Lead gen (service businesses) | CPL-based, not MER | Use CAC targets instead |\n| Luxury\u002Fhigh-AOV | 5.0-10.0x | Can tolerate higher thresholds |\n\n**Confidence note:** MER benchmarks vary significantly by industry, margin structure, and LTV. These are starting points — calibrate to your actual unit economics.\n\n## Marginal ROAS & Diminishing Returns\n\nThe key insight: ROAS is not linear with spend. Every channel has a curve.\n\n### The Diminishing Returns Curve\n\n| Zone | Characteristic | Marginal ROAS Behavior | Action |\n|------|---------------|----------------------|--------|\n| **Under-invested** | Budget capped, high impression share gaps | Marginal ROAS > average ROAS | Scale up aggressively |\n| **Efficient frontier** | Sweet spot — spend matches demand | Marginal ROAS ≈ average ROAS | Maintain, test small increments |\n| **Saturating** | Diminishing returns setting in | Marginal ROAS \u003C average ROAS but above target | Scale carefully, watch for decay |\n| **Over-invested** | Wasting spend on low-intent audiences | Marginal ROAS \u003C target | Cut budget, reallocate |\n\n### Identifying Your Position on the Curve\n\n**Signals of under-investment:**\n- Google Search impression share \u003C30% (Lost IS Budget)\n- Meta ad set frequency \u003C1.5 (not reaching enough of audience)\n- CPA\u002FROAS stable as spend increased (no efficiency loss)\n- Low reach % of eligible audience\n\n**Signals of saturation:**\n- Google Search impression share >80-95%\n- Meta frequency >4 with rising CPA\n- ROAS declining as spend increased\n- Diminishing absolute conversion growth per budget dollar\n\n**Practical calculation of marginal ROAS:**\n```\nMarginal ROAS = (Revenue at spend level B − Revenue at spend level A) ÷ (Spend B − Spend A)\n```\n\nExample: Channel grew from $10K\u002Fmo ($40K rev, 4.0x ROAS) to $15K\u002Fmo ($55K rev, 3.67x ROAS).\n- Marginal revenue = $55K − $40K = $15K\n- Marginal spend = $5K\n- Marginal ROAS = $15K ÷ $5K = **3.0x** (vs 3.67x average)\n- Interpretation: The last $5K came at 3.0x. If target is 3.5x, this channel is saturating.\n\n## Channel Role Assignment (Power Pack Thinking)\n\nNot every channel needs to be an efficiency champion. Assign roles:\n\n| Role | Purpose | ROAS Expectation | Example Channels |\n|------|---------|-----------------|-----------------|\n| **Primary driver** | Bulk of revenue, proven efficient | At or above MER target | Google Search non-brand, Meta Advantage+ Shopping |\n| **Scaling channel** | Unlocking new audiences\u002Fgrowth | Slightly below primary, high incremental | Meta prospecting, Google PMax |\n| **Support\u002Fmid-funnel** | Consideration and warming | Lower direct ROAS, assist-heavy | YouTube, Meta video, Demand Gen |\n| **Fill\u002Fhygiene** | Brand defense, retargeting | Very high ROAS but low volume | Google brand, retargeting |\n| **Experimental** | Testing new channels | Unknown, budget-capped | TikTok, Pinterest, LinkedIn new launch |\n\n**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.\n\n**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.\n\n## Incrementality-Informed Allocation\n\nPlatform attribution lies. Incrementality testing tells the truth.\n\n### Incrementality Hierarchy (highest to lowest evidence quality)\n\n| Method | Evidence Quality | Effort |\n|--------|-----------------|--------|\n| Geo-based holdout tests | Highest | High — requires geo split |\n| Conversion lift tests (Google, Meta native) | High | Medium — use platform tools |\n| Marketing Mix Modeling (Google Meridian) | High for strategic | High — needs data science |\n| Ghost ads \u002F PSA tests | Medium-High | Medium |\n| Pre-post analysis on pause events | Medium | Low (opportunistic) |\n| Platform-reported ROAS alone | Low | Zero — but unreliable |\n\n### When Incrementality Testing Is Worth It\n\n- Before major budget shifts ($10K+ reallocations)\n- When considering pausing a channel\n- When two channels overlap heavily (brand search + Meta retargeting)\n- Annually for MMM refresh\n\n**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+\u002Fyear).\n\n### Applying Incrementality to Allocation\n\nIf 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.\n\n| Channel | Reported ROAS | Incrementality | True Incremental ROAS | Action |\n|---------|--------------|----------------|----------------------|--------|\n| Google brand | 15x | 20% lift | 3.0x | Defensive only — don't scale beyond natural demand |\n| Google non-brand | 4x | 85% lift | 3.4x | Primary driver — scale aggressively |\n| Meta prospecting | 3x | 75% lift | 2.25x | Scaling channel — monitor marginal |\n| Meta retargeting | 8x | 30% lift | 2.4x | Support — don't pay to reach already-converting users |\n\n## Budget Forecasting\n\n### Quarterly Budget Modeling\n\nBuild a forecast that accounts for:\n1. **Historical seasonality** — Previous year's monthly index\n2. **CPM trend** — Meta's avg ad price climbed 9% in 2025 (Meta Q1 2025 earnings); similar pressure on Google\n3. **Planned initiatives** — New product launches, geo expansions, creative refreshes\n4. **Diminishing returns** — Don't forecast linearly past saturation zones\n\n### Simple Forecast Template\n\n```\nQ[X] Forecast:\n  Base spend = [previous quarter adjusted for seasonality]\n  CPM inflation factor = +9% (2025 Meta), +[X]% (Google)\n  Expected MER = [trend analysis + planned improvements]\n  Forecast revenue = Forecast spend × Expected MER\n  \n  Confidence range: ±15% (narrower if stable, wider if volatile)\n```\n\n### Scenario Planning\n\nAlways build three scenarios:\n\n| Scenario | Spend Change | Expected Outcome | Risk |\n|---------|-------------|-----------------|------|\n| **Conservative** | Flat or -10% | Maintain current efficiency | Missing growth opportunity |\n| **Base case** | +15-20% | Scale within efficient frontier | Typical execution risk |\n| **Aggressive** | +40-50% | Capture growth, risk efficiency decay | Higher CPA, learning resets |\n\n## CPM Trend Context (2025-2026)\n\n| Platform | 2025 CPM Movement | Implication |\n|----------|-------------------|-------------|\n| Meta | +9% avg ad price (Q1 2025 earnings) | Rising costs compress MER — not always a performance issue |\n| Google Search | Competitive pressure on non-brand | Growing Smart Bidding adoption pushes auctions |\n| YouTube | Relatively stable | Still cost-efficient for reach |\n| TikTok | High volatility | Check quarterly |\n| LinkedIn | Premium pricing | Viable for B2B only |\n\n**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.\n\n## Reallocation Decision Framework\n\n### Step 1: Calculate Current State\n\n| Channel | Spend | Revenue | ROAS | Marginal ROAS | Incrementality | Role |\n|---------|-------|---------|------|--------------|----------------|------|\n| [channel] | $[X] | $[X] | [X]x | [X]x | [X]% lift | [role] |\n\n### Step 2: Identify Imbalances\n\n- Channels with marginal ROAS > target → **candidates for scaling**\n- Channels with marginal ROAS \u003C target → **candidates for cutting or restructuring**\n- Channels at saturation → **hold, don't scale**\n- Channels with weak incrementality → **evaluate true value**\n\n### Step 3: Size the Move\n\n**Conservative reallocation:** Shift 10-15% of budget at a time. Observe for 14-21 days before next move.\n\n**Why not 50%?** Big reallocations destabilize learning on both sides. The receiving channel enters learning phase, the losing channel loses momentum. Gradual > dramatic.\n\n### Step 4: Expected Impact Calculation\n\n```\nExpected new revenue = \n  (Remaining spend on channel A × ROAS_A) +\n  (New spend on channel B × Marginal_ROAS_B) +\n  (Original spend on channel B × ROAS_B)\n```\n\nIf expected new revenue > current revenue, the shift is value-creating.\n\n## Output Format\n\n```\n## Ad Spend Allocation Analysis\n\n### Current State\n| Channel | Spend | Revenue | ROAS | Marginal ROAS | Role |\n|---------|-------|---------|------|--------------|------|\n\n**Blended MER:** [X]x (target: [X]x)\n**Total Spend:** $[X]\u002Fmonth\n**Total Revenue:** $[X]\u002Fmonth\n\n### Key Findings\n- [Channel X] is [under-invested \u002F saturating \u002F over-invested]\n- Marginal ROAS gap: [specific]\n- Incrementality concern: [if applicable]\n- CPM trend context: [Meta +9%, etc.]\n\n### Reallocation Recommendations\n| Move | From | To | Amount | Expected Impact |\n|------|------|-----|--------|----------------|\n| 1 | [channel] | [channel] | $[X] (X% of budget) | [specific outcome] |\n\n### Quarterly Forecast\n| Scenario | Total Spend | Expected MER | Expected Revenue |\n|----------|------------|-------------|-----------------|\n| Conservative | $[X] | [X]x | $[X] |\n| Base | $[X] | [X]x | $[X] |\n| Aggressive | $[X] | [X]x | $[X] |\n\n### Testing & Validation Plan\n- [Incrementality tests to run]\n- [Monitoring cadence]\n- [Rollback criteria]\n```\n\n## Example\n\n**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?\"\n\n**Output:**\n\n## Ad Spend Allocation Analysis\n\n### Current State\n| Channel | Spend | Revenue (platform-reported) | ROAS | Est. Marginal ROAS | Role |\n|---------|-------|----------------------------|------|-------------------|------|\n| Google Search (non-brand) | $8K | $32K | 4.0x | 3.5x | Primary driver |\n| Google Search (brand) | $2K | $28K | 14.0x | 5.0x (incremental) | Fill\u002Fdefense |\n| Google PMax | $8K | $26K | 3.25x | 2.5x | Scaling |\n| Meta ASC | $15K | $48K | 3.2x | 2.4x | Primary driver |\n| Meta prospecting | $7K | $14K | 2.0x | 1.8x | Scaling |\n| TikTok | $5K | $8K | 1.6x | Unknown | Experimental |\n| YouTube | $3K | $5K | 1.67x | Unknown | Support\u002FMOFU |\n\n**Blended platform ROAS (sum):** 4.0x ($161K\u002F$48K)\n**Actual MER:** $165K ÷ $48K = **3.44x**\n**Attribution overlap:** ~14% (platform sum overcounts by this much)\n\n### Key Findings\n1. **TikTok and Meta prospecting are below target** — marginal ROAS underwater. These are the obvious cut candidates IF incrementality doesn't justify them\n2. **Google brand search is defensive** — high reported ROAS (14x) but likely 80% would happen organically. True incremental ROAS ~3.0x. Don't scale, don't cut\n3. **Google Search non-brand is primary** — healthy marginal ROAS at 3.5x, room to scale\n4. **Meta ASC is the workhorse** — 3.2x with 15K spend. Still room before saturation\n5. **YouTube is underfunded for meaningful signal** — $3K\u002Fmo can't support a real test. Either commit to $10K+ or kill it\n6. **CPM context:** Meta +9% in 2025 means Meta ASC efficiency is holding up against pressure — don't punish it for macro costs\n\n### Reallocation Recommendations (don't cut 20% — shift 20%)\n| Priority | Move | From | To | Amount | Expected Impact |\n|---------|------|------|-----|--------|----------------|\n| 1 | Kill TikTok test OR commit $10K+ | TikTok | Google Search non-brand | $5K | +$17-18K revenue at 3.5x marginal |\n| 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 |\n| 3 | Kill YouTube at this scale | YouTube | Google Search non-brand | $3K | $3K is below YouTube's signal threshold — reallocate |\n| 4 | **Net result:** | | | No cut; reallocation | Expected MER lift to 3.7x |\n\n### Counter-Argument to Cutting 20%\nCutting 20% ($9.6K) proportionally would:\n- Cut $1.6K from Google non-brand (the best performer) — **value destructive**\n- Cut $3K from Meta ASC — **value destructive**\n- Cut $1.6K from Google brand — **unnecessary, brand defense is cheap**\n\nInstead: **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.\n\n### Quarterly Forecast (next 3 months)\n| Scenario | Monthly Spend | Expected MER | Expected Revenue | Notes |\n|----------|--------------|-------------|-----------------|-------|\n| **Conservative (CMO's cut)** | $38.4K | 3.5x | $134K\u002Fmo | Value destructive |\n| **Base (reallocation)** | $48K | 3.7x | $178K\u002Fmo | Recommended |\n| **Aggressive (scale winners)** | $58K | 3.5x | $203K\u002Fmo | Requires creative refresh pipeline |\n\n### Incrementality Testing Plan\nBefore any major move, run:\n1. **Google brand holdout test** (1 month) — confirm true incremental value\n2. **Meta prospecting geo-split test** — verify it's feeding ASC vs wasted\n3. **YouTube investment test** — if keeping, commit $10K for 60 days to get real signal\n\n### Monitoring Plan\n- Weekly MER tracking vs 3.7x target\n- Marginal ROAS calculation monthly per channel\n- CPM trend overlay — separate cost pressure from performance decay\n- Rollback: if reallocation drops MER below 3.3x after 30 days, revert\n\n## Guidelines\n\n- **Don't sum platform ROAS and call it blended ROAS.** Platforms overclaim. Use MER (total revenue ÷ total spend) as the north star.\n- **Don't make allocation decisions on platform-reported ROAS alone.** Platform ROAS overcounts by 10-30% typically. Incrementality testing is the gold standard.\n- **Don't shift more than 20% of a channel's budget at once.** Destabilizes learning on both sides. Gradual reallocation (10-15% moves) preserves performance.\n- **Don't kill a \"low ROAS\" channel without testing incrementality.** It may be feeding your \"high ROAS\" channel. Run a holdout test first.\n- **Don't ignore diminishing returns.** Scaling past the efficient frontier wastes money. Monitor marginal ROAS, not just average.\n- **Don't forecast linearly.** Diminishing returns are nonlinear. 2x budget ≠ 2x revenue in most channels.\n- **Don't conflate CPM inflation with performance decay.** Meta +9% CPM in 2025 means some \"decline\" is macro, not campaign failure.\n- **Don't run $3K monthly tests and expect signal.** Each channel has a minimum signal threshold. Under-funded experiments produce noise.\n- **Don't assume MMM output without incrementality calibration.** Google Meridian and other MMMs need incrementality experiments to calibrate. Uncalibrated MMM is directionally useful but not decisive.\n- **Cross-references:** For within-platform optimization, use the **google-ads-optimizer** and **meta-ads-optimizer** skills. For channel-specific analysis, use the **campaign-analyzer** skill. For reporting the allocation story to stakeholders, use the **paid-media-reporter** skill.\n- **Confidence:** Target MER benchmarks vary by industry, margin, and LTV. CPM trend data from Meta Q1 2025 earnings may shift quarter to quarter. Incrementality ranges are illustrative — your account will differ.\n","## Process\n\n1. **Collect channel data** — Spend, revenue\u002Fconversions, and time period per channel\n2. **Calculate core metrics** — MER, channel ROAS, blended CAC\n3. **Assess marginal efficiency** — Where is each channel on its diminishing returns curve?\n4. **Assign channel roles** — Primary driver, scaling channel, support channel, fill channel\n5. **Model reallocation scenarios** — What happens if you shift $X from channel A to B?\n6. **Factor incrementality** — Adjust for platform-reported vs actual incremental lift\n7. **Build forecast** — Quarterly plan with seasonality and CPM trend context\n8. **Recommend moves** — ICE-prioritized action plan with expected outcomes\n\n## Core Metrics Framework\n\n### MER vs Platform ROAS\n\n**Marketing Efficiency Ratio (MER)** = Total Revenue ÷ Total Ad Spend (across ALL channels)\n\nMER is the north star metric. Platform-reported ROAS overcounts because of attribution overlap — Google and Meta both claim credit for the same sale.\n\n| Metric | What It Measures | Use For |\n|--------|-----------------|---------|\n| **MER** | Blended efficiency across all channels | Strategic planning, board reporting |\n| **Platform ROAS** | Platform-attributed revenue ÷ platform spend | Within-platform optimization |\n| **Incremental ROAS** | True lift over holdout baseline | Channel investment decisions |\n| **Marginal ROAS** | ROAS on the *last* dollar of spend | Allocation decisions |\n| **Blended CAC** | Total spend ÷ new customers | Efficiency per new customer |\n| **LTV:CAC** | Customer lifetime value ÷ CAC | Long-term channel viability |\n\n**Rule of thumb:** If platform ROAS sums to more than your actual MER, you have attribution overlap. The gap = overclaimed conversions.\n\n### Target MER Benchmarks (Starting Points)\n\n| Business Type | Healthy MER | Notes |\n|--------------|-------------|-------|\n| DTC ecommerce (physical products) | 3.0-5.0x | Lower for high-margin, higher for low-margin |\n| Subscription\u002FSaaS (LTV-driven) | 1.5-3.0x on first purchase | Needs 6-12 month LTV analysis |\n| Lead gen (service businesses) | CPL-based, not MER | Use CAC targets instead |\n| Luxury\u002Fhigh-AOV | 5.0-10.0x | Can tolerate higher thresholds |\n\n**Confidence note:** MER benchmarks vary significantly by industry, margin structure, and LTV. These are starting points — calibrate to your actual unit economics.\n\n## Marginal ROAS & Diminishing Returns\n\nThe key insight: ROAS is not linear with spend. Every channel has a curve.\n\n### The Diminishing Returns Curve\n\n| Zone | Characteristic | Marginal ROAS Behavior | Action |\n|------|---------------|----------------------|--------|\n| **Under-invested** | Budget capped, high impression share gaps | Marginal ROAS > average ROAS | Scale up aggressively |\n| **Efficient frontier** | Sweet spot — spend matches demand | Marginal ROAS ≈ average ROAS | Maintain, test small increments |\n| **Saturating** | Diminishing returns setting in | Marginal ROAS \u003C average ROAS but above target | Scale carefully, watch for decay |\n| **Over-invested** | Wasting spend on low-intent audiences | Marginal ROAS \u003C target | Cut budget, reallocate |\n\n### Identifying Your Position on the Curve\n\n**Signals of under-investment:**\n- Google Search impression share \u003C30% (Lost IS Budget)\n- Meta ad set frequency \u003C1.5 (not reaching enough of audience)\n- CPA\u002FROAS stable as spend increased (no efficiency loss)\n- Low reach % of eligible audience\n\n**Signals of saturation:**\n- Google Search impression share >80-95%\n- Meta frequency >4 with rising CPA\n- ROAS declining as spend increased\n- Diminishing absolute conversion growth per budget dollar\n\n**Practical calculation of marginal ROAS:**\n```\nMarginal ROAS = (Revenue at spend level B − Revenue at spend level A) ÷ (Spend B − Spend A)\n```\n\nExample: Channel grew from $10K\u002Fmo ($40K rev, 4.0x ROAS) to $15K\u002Fmo ($55K rev, 3.67x ROAS).\n- Marginal revenue = $55K − $40K = $15K\n- Marginal spend = $5K\n- Marginal ROAS = $15K ÷ $5K = **3.0x** (vs 3.67x average)\n- Interpretation: The last $5K came at 3.0x. If target is 3.5x, this channel is saturating.\n\n## Channel Role Assignment (Power Pack Thinking)\n\nNot every channel needs to be an efficiency champion. Assign roles:\n\n| Role | Purpose | ROAS Expectation | Example Channels |\n|------|---------|-----------------|-----------------|\n| **Primary driver** | Bulk of revenue, proven efficient | At or above MER target | Google Search non-brand, Meta Advantage+ Shopping |\n| **Scaling channel** | Unlocking new audiences\u002Fgrowth | Slightly below primary, high incremental | Meta prospecting, Google PMax |\n| **Support\u002Fmid-funnel** | Consideration and warming | Lower direct ROAS, assist-heavy | YouTube, Meta video, Demand Gen |\n| **Fill\u002Fhygiene** | Brand defense, retargeting | Very high ROAS but low volume | Google brand, retargeting |\n| **Experimental** | Testing new channels | Unknown, budget-capped | TikTok, Pinterest, LinkedIn new launch |\n\n**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.\n\n**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.\n\n## Incrementality-Informed Allocation\n\nPlatform attribution lies. Incrementality testing tells the truth.\n\n### Incrementality Hierarchy (highest to lowest evidence quality)\n\n| Method | Evidence Quality | Effort |\n|--------|-----------------|--------|\n| Geo-based holdout tests | Highest | High — requires geo split |\n| Conversion lift tests (Google, Meta native) | High | Medium — use platform tools |\n| Marketing Mix Modeling (Google Meridian) | High for strategic | High — needs data science |\n| Ghost ads \u002F PSA tests | Medium-High | Medium |\n| Pre-post analysis on pause events | Medium | Low (opportunistic) |\n| Platform-reported ROAS alone | Low | Zero — but unreliable |\n\n### When Incrementality Testing Is Worth It\n\n- Before major budget shifts ($10K+ reallocations)\n- When considering pausing a channel\n- When two channels overlap heavily (brand search + Meta retargeting)\n- Annually for MMM refresh\n\n**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+\u002Fyear).\n\n### Applying Incrementality to Allocation\n\nIf 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.\n\n| Channel | Reported ROAS | Incrementality | True Incremental ROAS | Action |\n|---------|--------------|----------------|----------------------|--------|\n| Google brand | 15x | 20% lift | 3.0x | Defensive only — don't scale beyond natural demand |\n| Google non-brand | 4x | 85% lift | 3.4x | Primary driver — scale aggressively |\n| Meta prospecting | 3x | 75% lift | 2.25x | Scaling channel — monitor marginal |\n| Meta retargeting | 8x | 30% lift | 2.4x | Support — don't pay to reach already-converting users |\n\n## Budget Forecasting\n\n### Quarterly Budget Modeling\n\nBuild a forecast that accounts for:\n1. **Historical seasonality** — Previous year's monthly index\n2. **CPM trend** — Meta's avg ad price climbed 9% in 2025 (Meta Q1 2025 earnings); similar pressure on Google\n3. **Planned initiatives** — New product launches, geo expansions, creative refreshes\n4. **Diminishing returns** — Don't forecast linearly past saturation zones\n\n### Simple Forecast Template\n\n```\nQ[X] Forecast:\n  Base spend = [previous quarter adjusted for seasonality]\n  CPM inflation factor = +9% (2025 Meta), +[X]% (Google)\n  Expected MER = [trend analysis + planned improvements]\n  Forecast revenue = Forecast spend × Expected MER\n  \n  Confidence range: ±15% (narrower if stable, wider if volatile)\n```\n\n### Scenario Planning\n\nAlways build three scenarios:\n\n| Scenario | Spend Change | Expected Outcome | Risk |\n|---------|-------------|-----------------|------|\n| **Conservative** | Flat or -10% | Maintain current efficiency | Missing growth opportunity |\n| **Base case** | +15-20% | Scale within efficient frontier | Typical execution risk |\n| **Aggressive** | +40-50% | Capture growth, risk efficiency decay | Higher CPA, learning resets |\n\n## CPM Trend Context (2025-2026)\n\n| Platform | 2025 CPM Movement | Implication |\n|----------|-------------------|-------------|\n| Meta | +9% avg ad price (Q1 2025 earnings) | Rising costs compress MER — not always a performance issue |\n| Google Search | Competitive pressure on non-brand | Growing Smart Bidding adoption pushes auctions |\n| YouTube | Relatively stable | Still cost-efficient for reach |\n| TikTok | High volatility | Check quarterly |\n| LinkedIn | Premium pricing | Viable for B2B only |\n\n**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.\n\n## Reallocation Decision Framework\n\n### Step 1: Calculate Current State\n\n| Channel | Spend | Revenue | ROAS | Marginal ROAS | Incrementality | Role |\n|---------|-------|---------|------|--------------|----------------|------|\n| [channel] | $[X] | $[X] | [X]x | [X]x | [X]% lift | [role] |\n\n### Step 2: Identify Imbalances\n\n- Channels with marginal ROAS > target → **candidates for scaling**\n- Channels with marginal ROAS \u003C target → **candidates for cutting or restructuring**\n- Channels at saturation → **hold, don't scale**\n- Channels with weak incrementality → **evaluate true value**\n\n### Step 3: Size the Move\n\n**Conservative reallocation:** Shift 10-15% of budget at a time. Observe for 14-21 days before next move.\n\n**Why not 50%?** Big reallocations destabilize learning on both sides. The receiving channel enters learning phase, the losing channel loses momentum. Gradual > dramatic.\n\n### Step 4: Expected Impact Calculation\n\n```\nExpected new revenue = \n  (Remaining spend on channel A × ROAS_A) +\n  (New spend on channel B × Marginal_ROAS_B) +\n  (Original spend on channel B × ROAS_B)\n```\n\nIf expected new revenue > current revenue, the shift is value-creating.\n\n## Output Format\n\n```\n## Ad Spend Allocation Analysis\n\n### Current State\n| Channel | Spend | Revenue | ROAS | Marginal ROAS | Role |\n|---------|-------|---------|------|--------------|------|\n\n**Blended MER:** [X]x (target: [X]x)\n**Total Spend:** $[X]\u002Fmonth\n**Total Revenue:** $[X]\u002Fmonth\n\n### Key Findings\n- [Channel X] is [under-invested \u002F saturating \u002F over-invested]\n- Marginal ROAS gap: [specific]\n- Incrementality concern: [if applicable]\n- CPM trend context: [Meta +9%, etc.]\n\n### Reallocation Recommendations\n| Move | From | To | Amount | Expected Impact |\n|------|------|-----|--------|----------------|\n| 1 | [channel] | [channel] | $[X] (X% of budget) | [specific outcome] |\n\n### Quarterly Forecast\n| Scenario | Total Spend | Expected MER | Expected Revenue |\n|----------|------------|-------------|-----------------|\n| Conservative | $[X] | [X]x | $[X] |\n| Base | $[X] | [X]x | $[X] |\n| Aggressive | $[X] | [X]x | $[X] |\n\n### Testing & Validation Plan\n- [Incrementality tests to run]\n- [Monitoring cadence]\n- [Rollback criteria]\n```\n\n## Example\n\n**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?\"\n\n**Output:**\n\n## Ad Spend Allocation Analysis\n\n### Current State\n| Channel | Spend | Revenue (platform-reported) | ROAS | Est. Marginal ROAS | Role |\n|---------|-------|----------------------------|------|-------------------|------|\n| Google Search (non-brand) | $8K | $32K | 4.0x | 3.5x | Primary driver |\n| Google Search (brand) | $2K | $28K | 14.0x | 5.0x (incremental) | Fill\u002Fdefense |\n| Google PMax | $8K | $26K | 3.25x | 2.5x | Scaling |\n| Meta ASC | $15K | $48K | 3.2x | 2.4x | Primary driver |\n| Meta prospecting | $7K | $14K | 2.0x | 1.8x | Scaling |\n| TikTok | $5K | $8K | 1.6x | Unknown | Experimental |\n| YouTube | $3K | $5K | 1.67x | Unknown | Support\u002FMOFU |\n\n**Blended platform ROAS (sum):** 4.0x ($161K\u002F$48K)\n**Actual MER:** $165K ÷ $48K = **3.44x**\n**Attribution overlap:** ~14% (platform sum overcounts by this much)\n\n### Key Findings\n1. **TikTok and Meta prospecting are below target** — marginal ROAS underwater. These are the obvious cut candidates IF incrementality doesn't justify them\n2. **Google brand search is defensive** — high reported ROAS (14x) but likely 80% would happen organically. True incremental ROAS ~3.0x. Don't scale, don't cut\n3. **Google Search non-brand is primary** — healthy marginal ROAS at 3.5x, room to scale\n4. **Meta ASC is the workhorse** — 3.2x with 15K spend. Still room before saturation\n5. **YouTube is underfunded for meaningful signal** — $3K\u002Fmo can't support a real test. Either commit to $10K+ or kill it\n6. **CPM context:** Meta +9% in 2025 means Meta ASC efficiency is holding up against pressure — don't punish it for macro costs\n\n### Reallocation Recommendations (don't cut 20% — shift 20%)\n| Priority | Move | From | To | Amount | Expected Impact |\n|---------|------|------|-----|--------|----------------|\n| 1 | Kill TikTok test OR commit $10K+ | TikTok | Google Search non-brand | $5K | +$17-18K revenue at 3.5x marginal |\n| 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 |\n| 3 | Kill YouTube at this scale | YouTube | Google Search non-brand | $3K | $3K is below YouTube's signal threshold — reallocate |\n| 4 | **Net result:** | | | No cut; reallocation | Expected MER lift to 3.7x |\n\n### Counter-Argument to Cutting 20%\nCutting 20% ($9.6K) proportionally would:\n- Cut $1.6K from Google non-brand (the best performer) — **value destructive**\n- Cut $3K from Meta ASC — **value destructive**\n- Cut $1.6K from Google brand — **unnecessary, brand defense is cheap**\n\nInstead: **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.\n\n### Quarterly Forecast (next 3 months)\n| Scenario | Monthly Spend | Expected MER | Expected Revenue | Notes |\n|----------|--------------|-------------|-----------------|-------|\n| **Conservative (CMO's cut)** | $38.4K | 3.5x | $134K\u002Fmo | Value destructive |\n| **Base (reallocation)** | $48K | 3.7x | $178K\u002Fmo | Recommended |\n| **Aggressive (scale winners)** | $58K | 3.5x | $203K\u002Fmo | Requires creative refresh pipeline |\n\n### Incrementality Testing Plan\nBefore any major move, run:\n1. **Google brand holdout test** (1 month) — confirm true incremental value\n2. **Meta prospecting geo-split test** — verify it's feeding ASC vs wasted\n3. **YouTube investment test** — if keeping, commit $10K for 60 days to get real signal\n\n### Monitoring Plan\n- Weekly MER tracking vs 3.7x target\n- Marginal ROAS calculation monthly per channel\n- CPM trend overlay — separate cost pressure from performance decay\n- Rollback: if reallocation drops MER below 3.3x after 30 days, revert\n\n## Guidelines\n\n- **Don't sum platform ROAS and call it blended ROAS.** Platforms overclaim. Use MER (total revenue ÷ total spend) as the north star.\n- **Don't make allocation decisions on platform-reported ROAS alone.** Platform ROAS overcounts by 10-30% typically. Incrementality testing is the gold standard.\n- **Don't shift more than 20% of a channel's budget at once.** Destabilizes learning on both sides. Gradual reallocation (10-15% moves) preserves performance.\n- **Don't kill a \"low ROAS\" channel without testing incrementality.** It may be feeding your \"high ROAS\" channel. Run a holdout test first.\n- **Don't ignore diminishing returns.** Scaling past the efficient frontier wastes money. Monitor marginal ROAS, not just average.\n- **Don't forecast linearly.** Diminishing returns are nonlinear. 2x budget ≠ 2x revenue in most channels.\n- **Don't conflate CPM inflation with performance decay.** Meta +9% CPM in 2025 means some \"decline\" is macro, not campaign failure.\n- **Don't run $3K monthly tests and expect signal.** Each channel has a minimum signal threshold. Under-funded experiments produce noise.\n- **Don't assume MMM output without incrementality calibration.** Google Meridian and other MMMs need incrementality experiments to calibrate. Uncalibrated MMM is directionally useful but not decisive.\n- **Cross-references:** For within-platform optimization, use the **google-ads-optimizer** and **meta-ads-optimizer** skills. For channel-specific analysis, use the **campaign-analyzer** skill. For reporting the allocation story to stakeholders, use the **paid-media-reporter** skill.\n- **Confidence:** Target MER benchmarks vary by industry, margin, and LTV. CPM trend data from Meta Q1 2025 earnings may shift quarter to quarter. Incrementality ranges are illustrative — your account will differ.\n",{"name":5,"description":7},"main","c137446804eb85b2cc0ba009c62068253a7c47be","skills\u002Fad-spend-allocator",2,"https:\u002F\u002Fgithub.com\u002Fnarayan-metaflow\u002Fmetaflow-marketing-skills","https:\u002F\u002Fgithub.com\u002Fnarayan-metaflow","engineer by education, marketer by profession, building rn","2026-09-16 13:41:44",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add narayan-metaflow\u002Fmetaflow-marketing-skills --skill ad-spend-allocator",{"tool":62,"command":63},"bunx","bunx skills add narayan-metaflow\u002Fmetaflow-marketing-skills --skill ad-spend-allocator",{"tool":65,"command":66},"pnpm","pnpm dlx skills add narayan-metaflow\u002Fmetaflow-marketing-skills --skill ad-spend-allocator","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fnarayan-metaflow\u002Fmetaflow-marketing-skills\u002Fblob\u002Fmain\u002Fskills\u002Fad-spend-allocator\u002FSKILL.md",true,[],[71,104,133,154,183,211],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":85,"publishedAt":43},"01M718Q16XB7D7ZMGNNA1226G5","technical-seo-ai-crawler-audit","Diagnose and prioritize the technical issues blocking a site from being crawled, indexed, ranked, and cited. Modern technical SEO has two audiences: Google's crawler\u002Findexer and AI answer engines (GPTBot, PerplexityBot, ClaudeBot, etc.). Both need HTML-visible content and a clean crawl path.","https:\u002F\u002Fgithub.com\u002Fnarayan-metaflow\u002Fmetaflow-marketing-skills\u002Fblob\u002Fmain\u002Fskills\u002Ftechnical-seo-ai-crawler-audit\u002FSKILL.md",[77,82],{"categoryNo":78,"categoryName":79,"taxonomyType":80,"taxonomyTypeDesc":81},"01JBSEEDCAT000000000000019","营销推广","SCENARIO","使用场景",{"categoryNo":83,"categoryName":84,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000035","市场营销",[86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103],"seo","technical","technical seo","technical seo ai crawler audit","audit","crawler","crawl","diagnose","answer","issues","clean","indexer","google","prioritize","site","content","html","path",{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":115,"publishedAt":43},"01M718PY2PKA7BYS5KNJ2A9DRT","seo-reporting-measurement","Build reports that stakeholders trust, rooted in data sources that are actually reliable. Modern SEO measurement has to reckon with a very specific constraint: **the primary data source (GSC) is ~75% incomplete**, and the AI visibility layer is **probabilistic**, not deterministic. Building reports that ignore these realities produces false confidence.","https:\u002F\u002Fgithub.com\u002Fnarayan-metaflow\u002Fmetaflow-marketing-skills\u002Fblob\u002Fmain\u002Fskills\u002Fseo-reporting-measurement\u002FSKILL.md",[110,111,114],{"categoryNo":78,"categoryName":79,"taxonomyType":80,"taxonomyTypeDesc":81},{"categoryNo":112,"categoryName":113,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000033","数据分析师",{"categoryNo":83,"categoryName":84,"taxonomyType":21,"taxonomyTypeDesc":22},[116,117,118,119,86,120,121,122,123,124,125,126,127,128,129,130,131,132],"seo reporting","seo reporting measurement","reporting","measurement","sources","gsc","false","reports","data sources","data","layer","source","deterministic","trust","with","build","constraint",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":141,"publishedAt":43},"01M718PVF0SP35J6S9EHRGQZQ1","seo-max-kt","Long-form SEO and AEO methodology bundle; read SEO_AND_AEO_KT.md for the full corpus.","https:\u002F\u002Fgithub.com\u002Fnarayan-metaflow\u002Fmetaflow-marketing-skills\u002Fblob\u002Fmain\u002Fskills\u002Fseo-max-kt\u002FSKILL.md",[139,140],{"categoryNo":78,"categoryName":79,"taxonomyType":80,"taxonomyTypeDesc":81},{"categoryNo":83,"categoryName":84,"taxonomyType":21,"taxonomyTypeDesc":22},[142,86,143,144,145,146,147,148,149,150,151,152,153],"kt","seo max kt","max","aeo","long-form","methodology","form","for","bundle","full","read","long",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":165,"publishedAt":43},"01M718PRQNX2JF71GBFTH3MV19","seo-keyword-research-intent-mapping","Build a keyword universe that reflects how both humans *and* AI answer engines search. Traditional keyword research looks at standalone terms; modern research also maps the **fan-out sub-queries** AI tools generate when breaking down a user prompt.","https:\u002F\u002Fgithub.com\u002Fnarayan-metaflow\u002Fmetaflow-marketing-skills\u002Fblob\u002Fmain\u002Fskills\u002Fseo-keyword-research-intent-mapping\u002FSKILL.md",[160,161,164],{"categoryNo":78,"categoryName":79,"taxonomyType":80,"taxonomyTypeDesc":81},{"categoryNo":162,"categoryName":163,"taxonomyType":80,"taxonomyTypeDesc":81},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":83,"categoryName":84,"taxonomyType":21,"taxonomyTypeDesc":22},[86,166,167,168,169,170,171,172,173,174,94,175,176,177,178,179,180,131,181,182],"seo keyword research","seo keyword research intent mapping","research","intent","keyword research","mapping","ai tools","standalone","down","search","prompt","when","maps","queries","generate","how","at",{"skillNo":184,"name":185,"nameZh":6,"description":186,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":187,"categories":188,"keywords":197,"publishedAt":43},"01M718PNDT3A19SV7KVWC9083P","seo-aeo-content-strategy","Design content systems that earn both Google rankings *and* AI citations. The core insight: AI answer engines read content differently than humans — they extract the highest-information-gain sentences and treat H2 headings as prompts. The \"ski ramp\" structure optimizes for both.","https:\u002F\u002Fgithub.com\u002Fnarayan-metaflow\u002Fmetaflow-marketing-skills\u002Fblob\u002Fmain\u002Fskills\u002Fseo-aeo-content-strategy\u002FSKILL.md",[189,192,193,194],{"categoryNo":190,"categoryName":191,"taxonomyType":80,"taxonomyTypeDesc":81},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":78,"categoryName":79,"taxonomyType":80,"taxonomyTypeDesc":81},{"categoryNo":83,"categoryName":84,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":195,"categoryName":196,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000036","内容创作者",[86,145,198,199,200,101,201,202,203,149,94,204,205,206,207,152,208,209,98,210],"strategy","seo aeo content strategy","content strategy","Citations","as","core","design","information","earn","structure","systems","ramp","prompts",{"skillNo":212,"name":213,"nameZh":6,"description":214,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":215,"categories":216,"keywords":220,"publishedAt":43},"01M718PJM103BE7581G6NRCC7T","prompt-picker","Build a prompt library that reveals how a brand shows up across the full buyer journey in AI search systems. The library is designed for actual LLM visibility tracking, not theoretical SEO keyword research.","https:\u002F\u002Fgithub.com\u002Fnarayan-metaflow\u002Fmetaflow-marketing-skills\u002Fblob\u002Fmain\u002Fskills\u002Fprompt-picker\u002FSKILL.md",[217],{"categoryNo":218,"categoryName":219,"taxonomyType":80,"taxonomyTypeDesc":81},"01JBSEEDCAT000000000000023","Skill与智能体开发",[221,176,222,223,86,149,166,175,224,225,226,37,168,131,181,208,170,227,228,151],"prompt picker","llm visibility","brand","up","journey","prompt library","library","tracking"]