{
  "slug": "marketing-mix-modeling-lite-calculator",
  "title": "Marketing Mix Modeling Lite Calculator",
  "heading": "Marketing Mix Modeling (Lite) Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/marketing-mix-modeling-lite-calculator",
  "summary": "Apply simple diminishing-returns saturation curves to compare channel spend efficiency.",
  "description": "Full marketing mix modeling requires regression across months of spend and revenue data with adstock and saturation curves fit statistically. This is a lite version for quick directional analysis: it applies a standard diminishing-returns saturation curve to a channel's current spend and marginal response, so you can estimate the revenue impact of increasing or decreasing spend by a given percentage without waiting for a full econometric model. It uses a power-law saturation function calibrated by a 'diminishing returns strength' input you set based on how saturated you believe the channel already is — a low value assumes near-linear returns (early-stage channel with room to grow), a high value assumes heavy saturation (mature channel where more spend barely moves revenue). The output shows current implied revenue, revenue at the proposed new spend level, and the marginal ROAS of the next dollar, which is almost always lower than average ROAS once a channel is saturated. This is a planning heuristic, not a substitute for real MMM or incrementality testing — use it to sanity-check budget reallocation requests and flag channels where 'just spend more' pitches deserve skepticism, then validate meaningful reallocations with a proper geo test.",
  "formula": "Revenue = baseline efficiency × spend^(1 − saturation strength); marginal ROAS = derivative of that curve at current spend, i.e. (1 − saturation) × revenue ÷ spend.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=marketing-mix-modeling-lite-calculator",
  "inputs": [
    {
      "id": "currentSpend",
      "label": "Current monthly spend",
      "kind": "number",
      "hint": null,
      "default": 50000,
      "unit": "$",
      "min": 1,
      "max": null
    },
    {
      "id": "currentRoas",
      "label": "Current reported ROAS",
      "kind": "number",
      "hint": null,
      "default": 3,
      "unit": null,
      "min": 0.1,
      "max": 50
    },
    {
      "id": "saturation",
      "label": "Diminishing returns strength (0 = linear, 0.8 = heavily saturated)",
      "kind": "number",
      "hint": null,
      "default": 0.35,
      "unit": null,
      "min": 0,
      "max": 0.9
    },
    {
      "id": "proposedSpendChangePct",
      "label": "Proposed spend change",
      "kind": "number",
      "hint": null,
      "default": 25,
      "unit": "%",
      "min": -90,
      "max": 300
    }
  ],
  "outputs": [
    {
      "id": "incrementalRevenue",
      "label": "Estimated incremental revenue from change",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "newRevenue",
      "label": "Estimated revenue at new spend level",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "newRoas",
      "label": "Estimated ROAS at new spend level",
      "format": "decimal",
      "hint": null,
      "primary": false
    },
    {
      "id": "marginalRoas",
      "label": "Marginal ROAS of next dollar (current level)",
      "format": "decimal",
      "hint": null,
      "primary": false
    },
    {
      "id": "currentRevenue",
      "label": "Current implied revenue",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Current monthly spend: 50000 $",
      "Current reported ROAS: 3",
      "Diminishing returns strength (0 = linear, 0.8 = heavily saturated): 0.35",
      "Proposed spend change: 25 %"
    ],
    "outputs": [
      "Estimated incremental revenue from change: $23,413",
      "Estimated revenue at new spend level: $173,413",
      "Estimated ROAS at new spend level: 2.77",
      "Marginal ROAS of next dollar (current level): 1.95",
      "Current implied revenue: $150,000"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter current monthly spend ($).",
      "Enter current reported roas.",
      "Enter diminishing returns strength (0 = linear, 0.8 = heavily saturated).",
      "Enter proposed spend change (%).",
      "Read your estimated incremental revenue from change on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "currentSpend": 30000,
        "currentRoas": 1.7999999999999998,
        "saturation": 0.21,
        "proposedSpendChangePct": 15
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "currentSpend": 50000,
        "currentRoas": 3,
        "saturation": 0.35,
        "proposedSpendChangePct": 25
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "currentSpend": 80000,
        "currentRoas": 4.800000000000001,
        "saturation": 0.5599999999999999,
        "proposedSpendChangePct": 40
      }
    }
  ],
  "limitations": [
    "Results are estimates before tax, fees, and inflation unless an input explicitly covers them.",
    "Rates are treated as fixed for the whole period — variable-rate products will drift from this projection.",
    "This is educational maths, not financial advice. Check anything contractual with the lender or your accountant."
  ],
  "faq": [
    {
      "q": "How do I pick the saturation strength value?",
      "a": "Look at how spend has trended against results historically. If doubling spend last year roughly doubled revenue, use a low value like 0.1-0.2. If a 50% spend increase barely moved revenue, you're saturated — use 0.5-0.7. Without historical data, 0.3-0.4 is a reasonable moderate default for an established channel."
    },
    {
      "q": "Why is marginal ROAS always lower than average ROAS here?",
      "a": "Under any diminishing-returns curve, average ROAS blends the highly efficient early dollars with the less efficient recent dollars, while marginal ROAS reflects only the next dollar spent. Once a channel is saturated, marginal ROAS can be well below average ROAS, meaning the next incremental dollar returns much less than the reported blended number suggests."
    },
    {
      "q": "Is this the same as real marketing mix modeling?",
      "a": "No. Real MMM fits a regression across months or years of actual spend and revenue data per channel, accounts for adstock (carryover effects), seasonality, and cross-channel interactions, and typically requires a data science team or specialized vendor. This calculator applies one assumed curve shape to give a fast directional estimate, not a statistically fit model."
    },
    {
      "q": "Should I use this to justify cutting a channel's budget?",
      "a": "Use it to flag channels worth testing a cut on, not to make the final call. If the marginal ROAS estimate is well below your target, run an actual holdout or spend-down test in that channel to confirm before permanently reallocating budget, since the saturation assumption here is a judgment call, not measured data."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/incrementality-lift-calculator",
    "https://www.revenuelab.fyi/toolbox/mer-roas-breakeven-calculator"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Marketing Mix Modeling Lite Calculator (https://www.revenuelab.fyi/toolbox/marketing-mix-modeling-lite-calculator)"
}