Marketing ROI Calculator: Is Your Marketing Actually Making Money?

Clicks look great on a report. Revenue looks even better. But if you spent thousands of dollars generating those sales, how much money did your marketing actually leave behind?

Use this free marketing ROI calculator to estimate the return on a campaign or reporting period. Enter your ad spend, management fees, attributed sales revenue, gross margin, and new customers. You will see estimated marketing ROI, gross profit, profit after marketing, customer acquisition cost (CAC), and the revenue needed to break even.

Before you start: Use revenue and costs from the same campaign or comparable reporting period. The result is an estimate based on the revenue you attribute to marketing; it is not a full company profit-and-loss statement.

Free Marketing ROI Calculator

/* BrandNation marketing ROI calculator: all selectors scoped to this widget. */ #bnroi-widget{--bn-ink:#172334;--bn-muted:#556276;--bn-blue:#135fb7;--bn-blue2:#edf5fe;--bn-border:#dbe5ef;--bn-bg:#f6f9fc;max-width:1100px;margin:22px auto 36px;font-family:inherit;color:var(--bn-ink);box-sizing:border-box} #bnroi-widget *,#bnroi-widget *:before,#bnroi-widget *:after{box-sizing:border-box} #bnroi-widget .bnroi-shell{border:1px solid var(--bn-border);border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 12px 34px rgba(18,47,86,.08)} #bnroi-widget .bnroi-top{padding:24px 26px 18px;background:linear-gradient(135deg,#0d3763,#126ab6);color:#fff} #bnroi-widget .bnroi-eyebrow{font-weight:750;letter-spacing:.1em;font-size:11px;text-transform:uppercase;opacity:.84} #bnroi-widget .bnroi-top h3{color:#fff!important;font-size:clamp(22px,3vw,30px);font-weight:750;margin:8px 0 6px;line-height:1.2} #bnroi-widget .bnroi-top p{color:#e6f2ff;margin:0;font-size:14px;line-height:1.5} #bnroi-widget .bnroi-grid{display:grid;grid-template-columns:1fr 1fr;gap:0} #bnroi-widget .bnroi-inputs,#bnroi-widget .bnroi-output{padding:24px 26px} #bnroi-widget .bnroi-inputs{border-right:1px solid var(--bn-border)} #bnroi-widget h4{margin:0 0 15px;font-size:18px;color:var(--bn-ink);line-height:1.3} #bnroi-widget .bnroi-fieldgrid{display:grid;grid-template-columns:1fr 1fr;gap:13px} #bnroi-widget .bnroi-field{display:flex;flex-direction:column;gap:5px;min-width:0} #bnroi-widget .bnroi-field label{font-size:12px;line-height:1.4;font-weight:700;color:#263b55} #bnroi-widget .bnroi-field input,#bnroi-widget .bnroi-field select{min-width:0;width:100%;height:43px;border:1px solid #acbed2;border-radius:9px;background:#fff;color:#152338;padding:8px 11px;font:inherit;font-size:15px;outline-offset:2px} #bnroi-widget .bnroi-field input:focus,#bnroi-widget .bnroi-field select:focus{outline:2px solid var(--bn-blue);border-color:var(--bn-blue)} #bnroi-widget .bnroi-field small{color:var(--bn-muted);font-size:11px;line-height:1.45} #bnroi-widget .bnroi-group-label{grid-column:1/-1;margin:9px 0 0;color:#1e4d7a;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em} #bnroi-widget .bnroi-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:17px} #bnroi-widget button{border:1px solid #8daccc;cursor:pointer;background:#fff;color:#0e4377;font-size:13px;font-weight:750;padding:10px 13px;border-radius:9px;min-height:40px} #bnroi-widget button:hover{background:#edf5fe} #bnroi-widget button:focus-visible{outline:3px solid #f5bd45;outline-offset:2px} #bnroi-widget .bnroi-note{margin:10px 0 0;color:var(--bn-muted);font-size:12px;line-height:1.55} #bnroi-widget .bnroi-output{background:var(--bn-bg)} #bnroi-widget .bnroi-status{background:#fff;border:1px solid var(--bn-border);border-radius:9px;padding:10px 12px;color:#3f5672;font-size:12px;line-height:1.45;margin:0 0 13px} #bnroi-widget .bnroi-status.bnroi-error{color:#8b2424;background:#fff2f2;border-color:#edc6c6} #bnroi-widget .bnroi-hero-result{padding:18px 18px 16px;border-radius:13px;background:#123f6f;color:#fff;margin-bottom:13px} #bnroi-widget .bnroi-hero-result .bnroi-kicker{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#d0e6fa;font-weight:800} #bnroi-widget .bnroi-hero-result strong{font-size:clamp(34px,4vw,45px);font-weight:800;line-height:1.25;display:block;color:#fff;margin:4px 0} #bnroi-widget .bnroi-hero-result span{display:block;font-size:12px;line-height:1.5;color:#d9eafa} #bnroi-widget .bnroi-cards{display:grid;grid-template-columns:1fr 1fr;gap:11px} #bnroi-widget .bnroi-card{background:#fff;border:1px solid var(--bn-border);border-radius:12px;padding:13px;min-height:87px} #bnroi-widget .bnroi-card span{display:block;font-size:11px;line-height:1.4;color:#53657b;font-weight:700} #bnroi-widget .bnroi-card strong{font-size:21px;line-height:1.4;display:block;margin-top:4px;color:#153655;overflow-wrap:anywhere} #bnroi-widget .bnroi-footnotes{margin:14px 0 0;padding-left:17px;font-size:11px;line-height:1.55;color:#43566d} #bnroi-widget .bnroi-bottom{background:#fff;border-top:1px solid var(--bn-border);padding:13px 26px;color:#526178;font-size:12px;line-height:1.55} #bnroi-widget .bnroi-bottom strong{color:#173650} @media(max-width:820px){#bnroi-widget .bnroi-grid{grid-template-columns:1fr}#bnroi-widget .bnroi-inputs{border-right:0;border-bottom:1px solid var(--bn-border)}} @media(max-width:440px){#bnroi-widget .bnroi-top,#bnroi-widget .bnroi-inputs,#bnroi-widget .bnroi-output,#bnroi-widget .bnroi-bottom{padding-left:17px;padding-right:17px}#bnroi-widget .bnroi-fieldgrid{grid-template-columns:1fr}#bnroi-widget .bnroi-cards{grid-template-columns:1fr 1fr}#bnroi-widget .bnroi-card strong{font-size:18px}}
Free interactive tool

