Skip to main content

Free marketing ROI calculator

Marketing ROI calculator

Nine numbers in, five numbers out: revenue, cost, profit, ROI and cost per acquisition, plus the funnel step quietly eating your audience. Every figure on this page comes from you. Nothing is estimated on your behalf.

Why this calculator refuses to guess

Open four other marketing ROI calculators and three of them will prefill a conversion rate for you. Somewhere under the form there will be a line about industry averages. Ask where the average came from and the trail goes cold, because it was a number someone picked to make the output look plausible.

That is not a small complaint. A prefilled conversion rate is the single most load-bearing input in the whole model. Multiply your real audience by someone else's invented rate and the revenue figure you get is fiction with a currency symbol in front of it. You then take that fiction into a budget meeting.

So this one has none. The fields arrive filled with round placeholders (10,000, 50%, 10%) and they are marked as placeholders everywhere they appear, because round numbers are honest about being made up in a way that 2.7% never is. Replace every one of them with a number you can actually source, from your own last campaign, your own analytics, your own invoices. If you cannot source a number, that gap is the finding, and no calculator should paper over it for you.

Your numbers

Change anything and the results update as you type. The second column starts as a copy of the first, so any gap you see between them is a change you made.

Placeholder These starting values are round placeholders, not benchmarks. They are here so the page has something to show, not because they describe your campaign or anyone else's.

Scenario A

The funnel

Each rate applies to the people who survived the step before it, not to your original audience.

Everyone the campaign could reach: list, channel, group, segment.
Of that audience, how many actually see the message.
Of those who saw it, how many click.
Of those who clicked, how many reply or start a conversation.
Of those who replied, how many buy.
The money

Use whatever currency you bill in. The maths does not care which.

What one customer is worth on this campaign.
Ad spend, placement fees, tooling: everything you pay out.
The time

Team time is a real cost and leaving it out is how a campaign looks profitable when it is not.

Hours spent writing, sending, and answering what comes back.
Fully loaded, so salary plus everything on top of it.

Results

ROI 0% Profit divided by total cost.
Revenue 1,000 Customers multiplied by what one is worth.
Total cost 1,000 Channel cost plus team time.
Profit 0 Revenue minus total cost.
Cost per acquisition 100 Total cost divided by customers won.
Customers 10 What survives the whole funnel.

Where the funnel loses people

Each bar is the people still in play after that step. The gap above it is what the step cost you.

  1. Reached 5,000
    Never saw it 5,000
  2. Clicked 500
    Saw it, did not click 4,500
  3. Replied 100
    Clicked, did not reply 400
  4. Bought 10
    Replied, did not buy 90

Your biggest drop is at reached, which costs you 5,000 people.

Take the result with you

Copy the full breakdown, inputs included, so the numbers arrive with their assumptions attached.

The formulas, in full

Nothing here is hidden behind a script. If you would rather rebuild this in a spreadsheet, these five lines are the whole thing.

Funnel
audience × reach% × click% × reply% × conversion% = customers

Multiplicative. Each rate applies to the survivors of the step before, which is why 50% then 10% leaves 5% of the original, not 60%.

Revenue
customers × average value

Gross, not margin. If you want margin, enter your margin per customer instead of order value.

Total cost
channel cost + (team hours × cost per hour)

Team time counts. A campaign that burns 40 hours is not free because nobody invoiced for it.

ROI
(revenue - total cost) ÷ total cost × 100

A 0% result means you broke even. Negative means the campaign cost more than it returned.

Cost per acquisition
total cost ÷ customers

Compare it against what a customer is worth over their lifetime, not against one order.

Reading the result without fooling yourself

Four things that change what the number means, none of which the calculator can know.

  • ROI and payback are different questions. This calculates return on one campaign against its cost. If customers stay and buy again, the real return is higher than what you see here, and if they churn in a month it is lower. Enter lifetime value instead of order value when you want the longer answer.
  • Attribution decides the revenue line. A customer who saw three channels before buying is counted in full by whichever model you use. If your attribution is generous, this calculator inherits that generosity exactly.
  • Team time is the cost people forget. Set team hours to zero and watch the ROI jump. That jump is the size of the lie in most campaign reports.
  • A reply is not a conversion. Messaging channels produce replies that feel like progress. Reply rate and conversion rate are separate fields here because a channel can be excellent at one and useless at the other.

What the second scenario is for

The useful question is rarely what a campaign returned. It is what one change would be worth. Scenario B exists for that: copy A, change a single number, and read the gap.

Try it on reach before you try it on conversion. Reach sits at the top of the funnel, so every point you gain there multiplies through all four steps. Conversion sits at the bottom, where it only ever acts on whoever survived.

The comparison also works as a sanity check. If a change you consider realistic produces a result that would be the best campaign in your company's history, one of the numbers you typed is optimistic, and it is usually the conversion rate.

Questions about the calculator

How do you calculate marketing ROI?

Subtract the campaign's total cost from the revenue it produced, divide by the total cost, and multiply by 100. The part people get wrong is the cost side: channel spend is easy to count, team hours are easy to forget, and leaving them out inflates the result.

Why are there no benchmark conversion rates in this tool?

Because we do not have any we could stand behind. A figure on an Entergram page has to have a source, and there is no measured conversion benchmark we could publish for your channel, your market and your offer. A plausible-looking average would make the output feel more authoritative while making it less true.

What are the prefilled numbers then?

Round placeholders, nothing more. 10,000 people, 50%, 10%, 20%, 10%. They are deliberately tidy so that nobody mistakes them for measurements. Replace all nine before you take the result anywhere.

Is my data sent anywhere?

No. The calculation runs in your browser. There is no signup, no email gate, and nothing is posted to a server. The copy and download buttons build the summary locally from what is on screen.

What counts as cost per acquisition here?

Total cost divided by the customers the funnel produced, where total cost is channel spend plus team hours multiplied by your hourly rate. It is a blended CPA for this campaign, not a per-channel figure.

Why does ROI show nothing when I set cost to zero?

Dividing by zero does not give you enormous ROI, it gives you an undefined result. Rather than print a symbol that looks like a win, the calculator says there is no cost to measure a return against.

Can I use this for a Telegram or messaging campaign?

Yes, that is why reply rate is a separate field. Broadcast and messaging campaigns produce conversations rather than page visits, so a model that jumps straight from click to purchase misses the step where most of the work happens.

Keep going

Also free: Telegram Group Finder , Telegram Lead Finder , Free QR Code Generator .

The hard part is sourcing the numbers

Reach, replies and what happened after are straightforward to count when the conversations live in one place. Entergram is a Telegram CRM for teams running many real personal Telegram accounts in one workspace, so broadcast replies land in one interface against the CRM record and stay attached to the chat. Its MCP connector exposes the underlying message events to a connected AI client, each carrying an account id, a chat id, a timestamp and a direction, which is how teams work out their own reply rates instead of borrowing someone else's.

See how Entergram works