Percent solution prep calculator
100 g of a 10 % solution needs 10 g of solute and 90 g of solvent: enter the target percent by mass and the total you want to make, and get both weigh-outs in grams. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Mass percent
- 10
- Total mass g
- 100
- Solute mass g
- 10
- Solvent mass g
- 90
Mass percent solutions are the everyday lab recipe that asks how many grams of solid or liquid solute to dissolve so the finished mixture has a stated weight percent. The definition is simple: mass percent equals solute mass divided by total solution mass, times one hundred. Rearranged for preparation, solute mass is the percent over one hundred times the target total mass, and solvent mass is whatever remains. Pharmacists compounding topical gels, food technologists blending brines, and students building ten-percent NaCl bottles all need the same two weigh-out numbers without hand arithmetic errors. This calculator accepts a target mass percent and a total solution mass in grams, returns solute and solvent masses with unit labels and the formula string for audit, and rejects a percent outside zero to one hundred so an impossible recipe never reaches the balance.
Where percent solution prep calculators show up in real work
Secondary-school and introductory university chemistry courses assign weight-percent preparation drills that convert a target percent and a bottle size into two weigh-outs; a single trusted oracle speeds grading and demo setup without hand-waving floating-point noise. Pharmacy and compounding labs prepare topical creams, saline rinses, and disinfectant stocks specified as percent by mass so potency stays independent of volumetric glassware temperature effects. Food and beverage technologists blend brines, sugar syrups, and acidulants where recipes are written as percent by weight rather than molar concentration.
Process chemists and quality teams issue batch tickets that list solute and solvent masses for operators who only have a balance, not a volumetric flask. Environmental and water-treatment notebooks convert a target mass-percent dosing level into feed masses for pilot skids. If you later need molarity from volume, mole fraction, molality from solvent kilograms, serial dilution volumes, or density-aware volume-percent conversion, treat those as separate search intents and landings rather than overloading this percent solution preparation calculator page.
What you can do with it
Homework and lab prep sheets
Turn target mass percent and bottle total mass into solute and solvent grams so teachers and auto-graders share one weight-percent ground truth.
Pharmacy and compounding recipes
Compute weigh-outs for percent-by-mass creams, rinses, and disinfectant stocks without volumetric glassware or density tables.
FAQ
What is a mass percent solution?
Mass percent (w/w %) is (mass of solute / mass of finished solution) × 100.
What happens if mass percent is outside 0 to 100?
Mass percent must lie in the closed range 0–100; values outside that range are not a valid portion of the solution mass.
What units does the calculator use?
Total mass, solute mass, and solvent mass are in grams (g). Mass percent is weight percent (w/w %). Keep every mass field on the same unit scale.
What does it cost?
The browser tool is free and runs locally.
Why don't I add the solute to the full total mass of water?
Because the percentage refers to the finished solution, solute included. The solvent is only the remainder, the total minus the solute. Adding the solute to the full total of solvent gives a weaker solution than the recipe asks for.
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/chem/percent-solution-prep \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"mass_percent":10,"total_mass_g":100}'const res = await fetch("https://api.kit.forhosting.com/chem/percent-solution-prep", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"mass_percent": 10,
"total_mass_g": 100
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/chem/percent-solution-prep",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"mass_percent": 10,
"total_mass_g": 100
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/chem/percent-solution-prep", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"mass_percent":10,"total_mass_g":100}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"mass_percent":10,"total_mass_g":100}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/chem/percent-solution-prep", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"mass_percent": 10,
"total_mass_g": 100
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "chem.percent_solution_prep",
"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
How mass-percent solution preparation works
Solvent mass is total mass minus solute mass, which is the same as total mass times one minus the fractional percent. Both results stay in the same mass unit as the total; this capability labels grams because laboratory balances report grams. Mass percent must lie in the closed interval from zero through one hundred: zero percent is pure solvent with no solute, one hundred percent is pure solute with no solvent, and any value outside that range cannot describe a portion of a real mixture. The capability does not convert mass percent into molarity, molality, normality, or mole fraction, does not look up density or molar mass, and does not perform stock dilutions with C1V1 equals C2V2; those remain separate search intents with their own landings when product coverage grows. Start from the textbook definition of mass percent, also called weight percent or percent by mass: mass_percent equals the mass of solute divided by the mass of the finished solution, multiplied by one hundred. For preparation you fix two inputs—the desired mass_percent and the total mass of solution you want to make—and solve for the two weigh-outs. Solute mass is mass_percent divided by one hundred, times total mass. Total mass must be strictly positive; a zero or negative finished mass is non-physical and fails validation with invalid_input rather than inventing negative weigh-outs. The arithmetic is closed form and runs in deterministic floating-point math: no random seeds, no wall-clock timestamps, no network calls, and no model drift, so identical inputs always produce identical JSON.
What you send and what you get back
Classic textbook checks include a ten-percent solution of one hundred grams total, which needs ten grams of solute and ninety grams of solvent; a five-percent solution of two hundred grams total needing ten grams of solute and one hundred ninety grams of solvent; and a pure-solvent edge case of zero percent that returns zero solute and full solvent mass. Wire the free browser form for homework and quick sanity checks, then call the identical contract from scripts when you need bulk prep sheets, batch tickets, or grading oracles. Keep all masses on the same gram scale across multi-step lab pipelines so the numeric product still matches the mass-percent interpretation your report claims. Send two required finite numbers under the fields mass_percent and total_mass_g. mass_percent is the target weight percent of solute and must satisfy zero less than or equal to mass_percent less than or equal to one hundred. total_mass_g is the mass of the finished solution in grams and must be strictly greater than zero. Missing fields, non-numeric strings, NaN, Infinity, percent outside zero to one hundred, and non-positive total mass fail with invalid_input and are not charged. On success the response echoes cleaned mass_percent and total_mass_g, provides solute_mass_g and solvent_mass_g as the primary prep results, includes a units hint object naming percent by mass and grams, sets method to mass_percent_solution_prep, and formula to the two-line expression m_solute equals mass_percent over one hundred times m_total and m_solvent equals m_total minus m_solute so lab notebooks can cite the same expression. Pricing for successful API calls is the published base of $0.002 per item; validation failures do not consume prepaid balance.
Where percent solution prep calculators show up in real work
Because this capability is a pure parse engine, API pricing is the published base of $0.002 per successful item and failed validation does not consume balance.
Integration use cases
Food, brine, and process batch tickets
Bulk-produce solute and solvent masses for percent-weight recipes and reject impossible percents outside 0–100 with invalid_input.
Technical questions
How do I format the input?
Send mass_percent (e.g. 10 for 10%) and total_mass_g (e.g. 100 for a 100 g solution). Both must be finite numbers; total_mass_g must be greater than zero.