ForHosting KIT · Finance & money

ROAS calculator

Ads that cost 1,000 and brought in 4,000 of attributed revenue have a ROAS of 4: four units of revenue for every unit spent. Compare search, social and shopping campaigns before you scale or pause one. 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
Revenue
4,000
Cost
1,000
You get
Roas
4

Return on ad spend, almost always searched as a ROAS calculator, is the paid-media identity that turns attributed revenue and advertising cost into one efficiency ratio: revenue divided by cost. Media buyers use that quotient to compare search, social, display, shopping, and affiliate flights before they scale a winner or pause a loser. Arithmetic is deterministic, with no network, no sampling, and no clock.

What ROAS means and how to read it

Return on ad spend is the campaign-level ratio marketers write as ROAS equals attributed revenue divided by advertising cost. Revenue is the money your attribution window credits to ads: platform-reported conversion value, shop sales tagged to a campaign, or a finance export of attributed orders in one currency. Cost is the money actually invoiced or pulled from the ad account for that same window: media cost and, if your finance team treats them as advertising, platform serving fees in the same currency.

Dividing those two numbers yields a dimensionless ratio you can set beside a target such as four to one, last week's blended number, or a contribution-margin floor. A result of four means four units of attributed revenue for every unit spent; a result of one means break-even on media before other costs; a result of zero means spend with no attributed sales. This calculator returns the echoed revenue and cost you submitted, the roas result, and the formula string roas equals revenue divided by cost.

Where ROAS thinking fits in media buying, reporting, and software

People meet ROAS thinking when a media buyer asks whether a shopping campaign still returns more than four dollars of attributed revenue per dollar spent, when a founder compares agency retainers that quote a target return on ad spend, or when a finance partner asks why last month's blended ROAS dropped after a brand burst that booked impressions without matching sales. Performance teams pre-check whether a proposed daily budget at the current conversion value still lands above a catalog or contribution-margin floor before they scale.

Growth engineers call the same contract from scripts to seed deterministic test vectors for bid dashboards, to normalize user-entered revenue and spend before recommendation demos, or to satisfy product-challenge statements that demand a roas field rather than a hand-waved efficiency claim. Homework and interview practice often needs a fast, offline source of quotients so solutions can be checked without opaque spreadsheet macros under time pressure.

This identity is not a substitute for incrementality tests, geo holdouts, or full return on investment that subtracts all costs from gain, but it is the number every ad account already prints next to conversion value.

Paid search and social scale checks

Divide last week's attributed conversion value by ad spend to see whether a campaign still sits above its target ROAS before you raise the budget.

Weekly blended ROAS reporting

Roll several channels into one revenue total and one advertising-cost total so finance and growth share a single blended return-on-ad-spend figure.

How do I calculate ROAS from attributed revenue and advertising cost?

Send finite numbers revenue (non-negative) and cost (strictly positive).

Is this ROAS calculator the same as return on investment (ROI)?

No. ROAS is attributed revenue over advertising cost. ROI typically uses (gain minus cost) divided by cost and may include non-advertising costs. Use a dedicated ROI tool if you need that broader identity.

Can I send zero attributed revenue for a campaign that spent but did not sell?

Yes. Zero revenue with a positive cost yields ROAS 0. Negative revenue is rejected. Cost must stay strictly positive.

What is a good ROAS?

It depends on your margins. Compare the result with your own target, such as 4 to 1, with last week's figure or with a contribution-margin floor. A ROAS of 1 only breaks even on media before any other cost.

What should I count as advertising cost?

The money actually invoiced or taken from the ad account in the same window as the revenue. That means media cost and, if your finance team treats them as advertising, platform serving fees, all in the same currency.

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/fin/roas

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/fin/roas \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"revenue":4000,"cost":1000}'
{
  "revenue": 4000,
  "cost": 1000
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "fin.roas",
  "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.

max_abs_value1000000000000000
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 tool accepts attributed revenue and total advertising cost, returns the ROAS ratio, and fails with invalid_input when advertising cost is zero because that quotient is undefined. Use it free in the browser, or call the API at $0.002 per successful item for dashboards, bid-check worksheets, and nightly budget scripts that must see the same figure every time.

What return on ad spend means and what the response contains

There is no hidden tax, currency conversion, multi-touch model, or time-value discount: the engine either divides two finite numbers inside the supported range or rejects the input with invalid_input. Rejected cases include missing revenue or cost, non-finite values, magnitudes above the documented ceiling, a negative revenue, and any cost that is zero or non-positive, because division by zero is undefined and a non-positive advertising outlay does not define return on ad spend.

How revenue and cost are read and how the quotient stays reproducible

Optional leading plus signs and scientific notation on numeric strings are allowed when they parse as finite decimals; embedded spaces, hex prefixes, and non-numeric tokens are rejected with a clear message so a bad cell does not become a wrong ROAS. Zero for revenue is valid and simply yields zero return on ad spend when cost is positive: a campaign that spent money and recorded no attributed sales has a ROAS of zero in this identity. Negative revenue is also rejected so the model stays an advertising-efficiency calculator rather than a signed ledger of refunds. The preferred fields are revenue for attributed sales in one currency unit and cost for total advertising spend in the same window, but aliases attributed_revenue, sales, proceeds, and income for revenue, and advertising_cost, ad_spend, spend, total, and advertising_spend for cost are accepted so spreadsheets, query strings, and typed forms can reuse the same contract. Cost must be strictly positive: if cost is zero or at or below a tiny epsilon, the request fails with invalid_input because ROAS equals revenue divided by cost is undefined when advertising cost is zero. Pair the free browser run on this page with the priced API when you need the identical mathematical result inside an automated pipeline without re-implementing the division yourself.

Where ROAS thinking fits in media buying, reporting, and software

On this page the work runs entirely in your browser; through the API each successful lookup costs $0.002, failed validation is not charged, and nothing is stored after the response returns. That split — free interactive exploration and a priced, identical API — matches the rest of the KIT tier-A catalog and lets you move from a classroom demo to an automated pipeline without changing the mathematical result. Pair it with other finance endpoints when you are building a small lab of free, deterministic advertising and unit-economics helpers that stay honest about what they divide.

Dashboard fixtures and interview drills

Seed tests and worksheets with a deterministic roas equals revenue divided by cost so graders and CI never disagree on a hand-computed ratio.

What happens if advertising cost is zero?

The task fails with invalid_input. ROAS is revenue divided by cost, which is undefined when advertising cost is zero, so the request is not billed.

What does a ROAS calculator request 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 →