Social Media ROI Calculator

Return on a social channel with the hours counted as cost, and a statement of what last-click attribution cannot see in the other direction.

Live output

Enable JavaScript to customise; default output below.

Reported as a cost per follower, because a follower is a cost until they do something.

What attribution cannot see. It is correlation until a holdout tests it.

Live preview social-roi.txt
Attributed revenue                $38,400.00
Gross profit at 62%               $23,808.00

Cost
  paid promotion                  $4,200.00
  time                            $6,600.00 (120.0 h at $55.00)
  tools                           $290.00
  creative and production         $1,800.00
  total                           $12,890.00
  of which time                   51.2%

Return
  net                             $10,918.00
  return on spend                 1.85×
  ROI                             84.7%
  verdict                         positive on the attributed revenue alone, before anything attribution cannot see

What it would take to break even
  revenue needed                  $20,790.32
  extra revenue needed            $0.00
  as a share of what you got      54.1%

Cost of the audience
  followers gained                2,400
  cost a follower                 $5.3708
  which is                        a cost, not a return: a follower is worth nothing until they do something

What attribution cannot see
  branded search lift             12%
  revenue that would imply        $4,608.00 if it converts like the rest
  net including it                $13,774.96
  the caveat                      branded search lift is correlation until you test it with a holdout

The cost is $12,890.00, of which 51.2% is time. That is the line most
calculations omit, and it is usually the largest one: a channel run
half-time by one person costs more in salary than many businesses spend
on advertising.

Last-click attribution understates social specifically. Someone who
discovers you in a feed, searches your name a week later and buys is
recorded as a search conversion, so the attributed revenue here is a
floor rather than the answer.

Which means both numbers are wrong in opposite directions, and the
honest response is a holdout rather than a better model. Turn the
channel off in a region or for a random share of the audience, and
measure total revenue rather than attributed revenue.

Followers gained cost $5.3708 each. That is a cost rather than a result:
a follower is worth nothing until they do something, and counting
audience growth as the return is how a channel reports success for years
without selling anything.

Branded search volume is the most useful leading indicator available
without an experiment. It moves when awareness moves and it is visible
in Search Console, and it is still correlation: a campaign and a season
can rise together.

Organic reach on every major platform has fallen for a decade, and the
strategy that worked in 2015 assumed reach that no longer exists. A
channel plan written on those assumptions will underperform regardless
of the execution.

Engagement is not revenue and is not a proxy for it. A post can earn
thousands of interactions and sell nothing, which is worth knowing
before a quarterly review builds a case on engagement growth.

Output is valid and updates as you type.

Most social media ROI calculations divide revenue by ad spend and report a large number. The arithmetic is right and the cost is wrong, because the largest line is missing: the hours.

A channel run half-time by one person costs more in salary than many businesses spend on advertising. On the example, time is 51.2 percent of the total cost. Leave it out and the return roughly doubles, which is how a channel reports success for years without ever being profitable.

The second problem runs the other way. Last-click attribution understates social specifically: somebody who finds you in a feed, searches your name a week later and buys is recorded as a search conversion. So the attributed revenue here is a floor, and the tool prints what the branded search lift would be worth separately rather than folding it into the return.

How to use

  1. Put in the revenue attributed to the channel and your gross margin, since the return is earned on profit rather than turnover.
  2. Fill in every cost line, including the hours. That is the one that decides the answer.
  3. Add the followers gained and any branded search lift to see the cost of the audience and the size of what attribution cannot measure.

Example

$38,400 attributed at a 62 percent margin, against $4,200 of promotion and 120 hours at $55:

Cost
  paid promotion                  $4,200.00
  time                            $6,600.00 (120.0 h at $55.00)
  tools                           $290.00
  creative and production         $1,800.00
  total                           $12,890.00
  of which time                   51.2%

Return
  net                             $10,918.00
  return on spend                 1.85×
  ROI                             84.7%
  verdict                         positive on the attributed revenue alone, before anything attribution cannot see

Cost of the audience
  followers gained                2,400
  cost a follower                 $5.3708
  which is                        a cost, not a return: a follower is worth nothing until they do something

What attribution cannot see
  branded search lift             12%
  revenue that would imply        $4,608.00 if it converts like the rest
  net including it                $13,774.96
  the caveat                      branded search lift is correlation until you test it with a holdout

Counting only the ad spend would have reported a 9.1× return on the same channel.

Pitfalls

The hours are the cost. Strategy, writing, filming, editing, scheduling, replying. If nobody has priced them the channel has never been evaluated, only admired.

Return on gross profit, not revenue. A 1.85× return on profit is a real return. The same numbers against revenue would print 2.98× and mean nothing, since the cost of goods has not been paid yet.

Followers are a cost until they act. $5.37 each here. Counting audience growth as the return is the single most common way a social report stays green while the business stays flat.

Last-click understates social and self-reported attribution overstates it. Both numbers are wrong in opposite directions, which is why the honest answer is an experiment rather than a better model.

The only real measurement is a holdout. Turn the channel off in one region, or for a random share of the audience, and measure total revenue rather than attributed revenue. Everything else is inference.

Organic reach has fallen for a decade. A plan written on 2015 assumptions about how many followers see a post will underperform regardless of the execution, and no amount of posting frequency restores it.

Engagement is not revenue. A post can earn thousands of interactions and sell nothing. Worth knowing before a quarterly review builds its case on engagement growth.

Compatibility

Arithmetic in the browser: nothing is uploaded and nothing is stored.

The return is computed on gross profit, and the break-even line says what revenue the same cost would need, which is the more useful figure when the answer is negative. The branded search section is kept out of the headline return deliberately: the test suite asserts the net is identical whether or not a lift is entered, so the two can never be confused for one number.

Cost a follower is printed to four decimal places because it is usually small, and it is labelled a cost rather than a return in both the table and the notes.

Setting the hours to zero removes the time share line rather than printing a misleading zero percent, and a channel with no cost at all is rejected instead of dividing by zero.

Frequently asked questions

What hourly rate should I use?
Fully loaded cost rather than salary divided by hours: add employer taxes, benefits, software and a share of overhead, which typically lands 25 to 40 percent above the base rate. For a freelancer or agency, use what you actually pay them.
Is 1.85× a good return?
It depends on what else the money could do and on how much of the return attribution is missing. As a rule of thumb a channel that returns less than its next best alternative is a channel being funded by habit, and anything below 1× is losing money on the attributed revenue alone.
How do I measure the part attribution misses?
A holdout. Switch the channel off for a random share of the audience or in one comparable region and compare total revenue, not attributed revenue. Branded search volume in Search Console is the best leading indicator in the meantime, and it is still correlation.
Should I count followers as a return?
No. Count them as a cost per follower, as here, and measure what they do afterwards. An audience that never buys is an expense that compounds, because keeping it engaged costs more hours every month.
Why is my ROI negative when the channel feels like it works?
Either the hours are finally being counted, or the revenue really is arriving through search and direct. The first is a cost problem and the second is a measurement problem, and a holdout is the only thing that tells you which.
Weekly drops

New tools, when there are new tools

One email when something worth using ships. No schedule to fill, so no filler.

Your address goes nowhere else, and one click unsubscribes.