Single-tube dilution factor calculator
This single-tube dilution factor calculator turns two routine bench measurements into a clear dilution result.
Run — free
Enter the volume of original sample transferred into one tube and the total final volume after adding diluent. The calculator reports the dilution factor, equivalent fold dilution, diluent volume, and remaining sample fraction. It is designed for biology and laboratory workflows where both volumes use the same unit, whether microliters, milliliters, or another consistent volume unit. The deterministic calculation makes the result easy to reproduce in protocols, worksheets, and automated pipelines.
Enter the sample and final volumes correctly
Start with the volume of original sample that actually enters the tube. This is the undiluted aliquot, not the amount of diluent and not the tube capacity. Then enter the total final volume present after the sample and diluent have been combined. Both numbers must use the same unit. For example, a sample volume of 20 microliters brought to a final volume of 200 microliters is valid, as is 0.02 milliliters brought to 0.2 milliliters; mixing 20 microliters with a final value written as 0.2 milliliters without converting first is not valid because the raw numbers no longer share a unit. The final volume must be at least as large as the sample volume. When they are equal, no diluent was added and the dilution factor is one. Record the final volume from the actual preparation or protocol target, including the transferred sample. Do not enter only the diluent volume in that field, because doing so understates the denominator and produces the wrong factor. Positive finite values are required so that the physical preparation and division are meaningful.
Understand the reported dilution factor
The calculator applies the standard single-tube relationship: dilution factor equals final volume divided by sample volume. If 0.25 milliliters of sample is brought to 5 milliliters total, the factor is 20, commonly described as a twenty-fold dilution. The sample fraction is the reciprocal, 0.05 in this case, meaning the final mixture contains five percent of the original sample by volume under the simple additive-volume assumption. The reported diluent volume is final volume minus sample volume, so this example needs 4.75 milliliters of diluent. Dilution factor is dimensionless because the shared volume units cancel. It describes how much the original sample has been expanded in one tube; it does not report the new concentration unless an initial concentration is also known. Under ideal mixing and no loss, final concentration can be obtained separately by dividing initial concentration by the reported factor. This capability deliberately calculates one tube only. It does not multiply factors across serial transfers, correct for pipette bias, or infer whether component volumes contract or expand when mixed. Those experimental considerations belong in the protocol and quality controls.
Use the result in protocols and automation
Use the dilution factor as a reproducible checkpoint when preparing standards, diluting extracts, setting up assays, or documenting a sample-processing step. A protocol can store the two measured inputs beside the returned factor, making later review easier than recording an unexplained label such as “1:10.” Ratio notation is sometimes ambiguous because one laboratory may mean one part sample plus nine parts diluent while another may casually describe one plus ten. Explicit sample and final volumes remove that ambiguity: a factor of ten means the total final volume is ten times the sample volume, and the diluent volume is nine times the sample volume. In automation, validate the output before using it downstream, retain the original unit in your surrounding record, and avoid rounding the physical pipetting instruction more aggressively than the equipment supports. The API price is $0.002 per request, and each request evaluates one independent tube. Because the algorithm is pure and deterministic, identical numeric inputs return identical output. It performs no network lookup and does not retain laboratory data. For a sequence of tubes, call the capability once per tube or use a purpose-built serial dilution workflow that tracks cumulative factors.
What you can do with it
Prepare an assay sample
Confirm the fold dilution when a measured aliquot is brought to the target working volume in one tube.
Document specimen processing
Store sample volume, final volume, diluent volume, and factor together as an auditable preparation record.
Validate laboratory worksheets
Recalculate single-step factors automatically and flag entries where the final volume is smaller than the sample volume.
FAQ
What formula does the calculator use?
It uses dilution factor = final volume / sample volume for a single tube.
Should final volume include the sample?
Yes. Final volume is the total mixture after diluent is added, including both sample and diluent.
Do both volumes need the same unit?
Yes. Convert them to one shared unit before submitting; the unit then cancels from the factor.
What does a dilution factor of 10 mean?
The final mixture volume is ten times the transferred sample volume, so the sample fraction is one tenth.
Can this calculate a serial dilution?
No. It calculates one tube. Serial dilution requires combining the factor from every transfer in the sequence.
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/bio/single-tube-dilution-factor \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"sample_volume":0.2,"final_volume":2}'const res = await fetch("https://api.kit.forhosting.com/bio/single-tube-dilution-factor", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"sample_volume": 0.2,
"final_volume": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/bio/single-tube-dilution-factor",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"sample_volume": 0.2,
"final_volume": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/bio/single-tube-dilution-factor", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"sample_volume":0.2,"final_volume":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"sample_volume":0.2,"final_volume":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/bio/single-tube-dilution-factor", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"sample_volume": 0.2,
"final_volume": 2
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "bio.single_tube_dilution_factor",
"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. |