Calculate your marketing return

Replace the sample figures with your own. Results update as you type. All calculations run in your browser.

Your marketing numbers

Investment
CampaignMonthQuarterYear
Sales outcomes
After direct delivery costs, before marketing.

The initial figures are a hypothetical example, not your business data. Use the same attribution method and time window across inputs.

Your estimated results

Showing a hypothetical example. Replace the amounts to calculate your results.

Estimated marketing ROI
60.0%Estimated contribution after included marketing costs, relative to those costs.
Total marketing spend$4,500
Estimated gross profit$7,200
Gross profit after marketing$2,700
Marketing CAC / customer$375
Cost per lead$75
Revenue / marketing spend4.00x
Break-even sales revenue$11,250
Attributed sales revenue$18,000
  • Profit-based results require a gross margin and nonzero marketing spend.
  • The revenue/spend figure is not ROAS when fees or other marketing costs are included.
  • These figures exclude general overhead and do not prove causal attribution.
Privacy: This calculator code does not send, store, or log your entries. The website owner should also prevent analytics and session-replay tools from capturing these fields.
(function () { 'use strict'; const root = document.getElementById('bnroi-widget'); if (!root || root.dataset.bnInitialized === 'true') return; root.dataset.bnInitialized = 'true'; const defaults = {ads:'3000',fees:'1000',other:'500',period:'month',revenue:'18000',margin:'40',customers:'12',leads:'60'}; const fields = {}; root.querySelectorAll('[data-bn-input]').forEach(el => {fields[el.dataset.bnInput] = el;}); const outputs = {}; root.querySelectorAll('[data-bn-result]').forEach(el => {outputs[el.dataset.bnResult] = el;}); const status = root.querySelector('#bnroi-status'); const currency = new Intl.NumberFormat('en-US',{style:'currency',currency:'USD',minimumFractionDigits:0,maximumFractionDigits:2}); const fmtMoney = n => currency.format(n); const fmtRatio = n => n.toFixed(2) + 'x'; const fmtPercent = n => n.toFixed(1) + '%'; function readNumber(key, optional, integer, upper) { const el = fields[key]; const raw = el.value.trim(); if (raw === '') return optional ? null : {error: 'Enter ' + el.labels[0].textContent.toLowerCase() + '.'}; const n = Number(raw); if (!Number.isFinite(n) || n (upper || 1e12) || (integer && !Number.isInteger(n))) { return {error: 'Check ' + el.labels[0].textContent.toLowerCase() + ': enter a valid nonnegative' + (integer ? ' whole' : '') + ' number.'}; } return n; } function show(key, value) { outputs[key].textContent = value; } function setStatus(message, error) { status.textContent = message; status.classList.toggle('bnroi-error', !!error); } function update() { const ads = readNumber('ads', false, false); const fees = readNumber('fees', true, false); const other = readNumber('other', true, false); const revenue = readNumber('revenue', false, false); const margin = readNumber('margin', true, false, 100); const customers = readNumber('customers', true, true, 1e9); const leads = readNumber('leads', true, true, 1e9); const values = [ads,fees,other,revenue,margin,customers,leads]; const invalid = values.find(v => v && typeof v === 'object' && v.error); if (invalid) { ['roi','spend','gross','contribution','cac','cpl','multiple','break_even','revenue'].forEach(key => show(key, '—')); show('summary', 'Correct the input to see valid results.'); setStatus(invalid.error, true); return; } const spend = ads + (fees === null ? 0 : fees) + (other === null ? 0 : other); const hasMargin = margin !== null; const gross = hasMargin ? revenue * margin / 100 : null; const contribution = gross !== null ? gross - spend : null; const roi = spend > 0 && contribution !== null ? contribution / spend * 100 : null; const cac = spend > 0 && customers !== null && customers > 0 ? spend / customers : null; const cpl = spend > 0 && leads !== null && leads > 0 ? spend / leads : null; const multiple = spend > 0 ? revenue / spend : null; const breakEven = spend > 0 && hasMargin && margin > 0 ? spend / (margin / 100) : null; show('spend',fmtMoney(spend)); show('revenue',fmtMoney(revenue)); show('gross', gross === null ? '—' : fmtMoney(gross)); show('contribution', contribution === null ? '—' : fmtMoney(contribution)); show('roi', roi === null ? '—' : fmtPercent(roi)); show('cac', cac === null ? '—' : fmtMoney(cac)); show('cpl', cpl === null ? '—' : fmtMoney(cpl)); show('multiple', multiple === null ? '—' : fmtRatio(multiple)); show('break_even', breakEven === null ? '—' : fmtMoney(breakEven)); if (spend === 0) { setStatus('Marketing spend is $0. Enter a positive investment to calculate ROI, CAC and spending ratios.', false); show('summary','A percentage return cannot be calculated with zero marketing spend.'); } else if (!hasMargin) { setStatus('Enter your gross margin to see profit-based ROI and break-even revenue. Revenue/spend and CAC can still be calculated.', false); show('summary','Gross margin is needed to estimate profit after marketing.'); } else if (margin === 0) { setStatus('A 0% gross margin leaves no gross profit to cover marketing costs; break-even revenue is undefined.', false); show('summary','ROI uses zero gross profit at the entered 0% margin.'); } else { setStatus('Estimated results based on the information entered for your selected reporting period.', false); show('summary', roi { el.addEventListener('input', update); el.addEventListener('change', update); }); root.querySelector('[data-bn-action="example"]').addEventListener('click', function () { Object.entries(defaults).forEach(([key,value]) => {fields[key].value = value;}); update(); }); root.querySelector('[data-bn-action="clear"]').addEventListener('click', function () { Object.values(fields).forEach(el => {if (el.tagName === 'SELECT') el.value = 'month'; else el.value = '';}); update(); fields.ads.focus(); }); update(); })();

How to Calculate Marketing ROI

Marketing ROI is not simply the revenue a campaign generated divided by its advertising spend. To understand the economics, start with gross profit: the sales revenue left after direct costs of delivering the product or service. Then subtract the marketing investment needed to generate those sales.

1. Calculate Your Total Marketing Investment

Add the costs associated with the activity being evaluated: advertising spend, agency or campaign-management fees, creative production, and other direct marketing expenses. If a cost supports several campaigns, allocate it consistently rather than counting it in full for every campaign. For help understanding what belongs in an agency budget, see BrandNation’s guide to marketing agency costs.

2. Find Gross Profit from Attributed Sales

Estimated gross profit = attributed revenue x gross margin. For example, $18,000 in sales at a 40% gross margin produces $7,200 in gross profit before marketing. A 40% margin means $0.40 of each revenue dollar remains after direct delivery costs, but before marketing and general overhead.

3. Calculate Profit-Based Marketing ROI

Estimated marketing ROI = [(gross profit – total marketing spend) / total marketing spend] x 100. A positive result means the attributed gross profit exceeds the marketing costs included in the model. A negative result means it does not. This is a marketing-contribution estimate, not net business profit: rent, taxes, interest, unrelated operating expenses, and other overhead are not included unless you explicitly incorporate them into your financial model.

4. Calculate Marketing CAC and Cost per Lead

Marketing CAC = total marketing spend / new customers acquired. Cost per lead = total marketing spend / leads generated. Neither should be confused with a qualified-lead cost or a fully loaded sales-and-marketing CAC. If customer counts are missing, the calculator leaves CAC unavailable rather than guessing.

Example: $18,000 in Revenue Does Not Mean $18,000 in Profit

Imagine a local service business running a marketing campaign for one month. The campaign generated 60 leads and 12 new paying customers. These illustrative figures demonstrate the calculation; they are not BrandNation client results.

Campaign input or result

Illustrative amount

Advertising spend

$3,000

Campaign management

$1,000

Creative and other marketing costs

$500

Total marketing spend

$4,500

Attributed sales revenue

$18,000

Gross margin

40%

Estimated gross profit

$7,200

Gross profit after marketing

$2,700

Estimated marketing ROI

60%

Marketing CAC (12 customers)

$375

Cost per lead (60 leads)

$75

Break-even revenue at 40% margin

$11,250

 

The business brought in four dollars of revenue for each dollar of total marketing investment, but that is a 4.0x revenue-to-marketing-spend ratio – not 4.0x profit. After direct delivery costs and marketing expenses, the estimated contribution is $2,700. That difference is why revenue alone can make a campaign look healthier than it is.

Marketing ROI vs. ROAS: Know Which Number You Are Seeing

ROAS (return on ad spend) typically compares advertising-attributed revenue with advertising spend alone. Marketing ROI is broader: it takes account of the gross profit available from the sales and the marketing costs you include in the calculation. They answer different questions.

Metric

What it answers

What to watch

Revenue / total marketing spend

How much revenue is attributed per dollar of all included marketing costs?

Not ROAS when fees and other costs are in the denominator.

ROAS

How much ad-attributed revenue is generated per advertising dollar?

Does not automatically account for product margins or agency fees.

Estimated marketing ROI

How much gross profit remains after the marketing investment, relative to that investment?

Depends on accurate margin and revenue attribution.

Marketing CAC

What did marketing cost per newly acquired paying customer?

Lead counts are not customer counts.

 

For a deeper look at attribution, sales outcomes, and reporting limitations, read our existing guide to measuring marketing ROI without vanity metrics. Google Ads also provides a first-party explanation of advertising ROI and why measuring conversion value matters.

What Is a Good Marketing ROI?

There is no single percentage that makes sense for every business. A high-margin service business may be able to support a more expensive acquisition strategy than a retailer operating on narrow margins. Repeat purchases, customer retention, cash flow, and sales cycle length also change the economics.

Start with your actual gross margin and your acceptable acquisition cost. Ask whether the calculated contribution is positive, whether it improves over comparable periods, and whether the customers are profitable after fulfillment and follow-up costs. A 10% contribution return may be too small for one company and acceptable for another. A 100% estimated return may still hide attribution errors or unpaid overhead.

Why Your Calculated Marketing ROI May Be Misleading

Revenue Is Not Always Attributable to One Channel

A customer might discover your business through a video, search later, click a paid ad, and finally call after visiting your website. Giving full revenue credit to each channel would count the same sale multiple times. Use a consistent attribution approach and label results as estimates when the source of revenue is uncertain.

Leads Are Not Customers

Form submissions and phone clicks are useful signals, but they are not automatically completed sales. Where possible, reconcile marketing reports with your CRM, bookings, paid invoices, or other confirmed sales records. If you have 60 leads but only 12 new customers, marketing CAC must use 12 – not 60.

Reporting Periods Can Distort the Result

A business-to-business campaign may spend money in November and close deals in January. Comparing November’s expenses with only November’s sales can make the campaign appear unprofitable. Conversely, counting revenue from old customers without matching the acquisition costs can inflate results. For long sales cycles, use cohorts or a clearly described measurement window.

Margin and Overhead Assumptions Matter

Use a gross margin that reflects the products or services sold through the campaign. Do not substitute gross revenue for gross profit, and do not interpret this calculator as a complete net-income forecast. When gross margin is unknown, use its revenue ratio and CAC outputs while you obtain a reliable margin estimate.

Three Ways Different Businesses Should Interpret the Numbers

HVAC or Home Services: Measure Completed Jobs

An HVAC company may see plenty of calls after running local search ads. To determine whether the campaign pays off, connect the calls to booked jobs, completed repairs, invoices, and the direct labor or materials costs. A campaign generating cheaper calls is not necessarily better if fewer turn into profitable jobs.

Dental Services: Separate Consultation Leads from Patients

For a dental practice, appointment requests are a starting point, not revenue. Track how many consultations become paying patients and use the gross margin from the services actually purchased. Lifetime value can be useful for planning, but projected future revenue should not quietly be treated as realized sales.

Industrial and B2B: Don’t Count Open Pipeline as Closed Revenue

An industrial company may generate a promising request for proposal that takes months to close. An open opportunity is not booked revenue. Record pipeline value separately, measure closed revenue using a coherent cohort, and revisit the calculation once a deal is won or lost.

How to Improve Marketing ROI Without Simply Spending More

Start with the part of the process that constrains profitability. If traffic is relevant but few visitors enquire, improve the offer and landing-page experience. If enquiries arrive but sales do not, review qualification and response times. If customers convert but margins are thin, evaluate fulfillment costs and the type of work being attracted. If one channel appears efficient, confirm attribution and lead quality before reallocating the entire budget.

Better ROI often comes from aligning channels, messaging, website performance, and sales follow-up – not from chasing the platform with the cheapest clicks. BrandNation’s marketing strategy services connect paid media, SEO, creative, and reporting around the outcomes your business actually needs.

Your marketing should produce more than impressive reports. If your numbers raise more questions than answers, get a strategy grounded in business goals, customer quality, and measurable performance.

Explore BrandNation’s Marketing Strategy Services

Marketing ROI Calculator FAQs

How do you calculate marketing ROI?

Estimate the gross profit from attributable sales, subtract the total marketing investment, then divide the remaining amount by that marketing investment and multiply by 100. Use consistent measurement periods and account for direct product or service-delivery costs.

What is a good marketing ROI percentage?

There is no universal target. Compare your result with gross margin, cash-flow needs, acquisition economics, customer value, and historical performance. A positive percentage means estimated gross profit exceeded included marketing costs, not that every business expense was covered.

What is the difference between marketing ROI and ROAS?

ROAS compares revenue attributed to advertising with ad spend. This calculator’s marketing ROI uses gross profit and all marketing costs entered, including fees and production. Its revenue-to-total-marketing-spend ratio is not the same as advertising ROAS.

Should agency fees count toward marketing ROI?

Yes, when the fees support the campaign or period being measured. Include ad spend, management fees, production, and other relevant costs without double-counting. See our agency pricing guide for common cost categories.

How do you calculate customer acquisition cost?

Divide marketing costs by the number of new paying customers acquired during the matched measurement period. If you also include the relevant sales-team costs, you are closer to a fully loaded sales-and-marketing CAC. Do not use raw lead counts as customers.

Can marketing ROI be negative?

Yes. A negative estimated ROI means the gross profit attributed to the activity is lower than the marketing costs entered. Investigate sales timing, attribution, direct costs, and lead quality before deciding to stop a campaign.

How do you calculate ROI with a long sales cycle?

Match the cost of acquiring a group of prospects with the revenue that group ultimately generates. Use sales cohorts, clear date ranges, and realized revenue. Keep estimated pipeline value separate until deals close.

Does a 4x marketing revenue ratio mean 300% profit?

No. A 4x revenue-to-spend ratio means attributed revenue is four times the included spend. It does not subtract product or service costs. Profit-based ROI can be much lower and may be negative when margins are narrow.

Calculation note: Results are educational estimates. They depend on the accuracy of the costs, gross margin, customer counts, and attributed sales revenue supplied. The calculator code is designed to process inputs locally. Site-wide analytics or session-recording tools should be configured not to capture financial fields.

TABLE OF CONTENTS