Cross-Platform Budget Allocator
SKILL.md
HOW_TO_USE.md
sample_input.json
expected_output.json
skillscross-platformSKILL.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
# Cross-Platform Budget Allocator
Stop guessing. Start allocating with data.
## Core Philosophy
**Every dollar should earn its place.** Platform loyalty is expensive, money flows to performance.
**The Allocation Paradox:** Your best platform today might not be your best platform at 2x the budget. Efficiency curves are different for every channel.
**The Three Principles of Allocation:**
1. **Marginal returns matter:** $1,000 more to Google might yield less than $1,000 to Meta
2. **Diminishing returns are real:** Every platform has an efficiency ceiling
3. **Portfolio thinking wins:** Diversification protects against platform volatility
---
## Required Context
### Must Have
**1. Platform Performance Data**
For each platform currently running:
- Monthly spend
- Conversions (or revenue)
- CPA (or ROAS)
- Trend direction (improving/stable/declining)
**2. Budget Parameters**
- Total budget to allocate
- Time period (monthly/quarterly)
- Flexibility (fixed total vs. range)
**3. Business Goals**
- Primary KPI (CPA, ROAS, volume, brand awareness)
- Target efficiency metrics
- Growth vs. efficiency priority
### Strongly Recommended
**4. Platform-Specific Context**
- Impression share / audience saturation data
- Historical performance at different spend levels
- Learning phase or scaling status
**5. Constraints**
- Platform minimums (can't go below $X)
- Platform maximums (caps)
- New platform testing budget
- Brand vs. non-brand split requirements
### Nice to Have
- Attribution model being used
- Customer journey insights (which platform drives awareness vs. conversion)
- Competitive landscape by platform
- Seasonality patterns
- Previous allocation experiments
---
## Allocation Framework
### Step 1: Performance Baseline
**Efficiency Ranking:**
Rank platforms by primary KPI (CPA or ROAS)
| Rank | Platform | CPA | vs. Target | Trend |
|------|----------|-----|------------|-------|
| 1 | [Best] | $X | -X% | [โโโ] |
| 2 | [Second] | $X | X% | [โโโ] |
| ... | ... | ... | ... | ... |
**Volume vs. Efficiency Matrix:**
```
HIGH EFFICIENCY
โ
SCALE โ MAXIMIZE
(High volume, โ (High volume,
good efficiency) โ great efficiency)
โ
โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโ
โ
TEST/CUT โ NICHE
(Low volume, โ (Low volume,
poor efficiency) โ great efficiency)
โ
LOW EFFICIENCY
```
---
### Step 2: Marginal Return Analysis
**Key Question:** If I add $1,000 to each platform, what do I get?
**Estimating Marginal CPA:**
- Platform at <50% impression share: Likely similar CPA on incremental spend
- Platform at 50-70% impression share: Expect 10-20% CPA increase
- Platform at >70% impression share: Expect 20-40% CPA increase
- Platform in "Learning Limited": May improve with more budget
**Efficiency Curve Patterns:**
```
CPA
โ
โ โญโโโโโโ Saturated
โ โญโโโโโฏ
โ โญโโโโโฏ
โ โญโโโโโฏ
โ โญโโโโโฏ
โ โญโโโโโฏ
โโญโโโโโฏ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Spend
Sweet Spot Diminishing Ceiling
```
---
### Step 3: Allocation Models
**Model A: Efficiency-Weighted Allocation**
Allocate proportionally to efficiency (inverse of CPA)
```
Platform Share = (1/Platform CPA) / Sum(1/All CPAs)
```
Best for: Maximizing total conversions at target efficiency
**Model B: Volume-Weighted with Efficiency Floor**
Allocate to platforms meeting efficiency threshold, weighted by current volume
```
If CPA < Target: Eligible for budget
Platform Share = Platform Volume / Total Eligible Volume
```
Best for: Scaling while maintaining efficiency standards
**Model C: Marginal Return Optimization**
Allocate incremental dollars to platform with best marginal return
```
1. Start with minimum allocations
2. Add $1K to platform with best projected marginal CPA
3. Repeat until budget exhausted
```
Best for: Maximizing efficiency at any budget level
**Model D: Portfolio Diversification**
Set minimum/maximum caps to ensure diversification
```
No platform > 50% of total budget
No platform < 10% of total budget (if running)
Testing budget: 10-15% to new/experimental platforms
```
Best for: Risk management and platform dependency reduction
---
### Step 4: Constraint Application
**Common Constraints:**
| Constraint Type | How to Handle |
|-----------------|---------------|
| Platform minimum | Set floor, allocate remaining optimally |
| Platform maximum | Set ceiling, reallocate overflow to next best |
| Brand budget | Carve out first, optimize non-brand separately |
| Testing budget | Reserve %, don't include in optimization |
| Seasonal adjustment | Apply multipliers to base allocation |
---
### Step 5: Scenario Modeling
**Always model three scenarios:**
1. **Conservative:** Prioritize proven performers, minimal change
2. **Balanced:** Optimize based on data, moderate reallocation
3. **Aggressive:** Chase highest marginal returns, significant shifts
---
## Platform-Specific Considerations
### Google Ads
- **Strengths:** High intent, measurable, scalable
- **Scaling signals:** Impression share <80%, budget limited campaigns
- **Watch for:** CPC inflation in competitive auctions
- **Typical efficiency curve:** Gradual decline after 70% IS
### Meta Ads
- **Strengths:** Broad reach, creative-driven, discovery
- **Scaling signals:** Frequency <3, audience not exhausted
- **Watch for:** Creative fatigue, iOS attribution gaps
- **Typical efficiency curve:** Sharp decline when frequency spikes
### TikTok Ads
- **Strengths:** Low CPMs, engaged audience, viral potential
- **Scaling signals:** New platform opportunity, creative performing
- **Watch for:** Conversion tracking maturity, audience fit
- **Typical efficiency curve:** Volatile, creative-dependent
### LinkedIn Ads
- **Strengths:** B2B targeting precision, professional context
- **Scaling signals:** Audience size >50K, frequency manageable
- **Watch for:** High CPMs ($8-15), small audiences exhaust fast
- **Typical efficiency curve:** Quick saturation in niche audiences
### Microsoft Ads
- **Strengths:** Lower CPCs, older demographic, desktop heavy
- **Scaling signals:** Google campaigns profitable, IS headroom
- **Watch for:** Lower volume, import quality issues
- **Typical efficiency curve:** Similar to Google, lower ceiling
---
## Output Format
### Budget Allocation Summary
```
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
CROSS-PLATFORM BUDGET ALLOCATION
Total Budget: $[X]/month
Primary Goal: [CPA/ROAS/Volume]
Allocation Model: [Model Used]
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
```
---
### Current State Analysis
**Performance by Platform:**
| Platform | Current Spend | Conversions | CPA | vs. Target | ROAS | Trend |
|----------|--------------|-------------|-----|------------|------|-------|
| Google Ads | $[X] | [X] | $[X] | [X]% | [X] | [โโโ] |
| Meta Ads | $[X] | [X] | $[X] | [X]% | [X] | [โโโ] |
| [Platform] | $[X] | [X] | $[X] | [X]% | [X] | [โโโ] |
| **Total** | $[X] | [X] | $[X] | [X]% | [X] | |
**Current Allocation:**
```
Google Ads: โโโโโโโโโโโโโโโโโโโโ [X]% ($[X])
Meta Ads: โโโโโโโโโโโโ [X]% ($[X])
[Platform]: โโโโ [X]% ($[X])
```
**Efficiency Ranking:** [Platform 1] > [Platform 2] > [Platform 3]
**Scaling Headroom Assessment:**
| Platform | Saturation Signal | Headroom | Notes |
|----------|-------------------|----------|-------|
| Google | [X]% impression share | [High/Med/Low] | [Notes] |
| Meta | [X] frequency | [High/Med/Low] | [Notes] |
| [Platform] | [Signal] | [High/Med/Low] | [Notes] |
---
### Recommended Allocation
**Model Used:** [Model Name]
**Rationale:** [One sentence explanation]
| Platform | Current | Recommended | Change | % of Total |
|----------|---------|-------------|--------|------------|
| Google Ads | $[X] | $[X] | [+/-$X] | [X]% |
| Meta Ads | $[X] | $[X] | [+/-$X] | [X]% |
| [Platform] | $[X] | $[X] | [+/-$X] | [X]% |
| Testing/New | $[X] | $[X] | [+/-$X] | [X]% |
| **Total** | $[X] | $[X] | | 100% |
**Visual Comparison:**
```
CURRENT RECOMMENDED
Google: โโโโโโโโโโโโ 40% Google: โโโโโโโโโโโโโโ 45%
Meta: โโโโโโโโโโ 35% Meta: โโโโโโโโ 30%
TikTok: โโโโ 15% TikTok: โโโโโโ 20%
Other: โโ 10% Other: โ 5%
```
---
### Allocation Rationale
**Why increase [Platform]:**
- [Reason 1 with data]
- [Reason 2 with data]
**Why decrease [Platform]:**
- [Reason 1 with data]
- [Reason 2 with data]
**Why maintain [Platform]:**
- [Reason with data]
---
### Projected Outcomes
**At Recommended Allocation:**
| Metric | Current | Projected | Change |
|--------|---------|-----------|--------|
| Total Conversions | [X] | [X] | [+/-X]% |
| Blended CPA | $[X] | $[X] | [+/-X]% |
| Blended ROAS | [X] | [X] | [+/-X]% |
**Assumptions:**
- [Assumption 1]
- [Assumption 2]
- [Assumption 3]
**Confidence Level:** [High/Medium/Low]
- High: Historical data supports projections
- Medium: Some extrapolation required
- Low: Significant unknowns
---
### Scenario Comparison
| Scenario | Google | Meta | [Other] | Projected CPA | Projected Volume |
|----------|--------|------|---------|---------------|------------------|
| Conservative | $[X] | $[X] | $[X] | $[X] | [X] |
| **Balanced (Rec)** | $[X] | $[X] | $[X] | $[X] | [X] |
| Aggressive | $[X] | $[X] | $[X] | $[X] | [X] |
**Conservative:** [Description]
**Balanced:** [Description]
**Aggressive:** [Description]
---
### Implementation Plan
**Phase 1: Immediate Changes (Week 1)**
- [ ] [Specific budget change]
- [ ] [Specific budget change]
**Phase 2: Gradual Shift (Weeks 2-4)**
- [ ] [Gradual adjustment]
- [ ] [Gradual adjustment]
**Phase 3: Optimization (Week 4+)**
- [ ] Review performance at new levels
- [ ] Fine-tune based on actual results
**Change Management:**
- Don't shift >25% of any platform's budget at once
- Allow 2 weeks for algorithms to adjust
- Monitor daily for first week after changes
---
### Monitoring & Rebalancing
**Weekly Check:**
- [ ] CPA by platform vs. projection
- [ ] Spend pacing vs. allocation
- [ ] Any platform hitting constraints
**Rebalancing Triggers:**
- Platform CPA exceeds projection by >20% for 2 weeks
- Platform underdelivering by >15% for 2 weeks
- Major external change (algorithm update, seasonality shift)
**Quarterly Review:**
- Full reallocation analysis
- Update efficiency curves
- Reassess platform priorities
---
### Risks & Mitigation
**Risk 1: [Platform] underperforms at higher spend**
- Likelihood: [X]
- Impact: [X]
- Mitigation: Gradual scaling, weekly monitoring, quick pullback plan
**Risk 2: [Platform] can't absorb budget decrease**
- Likelihood: [X]
- Impact: [X]
- Mitigation: Reallocate gradually, maintain campaigns for quick scale-back
**Risk 3: Attribution differences distort comparison**
- Likelihood: [X]
- Impact: [X]
- Mitigation: Use consistent windows, acknowledge limitations, focus on trends
---
## Limitations
**I can provide:**
- Data-driven allocation recommendations
- Scenario modeling
- Implementation guidance
- Monitoring framework
**I cannot provide:**
- Cross-platform attribution modeling
- Incrementality measurement
- Platform-specific optimization tactics
- Creative strategy by platform
**For better allocations, also provide:**
- Historical performance at different spend levels
- Impression share / saturation data
- Customer journey insights
- Attribution window consistency info
---
## Quality Checklist
Before delivering allocation:
- [ ] All platforms included with current performance
- [ ] Allocation sums to total budget
- [ ] Rationale provided for each change
- [ ] Constraints respected
- [ ] Projections include assumptions
- [ ] Implementation plan is gradual (not shock changes)
- [ ] Monitoring framework included
- [ ] Risks identified with mitigations
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# How to Use This Skill
Hey Claude, I just added the "cross-platform-budget-allocator" skill. Can you help me figure out how to split my ad budget across Google, Meta, and TikTok?
## Example Invocations
**Example 1: Full Allocation Analysis**
Hey Claude, I just added the "cross-platform-budget-allocator" skill. I have $50K/month to spend across Google Ads, Meta Ads, and LinkedIn. Here's my performance by platform. How should I allocate?
**Example 2: Budget Increase**
Hey Claude, I just added the "cross-platform-budget-allocator" skill. My budget is increasing from $30K to $45K next month. I currently run Google and Meta. Should I add a new channel or scale existing ones?
**Example 3: Rebalancing**
Hey Claude, I just added the "cross-platform-budget-allocator" skill. Meta performance has dropped 30% in the last month while Google stayed flat. Should I shift budget? How much?
**Example 4: New Platform Decision**
Hey Claude, I just added the "cross-platform-budget-allocator" skill. I'm considering adding TikTok to my mix. How much should I test with, and where should that budget come from?
**Example 5: Efficiency vs. Volume**
Hey Claude, I just added the "cross-platform-budget-allocator" skill. I need to hit 500 conversions next month but also keep CPA under $50. Here's my platform data, how do I balance volume and efficiency?
## What to Provide
**Required:**
- Platforms you're currently running (or considering)
- Monthly spend per platform
- Conversions (or revenue) per platform
- CPA or ROAS per platform
- Total budget to allocate
- Primary goal (efficiency vs. volume)
**Recommended:**
- Target CPA or ROAS
- Trend direction per platform (improving/declining/stable)
- Any saturation signals (impression share, frequency)
- Constraints (minimums, maximums, brand carve-outs)
**Optional:**
- Historical performance at different spend levels
- Attribution setup/windows
- Customer journey insights
- Seasonality patterns
- Competitive context
## What You'll Get
1. **Current State Analysis** - Performance comparison across platforms
2. **Efficiency Ranking** - Which platforms deserve more budget
3. **Recommended Allocation** - Specific dollar amounts per platform
4. **Rationale** - Why each change is recommended
5. **Projected Outcomes** - Expected CPA/ROAS/volume at new allocation
6. **Scenario Comparison** - Conservative/Balanced/Aggressive options
7. **Implementation Plan** - How to make changes gradually
8. **Monitoring Framework** - When to rebalance
## Pro Tips
- Provide performance data for the same time period across all platforms
- Include impression share or frequency data, it reveals scaling headroom
- Be clear about constraints (can't reduce Platform X below $Y)
- If attribution differs by platform, mention it, affects comparisons
- Budget shifts should be gradual (25% max at a time), algorithms need time to adjust
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
{
"business_context": {
"company": "B2B SaaS - HR Software",
"conversion_type": "Demo Requests",
"target_cpa": 150,
"average_deal_value": 12000,
"sales_capacity": "Can handle up to 200 demos/month"
},
"budget_parameters": {
"total_monthly_budget": 60000,
"budget_flexibility": "Fixed total, flexible allocation",
"planning_period": "Q1 2025",
"testing_budget_preference": "10-15% for experiments"
},
"current_allocation": {
"google_ads": {
"monthly_spend": 30000,
"conversions": 180,
"cpa": 166.67,
"roas": null,
"impression_share": 68,
"trend": "stable",
"campaign_types": [
"Search - Brand",
"Search - Non-Brand",
"Performance Max"
],
"notes": "Non-brand struggling, brand efficient, PMax inconsistent"
},
"meta_ads": {
"monthly_spend": 20000,
"conversions": 95,
"cpa": 210.53,
"roas": null,
"frequency": 2.8,
"trend": "declining",
"campaign_types": [
"Prospecting - Lookalikes",
"Retargeting"
],
"notes": "Was better 3 months ago, creative fatigue suspected"
},
"linkedin_ads": {
"monthly_spend": 10000,
"conversions": 55,
"cpa": 181.82,
"roas": null,
"frequency": 3.5,
"trend": "stable",
"campaign_types": [
"Sponsored Content",
"Lead Gen Forms"
],
"notes": "Smaller volume but decent quality leads, audience getting saturated"
}
},
"platform_details": {
"google_ads": {
"brand_spend": 8000,
"brand_conversions": 75,
"brand_cpa": 106.67,
"nonbrand_spend": 15000,
"nonbrand_conversions": 72,
"nonbrand_cpa": 208.33,
"pmax_spend": 7000,
"pmax_conversions": 33,
"pmax_cpa": 212.12,
"search_impression_share": 68,
"budget_limited_campaigns": 2
},
"meta_ads": {
"prospecting_spend": 14000,
"prospecting_conversions": 55,
"prospecting_cpa": 254.55,
"retargeting_spend": 6000,
"retargeting_conversions": 40,
"retargeting_cpa": 150,
"top_audience": "LAL - Customers 1%",
"audience_size": "1.2M"
},
"linkedin_ads": {
"sponsored_content_spend": 7000,
"sponsored_content_conversions": 35,
"sponsored_content_cpa": 200,
"lead_gen_spend": 3000,
"lead_gen_conversions": 20,
"lead_gen_cpa": 150,
"target_audience_size": 450000,
"audience_match_rate": "85%"
}
},
"historical_context": {
"last_quarter_performance": {
"google_ads": {
"spend": 28000,
"conversions": 175,
"cpa": 160
},
"meta_ads": {
"spend": 18000,
"conversions": 108,
"cpa": 166.67
},
"linkedin_ads": {
"spend": 9000,
"conversions": 50,
"cpa": 180
}
},
"notes": "Meta has degraded significantly (CPA up 26%), Google and LinkedIn relatively stable"
},
"constraints": {
"google_minimum": 25000,
"google_maximum": null,
"meta_minimum": 10000,
"meta_maximum": null,
"linkedin_minimum": 5000,
"linkedin_maximum": 15000,
"brand_carveout": 8000,
"new_platform_interest": [
"Microsoft Ads",
"TikTok (skeptical for B2B)"
]
},
"goals": {
"primary": "Reduce blended CPA while maintaining volume",
"target_conversions": "330+ demos/month",
"target_cpa": 150,
"secondary": "Test Microsoft Ads as potential Google supplement"
},
"attribution": {
"google": "Data-driven attribution",
"meta": "7-day click, 1-day view",
"linkedin": "30-day click",
"notes": "Attribution windows differ - LinkedIn may overclaim relative to others"
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
{
"summary": {
"total_budget": 60000,
"current_conversions": 330,
"current_blended_cpa": 181.82,
"target_cpa": 150,
"gap": "+21%",
"primary_recommendation": "Shift budget from underperforming Meta prospecting to Google Brand and Microsoft Ads test",
"expected_improvement": "-12% CPA (from $182 to $160)"
},
"current_state_analysis": {
"performance_by_platform": [
{
"platform": "Google Ads",
"spend": 30000,
"conversions": 180,
"cpa": 166.67,
"vs_target": "+11%",
"percent_of_total": "50%",
"trend": "stable",
"efficiency_rank": 1
},
{
"platform": "LinkedIn Ads",
"spend": 10000,
"conversions": 55,
"cpa": 181.82,
"vs_target": "+21%",
"percent_of_total": "17%",
"trend": "stable",
"efficiency_rank": 2
},
{
"platform": "Meta Ads",
"spend": 20000,
"conversions": 95,
"cpa": 210.53,
"vs_target": "+40%",
"percent_of_total": "33%",
"trend": "declining",
"efficiency_rank": 3
}
],
"blended_metrics": {
"total_spend": 60000,
"total_conversions": 330,
"blended_cpa": 181.82,
"vs_target": "+21%"
},
"efficiency_ranking": "Google Brand ($107) > LinkedIn Lead Gen ($150) > Meta Retargeting ($150) > Google Non-Brand ($208) > LinkedIn Sponsored ($200) > Meta Prospecting ($255) > Google PMax ($212)"
},
"scaling_headroom_assessment": {
"google_ads": {
"signal": "68% impression share, 2 budget-limited campaigns",
"headroom": "HIGH",
"notes": "Clear room to scale, especially brand and efficient non-brand segments",
"marginal_cpa_estimate": "Similar to current at +$5K, slight increase at +$10K"
},
"meta_ads": {
"signal": "Frequency 2.8, declining performance trend",
"headroom": "LOW",
"notes": "Creative fatigue evident, scaling would likely worsen CPA further",
"marginal_cpa_estimate": "Expect 15-25% CPA increase on incremental spend"
},
"linkedin_ads": {
"signal": "Frequency 3.5, 450K audience at 85% match",
"headroom": "LOW-MEDIUM",
"notes": "Audience nearing saturation, can absorb small increase but limited",
"marginal_cpa_estimate": "Expect 10-15% CPA increase beyond current spend"
}
},
"sub_channel_analysis": {
"winners_scale": [
{
"channel": "Google - Brand",
"spend": 8000,
"cpa": 106.67,
"vs_target": "-29%",
"action": "Increase to capture more branded demand"
},
{
"channel": "LinkedIn - Lead Gen Forms",
"spend": 3000,
"cpa": 150,
"vs_target": "At target",
"action": "Maintain, at capacity for format"
},
{
"channel": "Meta - Retargeting",
"spend": 6000,
"cpa": 150,
"vs_target": "At target",
"action": "Maintain, efficient for retargeting role"
}
],
"optimize_fix": [
{
"channel": "Google - Non-Brand",
"spend": 15000,
"cpa": 208.33,
"vs_target": "+39%",
"action": "Optimize keywords/bids before scaling"
},
{
"channel": "LinkedIn - Sponsored Content",
"spend": 7000,
"cpa": 200,
"vs_target": "+33%",
"action": "Test new creative, consider audience refresh"
}
],
"reduce_cut": [
{
"channel": "Meta - Prospecting",
"spend": 14000,
"cpa": 254.55,
"vs_target": "+70%",
"action": "Reduce significantly until creative refreshed"
},
{
"channel": "Google - PMax",
"spend": 7000,
"cpa": 212.12,
"vs_target": "+41%",
"action": "Reduce or pause, reallocate to search"
}
]
},
"recommended_allocation": {
"model_used": "Marginal Return Optimization with Constraints",
"rationale": "Shift from declining Meta prospecting to proven Google channels and test Microsoft Ads for additional search inventory",
"allocation": [
{
"platform": "Google Ads",
"current": 30000,
"recommended": 36000,
"change": "+6000",
"percent_change": "+20%",
"percent_of_total": "60%",
"sub_allocation": {
"brand": {
"current": 8000,
"recommended": 10000,
"change": "+2000"
},
"non_brand": {
"current": 15000,
"recommended": 18000,
"change": "+3000"
},
"pmax": {
"current": 7000,
"recommended": 4000,
"change": "-3000"
},
"microsoft_import": {
"current": 0,
"recommended": 4000,
"change": "+4000"
}
}
},
{
"platform": "Meta Ads",
"current": 20000,
"recommended": 12000,
"change": "-8000",
"percent_change": "-40%",
"percent_of_total": "20%",
"sub_allocation": {
"prospecting": {
"current": 14000,
"recommended": 6000,
"change": "-8000"
},
"retargeting": {
"current": 6000,
"recommended": 6000,
"change": "0"
}
}
},
{
"platform": "LinkedIn Ads",
"current": 10000,
"recommended": 8000,
"change": "-2000",
"percent_change": "-20%",
"percent_of_total": "13%",
"sub_allocation": {
"sponsored_content": {
"current": 7000,
"recommended": 5000,
"change": "-2000"
},
"lead_gen": {
"current": 3000,
"recommended": 3000,
"change": "0"
}
}
},
{
"platform": "Microsoft Ads",
"current": 0,
"recommended": 4000,
"change": "+4000",
"percent_change": "NEW",
"percent_of_total": "7%",
"notes": "Import top Google campaigns, test for 6-8 weeks"
}
],
"total_allocated": 60000,
"testing_budget": 4000,
"testing_percent": "7%"
},
"allocation_rationale": {
"increase_google": [
"Best performing platform overall ($167 blended CPA)",
"32% impression share headroom indicates scaling capacity",
"Budget-limited campaigns suggest incremental spend will convert",
"Brand campaigns extremely efficient at $107 CPA"
],
"decrease_meta": [
"CPA increased 26% quarter-over-quarter (from $167 to $211)",
"Prospecting at $255 CPA is 70% above target",
"Declining trend suggests creative/audience fatigue",
"Keep retargeting which remains efficient at $150 CPA"
],
"decrease_linkedin": [
"Frequency at 3.5 indicates audience saturation",
"Small audience (450K) limits scaling potential",
"Maintain efficient Lead Gen Forms, reduce costly Sponsored Content"
],
"add_microsoft": [
"Natural extension of Google search success",
"Typically 20-30% lower CPCs than Google",
"Easy import from existing Google campaigns",
"Tests hypothesis that search intent converts for this business"
]
},
"projected_outcomes": {
"at_recommended_allocation": {
"projected_conversions": {
"google": 225,
"meta": 52,
"linkedin": 42,
"microsoft": 22,
"total": 341
},
"projected_cpa": {
"google": 160,
"meta": 230.77,
"linkedin": 190.48,
"microsoft": 181.82,
"blended": 175.95
}
},
"comparison": {
"current_conversions": 330,
"projected_conversions": 341,
"change": "+3%",
"current_cpa": 181.82,
"projected_cpa": 175.95,
"change_cpa": "-3%"
},
"assumptions": [
"Google scales efficiently to +$6K based on impression share headroom",
"Meta prospecting CPA holds at reduced spend (fewer bad impressions)",
"Microsoft achieves similar efficiency to Google non-brand",
"LinkedIn small reduction doesn't significantly impact delivery"
],
"confidence": "Medium - Google scaling likely, Meta recovery and Microsoft performance are unknowns"
},
"scenario_comparison": {
"conservative": {
"description": "Minimal changes, maintain current structure with small optimizations",
"allocation": {
"google": 32000,
"meta": 18000,
"linkedin": 10000,
"microsoft": 0
},
"projected_cpa": 178,
"projected_conversions": 337,
"risk": "Low",
"upside": "Low"
},
"balanced": {
"description": "Recommended allocation - shift from Meta to Google + Microsoft test",
"allocation": {
"google": 36000,
"meta": 12000,
"linkedin": 8000,
"microsoft": 4000
},
"projected_cpa": 175.95,
"projected_conversions": 341,
"risk": "Medium",
"upside": "Medium"
},
"aggressive": {
"description": "Major shift to Google, minimal Meta, larger Microsoft test",
"allocation": {
"google": 42000,
"meta": 10000,
"linkedin": 5000,
"microsoft": 3000
},
"projected_cpa": 168,
"projected_conversions": 357,
"risk": "High",
"upside": "High"
}
},
"implementation_plan": {
"phase_1_week_1": {
"actions": [
"Reduce Google PMax from $7K to $4K",
"Reduce Meta Prospecting from $14K to $10K",
"Increase Google Brand from $8K to $10K",
"Set up Microsoft Ads account and import top Google campaigns"
],
"net_change": "Google: +$2K, Meta: -$4K (holding $2K for Microsoft launch)"
},
"phase_2_weeks_2_3": {
"actions": [
"Launch Microsoft Ads at $4K/month",
"Reduce Meta Prospecting from $10K to $6K",
"Increase Google Non-Brand from $15K to $18K",
"Reduce LinkedIn Sponsored Content from $7K to $5K"
],
"net_change": "Reach target allocation"
},
"phase_3_weeks_4_plus": {
"actions": [
"Monitor performance at new levels",
"Optimize Microsoft Ads based on initial data",
"If Meta creative is refreshed, consider testing reallocation",
"Fine-tune Google bid strategies for new budget levels"
]
},
"change_management_notes": [
"Don't reduce Meta more than $4K in first week - algorithm needs adjustment time",
"Google budget increases should be gradual to maintain quality",
"Microsoft will need 2-3 weeks in learning phase - don't judge too early",
"Weekly reviews for first month, then bi-weekly"
]
},
"monitoring_framework": {
"weekly_metrics": [
"CPA by platform vs projection",
"Spend pacing vs allocation",
"Google impression share trend",
"Meta frequency trend",
"Microsoft learning phase status"
],
"rebalancing_triggers": [
"Any platform CPA exceeds projection by >25% for 2 consecutive weeks",
"Google impression share doesn't improve despite budget increase",
"Microsoft CPA exceeds $250 after 4 weeks",
"Meta retargeting CPA spikes above $200"
],
"success_criteria_4_weeks": [
"Blended CPA below $180",
"Total conversions above 320",
"Google impression share above 75%",
"Microsoft generating >15 conversions at <$200 CPA"
]
},
"risks_and_mitigation": [
{
"risk": "Google can't absorb +$6K efficiently",
"likelihood": "Low",
"impact": "CPA rises, efficiency gains don't materialize",
"mitigation": "Monitor impression share weekly, pause increase if CPA rises >15%"
},
{
"risk": "Meta performance continues declining even at lower spend",
"likelihood": "Medium",
"impact": "Need further cuts, volume decreases",
"mitigation": "Prioritize creative refresh; if no improvement in 4 weeks, cut to retargeting only"
},
{
"risk": "Microsoft Ads doesn't perform for B2B SaaS",
"likelihood": "Medium",
"impact": "$4K/month inefficiently spent",
"mitigation": "6-week test with clear kill criteria ($250 CPA threshold); easy to reallocate to Google"
},
{
"risk": "LinkedIn audience fully exhausted",
"likelihood": "Medium",
"impact": "Conversions drop faster than expected",
"mitigation": "Test new audience segments, consider reducing further and reallocating to Google"
}
],
"next_steps": [
"Review and approve recommended allocation",
"Set up Microsoft Ads account (can use Google import)",
"Brief creative team on Meta prospecting refresh need",
"Implement Phase 1 changes by end of week",
"Schedule weekly review for first month"
]
}
ReadyCross-Platform Budget Allocator
MarkdownUTF-8