// design

Marketing Budget Planning

Use when the user wants to set or sanity-check a total marketing budget — how much to spend overall, as a percentage of revenue, by company stage and business model — and split it across brand, demand gen, content, and tooling. Also use when the user mentions marketing budget, % of revenue on marketing, how much should we spend on marketing, or budget allocation across functions. Produces a budget from AAJ's stage bands (labelled as AAJ's working ranges), published reference points (Gartner, SaaS Capital) and a function-level split.

DesignengineStarter
bash
$npx skills add sarojkjha/aaj-marketing-skills --skill marketing-budget-planning
Or run it in Claude or ChatGPT through the AAJ engines connector

How to install and run this

Install it in your project:

npx skills add sarojkjha/aaj-marketing-skills --skill marketing-budget-planning

No install? Add https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp as a custom connector in Claude, ChatGPT or any MCP client.

https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp

Then ask: Use the AAJ marketing-budget-planning skill on my numbers.

Step-by-step for every agent, Windows, Mac and Linux →

Claude Code

/plugin marketplace add sarojkjha/aaj-marketing-skills
/plugin install aaj-marketing-skills@aaj

OpenAI Codex

codex plugin marketplace add sarojkjha/aaj-marketing-skills
codex plugin add aaj-marketing-skills@aaj

Claude or ChatGPT — no install

Add this as a custom connector:

https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp
Recipes: vendor data in, a verdict out

// when to use it

Use when the user wants to set or sanity-check a total marketing budget — how much to spend overall, as a percentage of revenue, by company stage and business model — and split it across brand, demand gen, content, and tooling. Also use when the user mentions marketing budget, % of revenue on marketing, how much should we spend on marketing, or budget allocation across functions. Produces a budget from AAJ's stage bands (labelled as AAJ's working ranges), published reference points (Gartner, SaaS Capital) and a function-level split.

// what you give

Business model, company stage, the right base for that stage (quarterly burn, funding raised, or annual revenue), and growth ambition

// what you get

A planned marketing budget (share of the base, per period and per month), where the figure comes from, published reference points, and a split across functions

Engine spec

// decision it supports

How much should we spend on marketing in total at our stage, and how should it split across functions?

// inputs

Business model, company stage, the right base for that stage (quarterly burn, funding raised, or annual revenue), and growth ambition

// output

A planned marketing budget (share of the base, per period and per month), where the figure comes from, published reference points, and a split across functions

// acts or analyzes

Analyzes only

Makes no network calls, writes no files and changes nothing in your tools.

// where your information goes

How you run itWhere your inputs go
Skill installed in your agent, or the local MCP serverThe engine runs on your machine and AAJ receives nothing. Your AI agent still sends what you give it to its model provider (Anthropic, OpenAI and so on), under your own account's terms.
Hosted MCP serverYour agent's model provider, as above, plus AAJ's server on Cloudflare, which receives the engine inputs over HTTPS, runs them in memory and keeps no copy. Cloudflare keeps error logs (no inputs) for up to 7 days.

No engine needs customer names, emails or other personal data; leave them out.

// limitations

  • The B2B SaaS stage bands are AAJ's working ranges, not third-party research. Gartner's 7.8% average is mostly companies above $1B revenue.
  • Runway does not cap the share: the engine does not apply it, and the skill now says to check it yourself. runwayMonths is accepted only for a b2b_saas seed budget, where it spreads the round per month.
  • Ecommerce, services and marketplaces have no stage band. Without your own pctOfRevenue it uses Gartner's large-company average, which is not a target.
  • The function split is an AAJ default, and the total covers all marketing, not just paid. It does not check the spend is affordable against LTV:CAC.

// review before acting

The founder or finance lead confirms the base (burn, funding or revenue) and the runway, and checks the implied CAC clears LTV:CAC with unit-economics, before the figure becomes a budget.

// setup

install
$npx skills add sarojkjha/aaj-marketing-skills --skill marketing-budget-planning
hosted mcp
$https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp

Agents listed: Claude Code, Cursor, OpenAI Codex, Windsurf, Cline. Tested and recorded: Claude Code, OpenAI Codex (Windows, ab-test-significance only).

Full spec on GitHub

Marketing Budget Planning

Decide how much to spend on marketing overall — the question that comes before how to split it across channels. The answer is set by stage, model, growth ambition, and cash runway, expressed as a percentage of revenue and then divided across functions.

When to use

The user needs a total marketing budget or wants to check whether their current spend level is reasonable for their stage and model.

Before you start

  1. Read the brand/product context (.agents/product-marketing.md / .agents/aaj-brand.md) for model and stage, if present.
  2. Gather: business model (B2B SaaS / ecommerce / services / marketplace), stage (pre-seed → mature), annual revenue (ARR or revenue), and growth ambition (conservative / balanced / aggressive).
  3. Have unit economics handy. A budget is only affordable if the implied CAC clears LTV:CAC — run the unit-economics skill if unsure.

