Degree of dissociation calculator
See how much of a reactant has split apart by equilibrium: starting at 0.1 mol/L and ending with 0.02 mol/L undissociated gives a degree of dissociation of 0.8, or 80 %. The amount that dissociated is shown too. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Initial concentration
- 0.1
- Equilibrium concentration
- 0.02
- Amount dissociated
- 0.08
- Degree of dissociation
- 0.8
- Alpha
- 0.8
- Percent dissociation
- 80
The degree of dissociation alpha is the fraction of reactant formula units that have split into products by the time a system reaches equilibrium. In concentration form, textbooks write alpha equals open parenthesis C zero minus C equilibrium close parenthesis divided by C zero, where both values use the same concentration units for the undissociated reactant. This capability applies that definition deterministically: you send the initial concentration and the equilibrium concentration of the reactant, and you receive alpha, percent dissociation, and the concentration difference with stable rounding for audits and homework keys. When the initial concentration is zero, alpha is undefined because the formula would divide by zero, so the engine rejects that case with a clear invalid input error instead of returning NaN or infinity.
What degree of dissociation means and which concentrations to send
In equilibrium chemistry, a weak electrolyte or a dissociating reactant often does not fully convert: some molecules remain undissociated while others have already split. The degree of dissociation alpha measures that split as a pure number between zero and one. Zero means none of the reactant has dissociated at equilibrium; one means complete dissociation so that the undissociated equilibrium concentration is zero; partial values describe the usual weak-electrolyte case.
The operational definition used here is alpha equals open parenthesis initial concentration minus equilibrium concentration close parenthesis divided by initial concentration. Units must match on both sides; the engine does not convert molarity to molality or percent. Negative concentrations and equilibrium greater than initial are also rejected so homework checkers never pin a silent nonsensical fraction.
What you can do with it
Homework and exam verification
Students compute α from C0 and Ceq for weak acids or gas dissociations, compare against answer keys, and get a clear error when initial concentration is zero.
Lab and equilibrium notebook checks
Instructors and lab software turn measured initial and residual undissociated concentrations into α and percent dissociation for reports and quizzes.
FAQ
What is alpha when dissociation is complete or zero?
When Ceq = C0, alpha equals 0 (no dissociation). Partial cases yield a value strictly between 0 and 1.
Is the degree of dissociation calculator free?
The browser tool runs free on your device.
What happens if the initial concentration is zero?
The calculator rejects it, because the degree of dissociation divides by the initial concentration. The initial value must be greater than zero, and the equilibrium value cannot be negative.
Can the equilibrium concentration be higher than the initial one?
No. The equilibrium value is the reactant that is still undissociated, so it can only be equal to or lower than what you started with. A higher value is rejected as an input mistake.
How is this different from working it out from the van 't Hoff factor?
Here you start from two concentrations of the reactant, before and at equilibrium. If you only know the van 't Hoff factor from a colligative measurement, you need the calculation based on that factor instead.
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/degree-of-dissociation \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"initial_concentration":0.1,"equilibrium_concentration":0.02}'const res = await fetch("https://api.kit.forhosting.com/chem/degree-of-dissociation", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"initial_concentration": 0.1,
"equilibrium_concentration": 0.02
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/chem/degree-of-dissociation",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"initial_concentration": 0.1,
"equilibrium_concentration": 0.02
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/chem/degree-of-dissociation", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"initial_concentration":0.1,"equilibrium_concentration":0.02}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"initial_concentration":0.1,"equilibrium_concentration":0.02}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/chem/degree-of-dissociation", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"initial_concentration": 0.1,
"equilibrium_concentration": 0.02
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "chem.degree_of_dissociation",
"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
What degree of dissociation means and which concentrations to send
Send the required field initial_concentration as a finite number strictly greater than zero—aliases include c0, C0, initial, initial_conc, and concentration_initial. Send equilibrium_concentration as a finite non-negative number not greater than the initial value—aliases include ceq, Ceq, equilibrium, eq_concentration, and concentration_eq. Initial concentration equal to zero is invalid_input because alpha is undefined when dividing by C zero. Identical inputs always produce identical JSON because the path is pure arithmetic with no network, no random seed, and no wall clock.
Reading the response, special cases, and classroom checks
When equilibrium concentration equals the initial value, alpha is exactly zero. When equilibrium concentration is zero, alpha is exactly one. Partial cases such as initial zero point one and equilibrium zero point zero two yield alpha zero point eight and eighty percent dissociation. On success the response echoes initial_concentration and equilibrium_concentration after validation, then returns amount_dissociated equal to C zero minus C equilibrium, degree_of_dissociation and the short alias alpha with the same numeric value, and percent_dissociation equal to one hundred times alpha. The formula field is always the string alpha equals open parenthesis C zero minus C eq close parenthesis divided by C zero, and method is always degree_of_dissociation so pipelines can assert the algorithm without sniffing shapes. Missing fields, non-numeric strings, zero or negative initial concentration, negative equilibrium concentration, and equilibrium above initial all fail with invalid_input and are not charged. Downstream van't Hoff factor tools can take alpha as an input; this endpoint stops at the degree of dissociation itself so each SEO intent stays focused.
API usage, pricing, lab workflows, and practical limits
Call the free browser tool for lecture demos, lab notebook checks, and quick homework verification without installing a chemistry CAS. Keep both concentrations in consistent units and inside the published physical bounds; the engine will not invent activity coefficients, temperature dependence, or multi-step mechanisms. Send a JSON body with required numeric fields initial_concentration and equilibrium_concentration, optionally using the documented aliases if your schema already names c0 and ceq. Use the prepaid API when a tutoring platform, LIMS helper, exam-autograder sandbox, or equilibrium pipeline needs a stable contract under KIT balance at $0.002 per successful item; validation failures never consume balance after the engine rejects the request. Pair this endpoint with a van't Hoff factor calculator when the next step needs i equals one plus alpha times open parenthesis nu minus one close parenthesis for colligative work, or with equilibrium-constant helpers when you already know K and want to cross-check alpha from measured concentrations. Authors shipping SDKs can map degree_of_dissociation and percent_dissociation straight into UI fields labeled alpha and percent for students who already know those symbols from textbooks.
Integration use cases
Tutoring and autograder pipelines
Assessment sandboxes call a stable prepaid endpoint for exact α = (C0 − Ceq) / C0 instead of reimplementing the fraction in every language.
Technical questions
How do I calculate the degree of dissociation with this tool?
Send JSON with initial_concentration (C0 > 0) and equilibrium_concentration (0 ≤ Ceq ≤ C0). The response returns degree_of_dissociation and alpha equal to (C0 − Ceq) / C0, plus percent_dissociation.
What happens if the initial concentration is zero?
The request fails with invalid_input. Alpha is defined as a fraction of the initial amount, so dividing by C0 = 0 is undefined and is not charged.
How is this different from the van't Hoff factor calculator?
This tool finds alpha from concentrations. The van't Hoff factor tool takes alpha (and ions per formula unit) and returns i = 1 + α(ν − 1) for colligative properties—a different search intent and endpoint.