ForHosting KIT · Finance & money

Return on ad spend calculator

Spend 1000 on ads, see 4000 in attributed revenue, and your ROAS is 4, or 400%: four units back for each one spent. Zero spend is refused rather than shown as an infinite result. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Ad spend
1,000
Revenue
4,000
You get
Roas
4
Roas percent
400

Return on ad spend (ROAS) is the core efficiency ratio paid-media teams use when they ask how much revenue came back for every currency unit put into ads. Marketers, performance buyers, and finance partners need a transparent number they can drop into a weekly report, a media-mix model, or a client deck without debating spreadsheet formulas. Zero attributed revenue is allowed and correctly yields ROAS of zero.

What ROAS means and how the ratio is defined

Return on ad spend answers a single operational question: for every unit of currency you put into advertising, how many units of attributed revenue came back. The classic definition is ROAS equals revenue divided by ad spend. A result of four means four currency units of revenue per unit of spend, often written as four times or four-to-one.

The percentage form multiplies the same ratio by one hundred, so a ratio of four is four hundred percent ROAS. Unlike a general investment ROI that subtracts cost from return before dividing by cost, ROAS does not net out the ad spend from revenue first; it is a gross revenue-to-spend multiple used in paid search, social, display, and retail media reporting. Teams still need attribution rules, lookback windows, and currency consistency outside this calculator, but once spend and attributed revenue are agreed, the arithmetic is fixed.

Where a ROAS calculator earns its keep

Performance marketing teams use a return on ad spend calculator to normalise channel reports when platforms show spend and conversion value but not a single agreed ratio for the finance deck. Agencies need a deterministic oracle that rejects zero spend instead of silently emitting infinity that a client-facing slide might paste as a miracle result. Finance and growth courses mark paid-media homework with a stable formula that distinguishes ROAS from net ROI so students learn which ratio leadership asked for.

Failed validation does not consume balance.

Paid media weekly reporting

Turn channel spend and attributed revenue into a single ROAS ratio and percent for the weekly performance deck or Slack summary.

Agency client QBR checks

Verify client-facing ROAS figures with a deterministic calculator that rejects zero spend instead of shipping infinite efficiency.

Classroom and LMS grading

Mark paid-media homework that asks for ROAS as ratio and percentage with a stable oracle students can re-run freely in the browser.

How is ROAS different from ROI?

ROAS is revenue divided by ad spend (a gross multiple). Classic investment ROI is (return minus investment) divided by investment, so it nets cost out of the return first.

How do I calculate ROAS?

Divide the revenue attributed to your ads by what you spent on them. With 1000 of spend and 4000 of revenue, ROAS is 4; multiply by 100 for the percentage form, 400%.

What does a ROAS of 4 mean?

It means four units of revenue came back for every unit spent on ads, often written as 4:1 or four times. As a percentage, the same result reads 400%.

Why is zero ad spend not accepted?

Because dividing by zero has no defined answer. Instead of returning an infinite figure that could end up on a client slide as a miracle result, the calculator stops and asks for a positive spend.

Can attributed revenue be zero?

Yes. Zero revenue is a valid outcome and gives a ROAS of zero, which tells you the spend brought nothing back in that window. Only negative revenue is rejected.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/biz/ad-spend-roas-calc

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/biz/ad-spend-roas-calc \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ad_spend":1000,"revenue":4000}'
{
  "ad_spend": 1000,
  "revenue": 4000
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "biz.ad_spend_roas_calc",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

This return on ad spend calculator accepts ad spend and the revenue attributed to that spend, divides revenue by spend to produce the ROAS ratio, multiplies by one hundred for the percentage form, and fails with invalid_input when ad spend is zero or negative so you never ship a silent infinity.

What ROAS means and how the ratio is defined

When ad spend is zero, the ratio is mathematically undefined; the capability encodes that as invalid_input rather than returning infinity or NaN that a buggy dashboard might treat as success.

Input contract, response shape, and error behaviour

Ad spend that is zero or negative is rejected with a clear message that ROAS is undefined when spend is zero—those failures are not billed. Keep units consistent—if spend is in dollars, attributed revenue must also be in dollars for the same window. POST a JSON body with two required fields: ad_spend, a positive finite number greater than zero in currency units, and revenue, a non-negative finite number in the same currency units representing sales or value attributed to that spend. Each field may arrive as a JSON number or as a numeric string; missing fields, empty strings, non-finite values, and negative values fail with invalid_input naming the field. On success the body echoes ad_spend and revenue and returns roas (the unitless ratio), roas_percent (the ratio times one hundred), and a short formula string restating ROAS equals revenue divided by ad spend. Textbook check: ad spend one thousand and revenue four thousand yields ROAS four and roas_percent four hundred. Pair the numeric result with your own channel labels, conversion definitions, and brand-versus-performance splits outside this endpoint; the calculator returns the pure ratio only and does not emit media plans, bid recommendations, or platform exports.

Where a ROAS calculator earns its keep

Keep requests small, pin the rounded roas and roas_percent fields in tests, and you get reproducible efficiency ratios for training, LMS plugins, and edge workers without standing up a full ad-analytics stack of your own.

How do I calculate return on ad spend (ROAS)?

Send positive ad_spend and non-negative revenue in the same currency. The API returns ROAS as revenue divided by ad_spend, plus roas_percent as that ratio times one hundred.

What happens if ad spend is zero?

The task fails with invalid_input. ROAS is undefined when spend is zero, so the API never returns infinity or NaN. Failed validation is not billed.

Can attributed revenue be zero?

Yes. Zero revenue with positive spend yields ROAS of zero and roas_percent of zero, which is a valid efficiency outcome when ads drove no attributed sales.

What does the return on ad spend calculator cost?

The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.

Read the full KIT documentation →