Calculators are checked against independent answers
For each calculator we use textbook cases with known answers, such as 150 mM NaCl in 500 mL needing 4.383 g, or 13,000 rpm on an 8.5 cm rotor giving about 16,060 × g. The expected answers are worked out separately from first principles, not with our own code.
A test program then opens the real site in a browser, types each case into the calculator and reads the answer off the screen. That way we test exactly what you see, including unit conversions and rounding.
- Recipes, not just headline numbers. Diluent volumes, tube concentrations, master mix tables and purity ratios are all checked.
- Every step of a dilution plan. When an intermediate dilution is needed, each step is replayed to confirm it lands on the right concentration and never asks you to pipette less than your minimum volume.
- Impossible inputs. A final concentration above the stock, mismatched units or an overfull reaction must give a clear error, never a number.
- Exact physics. Centrifuge results are compared with RCF = r·ω²/g rather than the usual shortcut constant. The two agree to within 0.02%.
Curve fitting is compared with SciPy
SciPy is the standard scientific library for Python, used widely in research. We fit the same 14 datasets with WellSpotted and with SciPy and compare the results. The datasets cover every model on offer: 4PL, 5PL, linear, quadratic, cubic, exponential, logarithmic, power and Michaelis–Menten, with and without 1/Y² weighting.
- Fitted parameters agree to better than 0.0001%.
- Standard errors, 95% confidence intervals and R² match to the figures shown on screen.
- Back-calculated sample concentrations match, and samples outside the standards are flagged as out of range instead of being extrapolated.
IC50s are worked out a second way
For the IC50 and EC50 calculator, SciPy fits 11 dose–response datasets and then finds each IC50 independently, by solving for the point on the curve rather than using our formula. The confidence intervals are recalculated from scratch too. The datasets cover 4PL and 5PL, rising and falling curves, raw and normalised responses, fixed tops and bottoms, and concentrations in molar units.
- IC50s, absolute IC50s and their 95% confidence intervals agree to within 0.1%.
- When a top or bottom is fixed, the test also checks it is held on the correct end of the curve at the value entered.
- We checked the test catches the most common IC50 mistake, reporting the 5PL C parameter as the IC50, and a top and bottom swapped over. It caught both.
Rounding and showing the working
Answers are shown to 4 significant figures, which suits most bench work. An analytical balance can read to more figures than that, so for very precise weighings, check whether you need extra digits. Behind the scenes every step is calculated at full precision, so rounding never builds up through a multi-step recipe, and results copied from curve fitting and the IC50 calculator keep every digit.
Every result has a "Show the working" link that lists each step, including unit conversions, so you can check the arithmetic by hand.
We check that the tests can fail
A test that always passes proves nothing. So we deliberately break formulas, for example the serial dilution transfer volume and the centrifuge constant, and confirm the tests catch it. They did, failing on exactly those calculators.
What the tests can't tell you
They prove the maths is right. Some answers also rest on standard constants that may not suit every lab: A260 factors of 50, 40 and 33 at a 1 cm path, and typical growth areas for plates and flasks, which vary between manufacturers. These are shown on the page so you can check them or enter your own.
Results are for planning. Check critical preparations against your lab's SOPs.
Found something wrong?
Please tell us at [email protected] with the numbers you entered. Every report is checked, and fixes are tested the same way before they go live.
Last full check: 8 November 2026.