CROIndex

Calculator · 060

Marketing ROI Calculator

Measure the return on marketing spend overall — and decide whether the program justifies its budget or needs reallocation.

$
$

Marketing ROI

Average
Scenario lens Current · Benchmark · Optimized
Leverage

Formula

ROI = (Revenue − Marketing cost) / Marketing cost × 100

Understanding marketing ROI

Reference material — the calculator above stays the primary tool.

What marketing ROI measures measures

Marketing ROI is the return on total marketing spend — the revenue marketing generates beyond what it costs, across channels and programs combined. It is return on investment: the gain produced for every dollar spent, expressed as a percentage. A positive figure means the spend earned more than it cost; a negative one means it lost money.

Because it is a ratio, ROI lets you compare very different investments on equal footing — a small efficient spend and a large one resolve to the same scale.

How to read your result

The result is labelled against an orientation benchmark so the number resolves into a decision:

Low — well under the benchmark; the spend barely returns its cost. Average — near the benchmark; efficiency work pays off. Strong — at or above; the spend earns well and scaling compounds.

marketing ROI benchmarks

Returns vary by channel, offer, and maturity. Treat these as orientation, not targets.

ContextTypical median
Best-in-class200%+ (3:1 and up)
Healthy program100–200%
Marginal0–100%
UnderwaterBelow 0%
Levers that raise return

Shift budget from low-return channels to high-return ones, improve targeting and creative, and raise conversion so the same spend yields more revenue. Attribution quality matters: measure incremental revenue, not just last-touch. Model a higher return as a scenario above to see the additional gain it implies at the same spend.

Return in context

Read marketing ROI alongside per-channel ROI and ROAS, which the related tools cover. The blended figure can hide a weak channel propped up by a strong one, so pair it with channel-level returns before reallocating.