Marketing Resource Allocation Optimizer

Advanced

Optimize budget allocation across resources using fitted response models, constraints, and scenario war-gaming to maximize marketing outcomes.

🚀

Quick Start Guide

(click to collapse)
1

Upload Your Data

Provide a CSV with 3 columns: resource_id, input (spending/allocation), and output (results). Each row is one historical observation.

Example: Sales rep data with monthly spending and revenue, or ad channel data with impressions and conversions.

2

Fit Response Models

Choose how to model each resource's response curve. Recommended: "Auto-select BEST model for EACH resource" to let the tool pick optimal models.

What it does: Fits mathematical functions (linear, logarithmic, power, etc.) that predict output from input for each resource.

3

Set Constraints

Define business rules: total budget, min/max per resource, equity requirements, etc. Start simple (just budget), then add advanced constraints as needed.

Pro tip: Use "Reset All" button to quickly return to defaults when experimenting.

4

Optimize & Analyze

Click "Run optimization" to find the best allocation. Review results in tables and charts, compare scenarios, and export recommendations as CSV.

Key output: Optimal allocation per resource, predicted total output, ROI, and marginal returns analysis.

OPTIMIZATION OVERVIEW & METHODOLOGY

This tool helps marketers allocate limited budgets across multiple resources (sales reps, ad channels, regions, etc.) to maximize total output (revenue, conversions, leads). The optimization finds the best way to distribute your budget based on each resource's individual response curve—the relationship between spending and results.

The Four-Step Process:

  1. Model Fitting: For each resource \(i\), fit a response function \(Y_i = f_i(X_i)\) where:
    • \(X_i\) = input allocation (dollars, hours, impressions) for resource \(i\)
    • \(Y_i\) = predicted output (sales, conversions, leads) from resource \(i\)
    • \(f_i(\cdot)\) = the model type (linear, log, power, quadratic, sqrt, logistic, or bounded log)
  2. Constraint Definition: Set business rules like total budget \(B\), minimum/maximum per resource, equity requirements, or output ceilings.
  3. Optimization: Find allocations \(x_1, x_2, \ldots, x_n\) that maximize total predicted output while respecting all constraints.
  4. Scenario Comparison: Save multiple allocations and compare outcomes, ROI, and marginal returns to support decision-making.

Objective function (maximize total output): $$\text{Maximize } Z = \sum_{i=1}^{n} f_i(x_i)$$ where:

  • \(Z\) = total predicted output across all resources (the objective we're maximizing)
  • \(n\) = number of resources (reps, channels, regions, etc.)
  • \(f_i(x_i)\) = predicted output from resource \(i\) given allocation \(x_i\)
  • \(x_i\) = decision variable (how much to allocate to resource \(i\))

Subject to constraints: $$\sum_{i=1}^{n} x_i \leq B$$ $$L_i \leq x_i \leq U_i \quad \forall i$$ where:

  • \(B\) = total budget available for allocation
  • \(L_i\) = minimum required allocation for resource \(i\) (can be 0)
  • \(U_i\) = maximum allowed allocation for resource \(i\)
Optimization method: Greedy marginal returns allocator

This tool uses a greedy marginal returns algorithm: it repeatedly allocates small budget increments ($100 at a time) to whichever resource currently offers the highest marginal return—the additional output per additional dollar spent at that resource's current allocation.

Why this method? It's transparent, respects all constraints naturally, and guarantees feasible solutions. For smooth response curves with diminishing returns (most marketing scenarios), it often finds the optimal or near-optimal allocation. The diagnostics section reports iterations, convergence, and constraint satisfaction for your specific allocation.

Marginal returns intuition: In an optimal allocation, marginal returns are roughly equal across all funded resources. If one resource had much higher marginal returns than another, you could improve total output by shifting budget from the low-return resource to the high-return one.

Model types and when to use them

Linear: \(Y = a + bX\) — Constant returns. Use when each additional dollar produces roughly the same output increase.

Logarithmic: \(Y = a + b \cdot \ln(X)\) — Strong diminishing returns. Output increases quickly at first, then plateaus.

Power: \(Y = a \cdot X^b\) — Flexible growth/decay. \(b > 1\) = accelerating returns, \(b < 1\) = diminishing returns.

Quadratic: \(Y = a + bX + cX^2\) — Non-monotonic. Can capture peak performance at mid-range spending.

Square Root: \(Y = a + b\sqrt{X}\) — Moderate diminishing returns. Less aggressive than logarithmic.

Logistic (S-curve): \(Y = L/(1 + e^{-k(X-X_0)})\) — Slow start, rapid growth, then saturation at ceiling \(L\). Perfect for market saturation scenarios.

Bounded Logarithmic: \(Y = \text{ceiling} - (\text{ceiling} - a) \cdot e^{-bX}\) — Exponential approach to a known ceiling. Use when you can specify maximum achievable output (e.g., total market size).

MARKETING SCENARIOS

Select a preset to auto-populate historical data for common resource allocation problems (sales team budgets, channel spend, regional marketing). Each scenario includes fitted models and suggested constraints.

DATA UPLOAD & MODEL FITTING

Upload Historical Data

Provide a CSV file with columns: resource_id (name/label for each resource), input (historical budget/hours), and output (historical sales/conversions/leads).

Drag & Drop historical data file (.csv, .tsv, .txt)

Three columns: resource_id, input, output. Each row represents one resource's historical performance. Up to 500 resources supported.

No file uploaded yet.