1. Scope
Allocates a total marketing budget across channels with per-channel ROAS estimates and a blended return projection. It does not perform media-mix modelling or account for incrementality.
2. Inputs and outputs
Inputs
- totalBudget number (currency)
- channels array
Each: name, allocationPercent, estimatedRoas.
Outputs
- perChannelSpend
totalBudget × allocationPercent.
- perChannelRevenue
spend × roas.
- blendedRoas
totalRevenue / totalBudget.
Engine source: src/lib/marketing-budget-allocator/engine.ts
3. Formula / scoring logic
spend_i = total_budget * alloc_i
revenue_i= spend_i * roas_i
blended = sum(revenue) / total_budget 4. Assumptions
- Channel ROAS is independent (no saturation, no cross-channel halo).
- Allocation percentages must sum to 100%.
5. Data sources
This tool relies on user inputs and standard arithmetic; no external benchmark data is bundled. When a question depends on an industry reference (for example, typical churn rates or hourly-wage medians), the linked adjacent tools cite their primary sources on their own methodology pages.
6. Known limitations
- Real channels saturate at higher spend levels. Doubling Facebook spend does not double revenue past a point.
- Multi-touch attribution is a separate problem the tool cannot solve.
7. Reproducibility
Input
budget = $10,000; channels = [{SEO, 40%, 5×}, {Paid, 40%, 2.5×}, {Email, 20%, 8×}].
Expected output
spend = 4k/4k/2k, revenue = 20k/10k/16k, blended = 4.6×.
8. Change log
- 2026-04-24 methodology page first published.
Worked example
Run live against the same engine this site ships
(/engines/marketing-budget-allocator.js).
The inputs and outputs below are recomputed on every build and
independently re-verified in CI — they are never hand-authored.
Input
- tool
- marketing_budget_allocator
- total_budget
- 10000
- channels[0].name
- Google Ads
- channels[0].allocation_percent
- 50
- channels[0].expected_roas
- 4
- channels[1].name
- Content + SEO
- channels[1].allocation_percent
- 30
- channels[1].expected_roas
- 3
- channels[2].name
- Partnerships
- channels[2].allocation_percent
- 20
- channels[2].expected_roas
- 5
Output
- channels[0].name
- Google Ads
- channels[0].allocationPercent
- 50
- channels[0].budgetAmount
- 5000
- channels[0].expectedRevenue
- 20000
- channels[1].name
- Content + SEO
- channels[1].allocationPercent
- 30
- channels[1].budgetAmount
- 3000
- channels[1].expectedRevenue
- 9000
- channels[2].name
- Partnerships
- channels[2].allocationPercent
- 20
- channels[2].budgetAmount
- 2000
- channels[2].expectedRevenue
- 10000
- totalAllocated
- 10000
- totalExpectedRevenue
- 39000
- blendedRoas
- 3.9
Frequently asked questions
- What does the Marketing Budget Allocator calculate?
- Allocates a total marketing budget across channels with per-channel ROAS estimates and a blended return projection. It does not perform media-mix modelling or account for incrementality.
- What inputs does the Marketing Budget Allocator need?
- It takes 2 inputs: totalBudget, channels. Outputs returned: perChannelSpend, perChannelRevenue, blendedRoas.
- What formula does the Marketing Budget Allocator use?
- The exact computation is: spend_i = total_budget * alloc_i; revenue_i= spend_i * roas_i; blended = sum(revenue) / total_budget
- Can I verify the Marketing Budget Allocator with a worked example?
- Yes. With budget = $10,000; channels = [{SEO, 40%, 5×}, {Paid, 40%, 2.5×}, {Email, 20%, 8×}]. the tool returns spend = 4k/4k/2k, revenue = 20k/10k/16k, blended = 4.6×.
- Does the Marketing Budget Allocator bundle any external benchmark data?
- No. It runs standard arithmetic on the values you enter; no external benchmark dataset is bundled. Industry references, where relevant, are cited on the adjacent tools' methodology pages.
- What can the Marketing Budget Allocator not tell me?
- Known limitations: Real channels saturate at higher spend levels. Doubling Facebook spend does not double revenue past a point. Multi-touch attribution is a separate problem the tool cannot solve.