EV to sales calculator
Divide an enterprise value of 500,000,000 by 250,000,000 of annual revenue and the EV/Sales multiple is 2: the market pays two times sales for the whole firm. Useful when earnings are still negative. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Enterprise value
- 500,000,000
- Annual revenue
- 250,000,000
- Ev to sales
- 2
The enterprise-value-to-sales ratio — searched as an EV to sales calculator, EV/Sales multiple, or revenue multiple — tells you how many dollars of firm value the market assigns to each dollar of annual sales. A result of 3 means buyers pay three times trailing or forward sales for the whole enterprise; software names often print higher, while grocery and wholesale names sit closer to one times sales.
What EV/Sales measures and how the multiple is formed
The enterprise-value-to-sales multiple answers a single comps question: how many years of current revenue does the market, or a buyer, pay for the whole firm? Searchers who type ev to sales calculator want that quotient, not a price-to-sales ratio that starts from market cap and therefore mixes capital structure into the numerator, not an EV/EBITDA print that requires positive earnings, and not a spreadsheet that silently changes the decimal separator.
Enterprise value is the numerator: equity value plus net debt (interest-bearing debt minus surplus cash), plus preferred stock and non-controlling interest when those claims sit above common equity in a control transaction. Annual revenue is the denominator: trailing twelve-month sales or the same forward year the teaser uses, in the same currency as enterprise value. A ratio of 2.0 means the firm is priced at two times sales.
A ratio of 1x is a conventional grocery or wholesale print; 8x to 15x appears in high-growth software comps. The calculator does not build enterprise value from market cap and net debt, does not annualize a stub quarter, and does not apply a sector hurdle: those belong on the comps tape.
What you can do with it
Unprofitable comps and growth screens
Turn reported enterprise value and annual sales into the EV/Sales print a comps table will rank when EBITDA is still negative or too thin to use.
M&A teaser and CIM checks
Paste the advertised enterprise value and annual revenue from a teaser so the implied sales multiple is visible before a football-field chart is built.
FAQ
What happens if annual revenue is zero or negative?
EV/Sales is a quotient, so a zero or negative denominator is undefined and is not billed.
Can enterprise value be negative?
Yes. Distressed capital structures with surplus cash above equity-plus-debt claims are allowed and yield a negative multiple.
Is EV/Sales the same as price-to-sales?
No. Price-to-sales divides market capitalization by sales. This calculator divides enterprise value by annual revenue, so net debt stays in the numerator.
What is a good EV/Sales multiple?
It depends on the sector. Grocery and wholesale companies often sit near 1x sales, while high-growth software comps can reach 8x to 15x. The calculator gives the multiple without any sector benchmark, so compare it with similar companies.
When should I use EV/Sales instead of EV/EBITDA?
When EBITDA is negative or too thin to be meaningful, as with unprofitable or high-growth companies. The sales multiple still lets a comps table rank them, while EV/EBITDA needs positive earnings.
Related tools
For developers — API access
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.
API endpoint
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.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/fin/ev-to-sales \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"enterprise_value":500000000,"annual_revenue":250000000}'const res = await fetch("https://api.kit.forhosting.com/fin/ev-to-sales", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"enterprise_value": 500000000,
"annual_revenue": 250000000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/ev-to-sales",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"enterprise_value": 500000000,
"annual_revenue": 250000000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/ev-to-sales", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"enterprise_value":500000000,"annual_revenue":250000000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"enterprise_value":500000000,"annual_revenue":250000000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/ev-to-sales", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"enterprise_value": 500000000,
"annual_revenue": 250000000
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.ev_to_sales",
"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.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
max_abs_value | 1000000000000000 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
This calculator accepts enterprise value and annual revenue as finite numbers in one currency, divides the first by the second, and returns the valuation multiple as a deterministic JSON contract. Zero or negative revenue is rejected with invalid_input because the quotient is undefined or not a usable trading multiple.
What EV/Sales measures and how the multiple is formed
This tool divides those two finite amounts and returns ev_to_sales. Because division by zero is undefined, and because negative revenue does not produce a useful trading multiple in the way a credit committee or a comps table uses the figure, an annual_revenue of zero or less fails with invalid_input instead of Infinity, NaN, or a signed multiple a form might treat as a bargain.
Input contract, response shape, and error behaviour
Negative revenue is likewise rejected, because a negative denominator is not the EV/Sales multiple a comps table describes. POST a JSON body that supplies enterprise_value and annual_revenue. enterprise_value is the firm-wide value in a single currency unit, a finite number that may be zero or negative in distressed capital structures, with aliases ev, firm_value, tev, and enterprise_val. annual_revenue is trailing or forward sales in the same currency, a finite number that must be strictly greater than zero, with aliases sales, revenue, sales_ttm, and revenue_ttm. Each numeric field may arrive as a JSON number or as a numeric string. Missing enterprise_value, missing annual_revenue, empty strings, non-finite values, or a magnitude above the declared limit fail with invalid_input naming the field and are not billed. Zero revenue is the error this landing exists to catch: the message contains annual_revenue and greater than zero so a form can highlight that control instead of showing a global alert. On success the body echoes both inputs, returns ev_to_sales as the rounded quotient, and includes a formula string restating the identity. Example: enterprise_value of five hundred million against annual_revenue of two hundred fifty million yields ev_to_sales of 2. Example: enterprise_value of one billion two hundred million against three hundred seventy-five million of sales yields a non-integer multiple rather than a silent empty payload. Pair the multiple with your own sector median if the memo needs a cheap or expensive flag; this endpoint computes the valuation multiple only and does not invent a comps verdict.
Where an EV to sales calculator earns its keep
Equity research, buy-side screens, and M&A teasers rank for ev to sales calculator because a comps table thinks in EV/Sales when earnings are thin or still negative, not in a raw market cap. Corporate development and private-equity associates live on confidential-information-memorandum figures; dividing teaser EV by advertised sales gives the same print without forcing an analyst to remember whether a cell already subtracted returns. Educators teaching CFA-style valuation can seed classroom examples that fail loudly on zero or negative revenue instead of printing Infinity a student might treat as infinite cheapness. Failed validation does not consume balance. Public-markets scanners use the same identity on filing EV against reported revenue, and the JSON contract does not care which story produced the numerator. Keep annual_revenue strictly positive, pin the rounded ev_to_sales field in tests, and you get a reproducible valuation multiple for widgets, course modules, and edge workers without standing up a comps engine of your own. Portfolio scripts can call the same module in a loop over many tickers; each item is one request, the unit is item, and the free browser path remains byte-for-byte identical to the API so a landing-page preview never lies about the figure that will be stored after a save.
Integration use cases
Classroom and CFA valuation drills
Seed examples that return a rounded multiple on positive revenue and fail loudly when annual_revenue is zero or negative.
Technical questions
How is the EV to sales ratio calculated from enterprise value and annual revenue?
Send finite numbers enterprise_value and annual_revenue. The API returns ev_to_sales as enterprise_value divided by annual_revenue, rounded to six decimal places.
What does the EV to sales calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.