Percent water in hydrate calculator
A 5 g hydrate that leaves 3.2 g of dry salt after heating held 36 % water: enter the two crucible weighings and get the water lost, the percent water and the water fraction for your lab report. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Hydrate mass
- 5
- Anhydrous mass
- 3.2
- Water mass
- 1.8
- Water percent
- 36
- Water fraction
- 0.36
- Precision
- 10
This percent water in hydrate calculator turns a hydrate sample mass and an anhydrous residue mass into the mass percent of water of crystallization. In general chemistry labs you weigh a hydrated salt, heat it gently to drive off water, weigh the anhydrous salt, and report how much of the original sample was water. The definition is fully deterministic: water mass equals hydrate mass minus anhydrous mass, and mass percent water equals one hundred times water mass divided by hydrate mass. Classic checks include five grams of hydrate leaving three and two-tenths grams anhydrous (thirty-six percent water) and twenty-five grams leaving sixteen grams dry (also thirty-six percent). The engine uses only finite arithmetic with no network calls, no sampling, and no date-dependent shortcuts.
Where percent water in a hydrate fits in study, lab work, and software
Students use this calculator when a hydrate lab asks for the mass percent of water from crucible weighings, when homework supplies pre- and post-heating masses without a formula, or when they check whether a proposed water loss matches a textbook target before writing the conclusion. Teachers can pre-generate answer keys for modest mass pairs without trusting opaque calculator apps that silently switch units or drop the factor of one hundred.
Lab technicians and quality checks use the same ratio when a certificate lists water content by mass and the theoretical mix must be compared against measured hydrate and dry masses. Developers call the same contract from scripts to seed deterministic test vectors for chemistry tutors, to normalize user-entered crucible data before a lab notebook export, or to satisfy programming-challenge statements that demand mass percent water rather than a hand-waved sketch.
What you can do with it
Hydrate lab reports and worksheet keys
Compute mass % water from pre- and post-heating sample masses before grading copper sulfate or gypsum-style hydrate labs.
Tutoring software and lab notebooks
Normalize user-entered crucible masses into percent water for interactive lessons and digital lab exports.
FAQ
What does the percent water in hydrate calculator cost?
It is free in your browser on this page.
How is mass percent of water defined?
The water fraction is the same ratio without the factor of one hundred.
What happens if hydrate mass is zero?
Zero hydrate mass makes percent water undefined (division by zero).
Do the masses need to be in grams?
No. Any consistent unit works (g with g, mg with mg, and so on). The calculator does not convert units for you.
Is this the same as percent composition from a formula?
No. Formula percent composition uses atomic weights and a chemical formula. This tool uses only the measured hydrate and anhydrous masses from a heating experiment.
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-water-in-hydrate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"hydrate_mass":5,"anhydrous_mass":3.2}'const res = await fetch("https://api.kit.forhosting.com/chem/percent-water-in-hydrate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"hydrate_mass": 5,
"anhydrous_mass": 3.2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/chem/percent-water-in-hydrate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"hydrate_mass": 5,
"anhydrous_mass": 3.2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/chem/percent-water-in-hydrate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"hydrate_mass":5,"anhydrous_mass":3.2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"hydrate_mass":5,"anhydrous_mass":3.2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/chem/percent-water-in-hydrate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"hydrate_mass": 5,
"anhydrous_mass": 3.2
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "chem.percent_water_in_hydrate",
"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
What percent water in a hydrate means and what the response contains
Mass percent of water in a hydrate answers a single lab question: after heating, how much of the original crystalline sample was water of crystallization? Both masses must share the same unit—grams with grams, milligrams with milligrams—because the ratio is dimensionless and any unit conversion must happen before you call the calculator. Students meet the idea when a lab handout asks for the percent water in copper(II) sulfate pentahydrate, when a worksheet gives pre- and post-heating masses, or when an empirical formula for a hydrate is built from water loss and anhydrous residue. If m_hydrate is the mass of the hydrated sample and m_anhydrous is the mass of the dried residue, the water mass is the difference m_hydrate minus m_anhydrous, the water fraction is that difference divided by m_hydrate, and the mass percent of water is one hundred times the water fraction. This calculator returns the normalized hydrate_mass and anhydrous_mass, the water_mass difference, the water_percent result, the underlying water_fraction between zero and one, the precision used, the method tag percent_water_in_hydrate, a short formula string, and a unit hint of percent by mass. There is no approximate CAS path and no live unit conversion: the engine either subtracts and divides two finite numbers and scales by one hundred or rejects the input with invalid_input. Rejected cases include a missing hydrate or anhydrous mass, non-finite values, magnitudes above the documented ceiling, a negative mass, anhydrous mass larger than hydrate mass, and any hydrate mass that is zero, because division by zero makes the percent undefined.
How masses are read and how percent water 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 percentage. Zero anhydrous mass is valid and yields one hundred percent water by this mass-difference definition. Negative masses and an anhydrous mass larger than the hydrate mass are also rejected as non-physical for this definition. The preferred fields are hydrate_mass for the hydrated sample and anhydrous_mass for the dried residue, but aliases m_hydrate, hydrate, m_hyd, mass_hydrate, and m1 for the hydrate, and m_anhydrous, anhydrous, m_an, mass_anhydrous, m2, and dry_mass for the anhydrous salt, are accepted so spreadsheets, query strings, and typed forms can reuse the same contract. Zero hydrate mass is not: the request fails with invalid_input because percent water is undefined when the denominator vanishes. An optional precision field, with aliases decimals and dp, chooses how many decimal places to expose for the returned masses, percent, and fraction, defaulting to ten and capped at fifteen so JSON goldens stay stable. 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 hydrate water-percent formula yourself.
Where percent water in a hydrate fits in study, lab work, and software
Product and education tools use the endpoint when a learner types two masses and the UI must show a clear percent-water result with the water fraction for optional follow-on math such as moles of water per mole of anhydrous salt. 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 percent composition or molar mass helpers when you need related hydrate stoichiometry, and with other science endpoints when you are building a small lab of free, deterministic chemistry calculators.
Integration use cases
Deterministic test fixtures
Generate reproducible water_percent and water_mass values for unit tests, tutors, and CI assertions.