Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when the user needs to plan or manage a marketing budget in USD: allocation by channel, funnel stage, and month, test-versus-scale split, scale-up and stop-loss thresholds, reserve, a plan-versus-actual tracker, and a review cadence. Trigger on 'budget planning', 'marketing budget', 'budget allocation', 'how much should we spend on ads', 'campaign budget', 'stop loss threshold', or 'quarterly budget'.
.claude/skills/minhnv0807-61-budget-planning-global/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 14% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 32% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 132% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 94% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 85% | 0% |
> A budget is not a fixed number — it is a decision tool: where you place bets and when you pull back. The leader must know total spend, ROI per channel, what to increase, and what to cut. Run 10-reverse-kpi-global first to derive the minimum budget from the revenue target before allocating anything.
Read .agents/product-marketing-context-global.md, the marketing plan, and the previous period's report if available. If missing, ask up to 4 questions:
references/benchmarks-global.md), so identical monthly spend buys materially less reach in Q4. Either front-load acquisition into cheap Q1 months or explicitly reserve a larger Q4 allocation for the same volume.| Method | How it works | Strength | Weakness | |--------|--------------|----------|----------| | Percent of revenue | Budget = X% of expected revenue | Simple | Ignores growth stage | | Backwards from targets (recommended) | Set revenue > derive CAC/CPL > derive spend | Logical, evidence-based | Needs historical CAC/CPL | | Competitive benchmark | Match category spend norms | Avoids under-investment | Ignores your own conditions |
Seven-step backwards calculation (full detail in 10-reverse-kpi-global):
1. Target revenue
2. / AOV = orders needed
3. / close rate (30-50%) = hot leads needed
4. / nurture CVR (50-60%) = warm leads needed
5. / lead capture CVR (20-40%) = total reach needed
6. total leads x CPL = minimum ad budget
7. + content + tools + agency = total marketing budgetBuild 3 scenarios: Conservative (CVR below category median, CPL above), Base case (at median), Optimistic (post-optimization). Plan against Base; prepare cashflow against Conservative.
| Bucket | Suggested share | Purpose | |--------|-----------------|---------| | Paid ads (performance) | 50-65% | Meta, TikTok, Google, retargeting | | Content production | 10-15% | Video, design, copywriting | | Creators / UGC / affiliates | 5-10% | Social proof, third-party reach | | Agency / freelancers | Per scope | If used | | Tools / software | 2-5% | Ad tools, design, email/CRM, analytics | | Campaign reserve | 10-15% | Opportunities and incidents — NOT pre-allocated |
Starting split (adjust to your category and your own data):
| Channel | Share of ad budget | Objective | Expected CPA / ROAS | |---------|--------------------|-----------|---------------------| | Meta Ads (Facebook + Instagram) | 45-60% | Lead / purchase | | | TikTok Ads | 15-20% | Awareness / lead | | | Google Search + Shopping | 15-25% | High-intent capture | | | Email + SMS (Klaviyo, Mailchimp, Attentive) | 5-10% | Retention, nurture, retargeting | | | New channel (test) | 10-15% | Validate | |
For B2B, shift toward LinkedIn and Search — LinkedIn CPM runs $30-100+, so plan a higher CPL and a longer payback window. Allocation logic: channels with strong ROAS or CPA get a larger share; new channels get the minimum test allocation first; never divide evenly.
Standard performance split inside each channel:
| Purpose | Share | Note | |---------|-------|------| | Testing (new creative + audiences) | 30% | Always keep testing — creative fatigue arrives fast | | Scale (confirmed winners) | 50% | Only scale campaigns with winning data | | Retargeting | 15% | Warm audience — cheapest CPA in the funnel | | Lookalike / similar audiences | 5% | Expansion from converter seeds |
By funnel: TOFU (reach/awareness), MOFU (lead/nurture), BOFU (conversion/retargeting). The ratio depends on stage: a launch skews TOFU, a mature program skews BOFU and retention.
| Campaign | Month | Budget (USD) | Objective | KPI | |----------|-------|--------------|-----------|-----| | Always-on (retargeting + nurture) | Full period | | | | | Campaign A (launch or seasonal) | | | | | | Testing budget | Full period | | New channels or angles | | | Reserve | — | 10-15% | | |
Seasonality overlay before locking monthly numbers:
| Period | Media cost vs Q1 | Planning implication | |--------|------------------|----------------------| | January | ~-21% below Q1 average | Cheapest acquisition window — stock budget here if cashflow allows | | Q2-Q3 | Rising | Normal operating cadence, build audiences for Q4 | | October | ~+10% | Start of the expensive window | | November | ~+27% (peak) | Reserve extra budget or accept lower volume | | Q4 average | ~+26% above Q1 | Do not plan Q4 at Q1 unit costs |
In US election years, political spend displaces commercial inventory and adds roughly 20-40% to CPM in the last 30 days before the vote — build that into Q4 plans for US-targeted campaigns.
Increase budget when (BOTH conditions hold):
Cut or pause when (stop-loss):
| Condition | Action | |-----------|--------| | ROAS below break-even for 14 days | Cut the channel or campaign, move budget to what works | | CPA above 2x target after 7 days of testing | Pause, replace creative or audience before restarting | | Frequency above 4 | Audience saturation — stop scaling, refresh creative | | Spend above 110% of the monthly plan | Cap daily budgets, review the allocation |
Weekly CPA review rule (expressed relative to your own target, since absolute CPA varies 3-5x between regions and industries):
| CPA vs target | Frequency | Verdict | |---------------|-----------|---------| | <= 70% of target | < 2.0 | WIN — scale +20-30% | | 70-100% of target | < 2.5 | Acceptable — monitor | | 100-130% of target | 2.0-2.5 | Optimize — replace creative | | > 130% of target | > 2.5 | PAUSE and replace |
Set the target itself using references/benchmarks-global.md for your region and industry, not a global average. Never increase budget while CPA is deteriorating — fix creative or tracking first.
| Month | Planned budget | Actual spend | Variance | ROAS / ROI | Note | |-------|----------------|--------------|----------|------------|------| | Month 1 | | | | | | | Month 2 | | | | | | | Month 3 | | | | | | | Quarter total | | | | | |
| Cadence | Work | Output | |---------|------|--------| | Weekly | Review CPA and ROAS per channel, apply the step-6 decision rules | Immediate adjustment when a threshold trips | | Monthly | Review the full allocation, reconcile plan vs actual | Rebalance for next month | | Quarterly | Review overall allocation strategy and LTV:CAC | Strategy adjustment |
Unit economics health — LTV:CAC:
| Ratio | Meaning | Action | |-------|---------|--------| | < 1:1 | Losing money on every customer | Stop scaling, fix product or price | | 1:1 to 3:1 | Break-even to viable | Optimize conversion, raise AOV | | > 3:1 | Healthy | Begin scaling | | > 5:1 | Strong | Increase ad budget aggressively |
File name: budget-plan-[brand-name]-[YYYYMMDD].md — contains: I. Budget overview (total, revenue target, marketing as % of revenue, period) · II. Bucket allocation · III. Channel allocation · IV. Test vs scale split · V. Campaign and monthly allocation with seasonality overlay · VI. Decision rules and stop-loss thresholds · VII. Plan-vs-actual tracker · VIII. Review cadence.
10-reverse-kpi-global: derive the minimum budget from the revenue target — run before allocating.00-marketing-plan-global: the budget plan is the detailed version of the plan's budget section.54-media-plan-global: turn the ad budget into a concrete campaign and ad-set level media plan.21-ads-audit-global: audit a channel that repeatedly trips the stop-loss thresholds.07-marketing-report-global: budget reconciliation inside the monthly report.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 47,273 | 45,316 | -4% | 1 | 1 | 0% | 8,312 | 10,978 | +32% | 0 | 0 | — |
case-02 | fail→pass | 40,094 | 34,717 | -13% | 1 | 1 | 0% | 8,275 | 9,399 | +14% | 0 | 0 | — |
case-03 | fail→pass | 44,096 | 40,250 | -9% | 1 | 1 | 0% | 8,276 | 10,942 | +32% | 0 | 0 | — |
case-04 | fail→pass | 16,889 | 21,645 | +28% | 1 | 1 | 0% | 2,992 | 6,952 | +132% | 0 | 0 | — |
case-05 | pass→pass | 19,046 | 28,301 | +49% | 1 | 1 | 0% | 3,878 | 8,508 | +119% | 0 | 0 | — |
case-06 | fail→pass | 20,113 | 23,554 | +17% | 1 | 1 | 0% | 3,586 | 6,958 | +94% | 0 | 0 | — |
case-07 | fail→pass | 18,181 | 20,909 | +15% | 1 | 1 | 0% | 3,458 | 6,391 | +85% | 0 | 0 | — |
case-08 | fail→pass | 15,851 | 32,065 | +102% | 1 | 1 | 0% | 2,835 | 8,400 | +196% | 0 | 0 | — |
case-09 | fail→pass | 19,228 | 14,775 | -23% | 1 | 1 | 0% | 2,762 | 5,297 | +92% | 0 | 0 | — |
case-10 | fail→pass | 17,004 | 14,320 | -16% | 1 | 1 | 0% | 2,985 | 5,327 | +78% | 0 | 0 | — |
case-11 | fail→pass | 18,800 | 19,377 | +3% | 1 | 1 | 0% | 3,255 | 6,056 | +86% | 0 | 0 | — |
case-12 | pass→pass | 12,269 | 12,424 | +1% | 1 | 1 | 0% | 2,222 | 5,021 | +126% | 0 | 0 | — |
case-13 | fail→pass | 16,381 | 15,766 | -4% | 1 | 1 | 0% | 2,741 | 5,372 | +96% | 0 | 0 | — |
case-14 | fail→pass | 14,104 | 16,326 | +16% | 1 | 1 | 0% | 2,664 | 5,796 | +118% | 0 | 0 | — |
case-20 | fail→fail | 12,905 | 13,635 | +6% | 1 | 1 | 0% | 2,128 | 4,725 | +122% | 0 | 0 | — |
case-15 | pass→pass | 7,375 | 3,717 | -50% | 1 | 1 | 0% | 1,287 | 3,377 | +162% | 0 | 0 | — |
case-16 | fail→pass | 13,518 | 14,575 | +8% | 1 | 1 | 0% | 2,152 | 4,959 | +130% | 0 | 0 | — |
case-17 | pass→pass | 14,410 | 14,927 | +4% | 1 | 1 | 0% | 2,322 | 5,193 | +124% | 0 | 0 | — |
case-18 | pass→pass | 11,479 | 8,792 | -23% | 1 | 1 | 0% | 1,878 | 4,173 | +122% | 0 | 0 | — |
case-19 | pass→pass | 12,815 | 10,966 | -14% | 1 | 1 | 0% | 2,277 | 4,735 | +108% | 0 | 0 | — |
case-21 | fail→fail | 17,572 | 24,420 | +39% | 1 | 1 | 0% | 3,537 | 6,335 | +79% | 0 | 0 | — |
case-22 | fail→fail | 20,000 | 27,658 | +38% | 1 | 1 | 0% | 3,418 | 7,674 | +125% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +55 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.