Method

For B2B SaaS, the engine uses AAJ's stage bands — AAJ's working ranges, not third-party research — and says so in every output:

StageAAJ's working rangeSized against
Pre-seed30–60%quarterly burn (revenue isn't a useful base yet)
Seed10–20%funding raised
Series A20–30%ARR
Series B12–20%revenue
Growth (post-Series B)15–25%revenue
Mature5–7%revenue, marketing only

Growth ambition picks the low end, midpoint or high end of the band. Runway is not applied by the engine: check yourself that the figure leaves the runway you need. Every run also prints the published reference points: Gartner's 2026 CMO Spend Survey (budgets averaged 7.8% of company revenue, mostly companies above $1B revenue), SaaS Capital's 2026 survey (median private B2B SaaS marketing spend 8% of ARR), and Gartner's 2026 category shares (paid media 31.4%, martech 19.4% of the average budget).

For ecommerce, services and marketplaces there is no sourced stage band. Pass your own pctOfRevenue; without it, the engine sizes the budget at Gartner's 7.8% and labels it as a large-company average, not a target.

The function split is AAJ's default assumption, not a benchmark — pass your own split to replace it. Affordability is confirmed against unit economics.

Run the engine

Paths assume you installed with npx skills add. From a clone of this repo, use skills/marketing-budget-planning/resources/… instead.

node .agents/skills/marketing-budget-planning/resources/budget-planner.js  # demo (B2B SaaS, Series A, $3M)
node .agents/skills/marketing-budget-planning/resources/budget-planner.js '{"model":"b2b_saas","stage":"seed","fundingRaised":3000000,"runwayMonths":18,"growthTarget":"aggressive"}'
node .agents/skills/marketing-budget-planning/resources/budget-planner.js '{"model":"ecommerce","stage":"growth","annualRevenue":8000000,"pctOfRevenue":12}'
node .agents/skills/marketing-budget-planning/resources/budget-planner.js --help

It returns the planned share and where it comes from, the budget per period and per month, the reference points, and a split across functions (demand gen, content/SEO, brand, etc.), plus JSON with the sources.

Interpret & connect

  • Treat the band as AAJ's working range, not an industry benchmark, then adjust for runway, payback tolerance, and how much demand actually exists to capture. Always say which basis the engine used.
  • The demand-gen / paid slice flows straight into the paid-media-budget-allocation skill for the channel split.
  • If LTV:CAC won't support the implied spend, fix economics or lower the budget before scaling.

Present the result

Lead with the headline budget (share of the base, per period, per month) and its basis — AAJ band, your own figure, or the Gartner average — then the function split, then the affordability check against unit economics and the handoff to channel allocation.

Show where it came from. Open your answer with "AAJ marketing-budget-planning engine result:" and print the engine's output block exactly as it returned it, then add the line Method: https://skills.aajconsult.com/skills/marketing-budget-planning. Say the numbers come from the AAJ engine, not from the model. Put your interpretation under that block. Do not retype the figures from memory. If you could not run the engine, say so and label any numbers as your own estimate, not an AAJ result.

Guardrails & common mistakes

  • Bands and averages aren't targets. AAJ's bands are working ranges and the published figures are averages across very different companies — demand and economics decide.
  • Never present an AAJ band as third-party research. Name it as AAJ's working range, and cite the published figures by organisation and year.
  • Runway limits ambition (check it yourself; the engine does not). Aggressive % with thin runway is a fast way to run out of money.
  • Spend follows ability to absorb it. Doubling budget overnight wastes money if the funnel and team can't scale with it.
  • Total budget ≠ paid budget. This sizes all marketing; only the demand-gen slice is paid media.

unit-economics (affordability) · paid-media-budget-allocation (split the paid slice) · campaign-orchestrator (the strategy the budget funds).

// faq

// install

$npx skills add sarojkjha/aaj-marketing-skills --skill marketing-budget-planning

// run it

$node .agents/skills/marketing-budget-planning/resources/budget-planner.js --demo

// worked example

Get the worked example for Marketing Budget Planning

One email. The filled-in config, the output, and how to read it.

No spam. Unsubscribe anytime.

// sprint

Unit Economics & Retention Sprint — $3,500, 10 business days

This skill is one of the engines behind the Unit Economics & Retention Sprint — $3,500, ten business days.

LTV, CAC, payback and churn on your actual numbers — with a verdict, not a dashboard.

See what's included.

// human in the loop

Need a human in the loop?

AAJ builds the strategies, tools, and playbooks these skills are made of — with engagements for growth-stage and enterprise teams.