Equivalent ratio calculator
Scaling 3:4 by 5 gives 15:20, and both still equal 0.75, so the proportion has not changed. Enter a ratio and any non-zero factor, including 0.5 to scale down, and get both scaled terms with the decimal value. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Numerator
- 3
- Denominator
- 4
- Scale
- 5
- Value
- 0.75
- Scaled numerator
- 15
- Scaled denominator
- 20
Multiplying both sides of a ratio by the same non-zero number never changes the proportion, so 3:4 scaled by 5 is 15:20, and both describe exactly the same relationship. It is the operation behind doubling a recipe, enlarging a map, or preparing a fraction for comparison, done in one deterministic call.
What an equivalent ratio actually is
Two ratios are equivalent when they express the same proportion: 1:2, 5:10 and 37:74 all say the same thing. You send a numerator, a denominator and a scale factor; you get back both original terms, both scaled terms and the decimal value of the ratio, so you can verify at a glance that the proportion did not move. The equivalent ratio calculator never simplifies on its own — it scales, which is the operation you asked for, and leaves simplification to you or to a dedicated tool.
Because the factor can be any non-zero finite number, including a fraction like 0.5, the same call also covers scaling down: a scale of one half turns 8:12 into 4:6 without any special mode or flag.
How the computation works and what it rejects
The math is deliberately small: scaled numerator equals numerator times scale, scaled denominator equals denominator times scale. Everything is validated before a single multiplication happens. The denominator of the original ratio must be non-zero, because a ratio with a zero denominator is undefined; the scale factor must also be non-zero, because multiplying both terms by zero collapses the ratio to 0:0 and destroys the proportion it was meant to preserve.
Results are rounded to ten decimal places so that the output is byte-for-byte stable across machines, which matters when you compare responses in tests or store them in an audit trail.
Where teams use it
Recipe and formula scaling is the classic case: a mixture stated as 3 parts flour to 2 parts water becomes 15:10 when a batch is made five times larger, and an automated kitchen system can request that conversion programmatically rather than reimplementing it. The same pattern appears in cartography and CAD, where distances on a drawing keep a fixed ratio to real-world lengths, and in education software that generates practice problems by scaling a seed ratio into an equivalent one.
What you can do with it
Scale a recipe or chemical mixture
Turn a 3:2 mixture into a batch five times larger by scaling both parts, keeping the proportions exact.
Generate practice problems
Produce equivalent ratios from a seed ratio so students can compare proportions that look different but are equal.
Prepare fractions for comparison
Scale two ratios toward a common denominator in a pipeline before comparing or sorting them.
FAQ
Can I scale down instead of up?
Yes. Pass a fractional scale such as 0.5 and both terms are halved; the factor may be any non-zero finite number.
Does it simplify the result?
No. It returns the exact scaled terms you asked for, plus the decimal value of the ratio so you can confirm the proportion is unchanged.
Is anything stored?
No. The numbers are processed and discarded; only the scaled ratio is returned.
How can I check that the proportion did not change?
Look at the decimal value shown with the result. For 3:4 scaled by 5 to 15:20, both ratios come out at 0.75, which confirms they describe exactly the same relationship.
How do I scale a recipe with a ratio?
Enter the parts of the recipe as the two terms and the batch size as the factor. A mix of 3 parts flour to 2 parts water made five times larger becomes 15 to 10, with the proportions kept exact.
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/math/equivalent-ratio \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"numerator":3,"denominator":4,"scale":5}'const res = await fetch("https://api.kit.forhosting.com/math/equivalent-ratio", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"numerator": 3,
"denominator": 4,
"scale": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/equivalent-ratio",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"numerator": 3,
"denominator": 4,
"scale": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/equivalent-ratio", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"numerator":3,"denominator":4,"scale":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"numerator":3,"denominator":4,"scale":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/equivalent-ratio", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"numerator": 3,
"denominator": 4,
"scale": 5
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.equivalent_ratio",
"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.
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
The equivalent ratio API takes a ratio — a numerator and a denominator — and multiplies both terms by the same scale factor, returning the scaled pair.
What an equivalent ratio actually is
You move between them by multiplying or dividing both terms by the same non-zero number, and this endpoint performs exactly that step.
How the computation works and what it rejects
Non-numeric or non-finite inputs are rejected with a clear message, and the request fails fast with an invalid_input error instead of returning a silently wrong number. There is no hidden state and no approximation beyond that final rounding: two calls with the same three numbers always return the same response, so the endpoint is safe to cache, safe to retry and safe to assert against in your own test suites.
Where teams use it
The endpoint runs on our global edge, keeps nothing after the response, and the identical code runs free in your browser on this page — you can try any ratio by typing it in, and you only pay when you call the API from your own system at $0.002 per request.
Technical questions
What does it cost?
$0.002 per request. It is also free to run in your browser on this page.
Why can't the scale factor be zero?
Multiplying both terms by zero collapses the ratio to 0:0, which no longer represents the original proportion, so the request is rejected.
What happens if the denominator is zero?
The request fails with an invalid_input error, because a ratio with a zero denominator is undefined.