Home / Science / Environmental science / Ecotoxicology / Species sensitivity distributionTool #152

Species sensitivity distribution (SSD) and HC5 calculator: log-normal, log-logistic and model average with bootstrap limits

Turn toxicity values for many species into one protective concentration. Fit a species sensitivity distribution (log-normal, log-logistic or their AICc average), read off the HC5 or any other HCp with bootstrap limits, see the fraction of species affected at any concentration, and plot every species on the curve.

Keep it one tap away for everyday use.

Bookmark Species sensitivity distribution?

Press Ctrl + D now. Your browser opens its own bookmark box, where you choose the name and folder.

  1. Species
  2. Fit curve
  3. HC5
  4. Protect
Nothing is uploadedWorks offline once open

Toxicity values

Use one kind of endpoint for every species (for example all chronic EC10 or all acute LC50) in one unit. HC5 is the concentration that 5 % of species are expected to be more sensitive than. The limits come from a parametric bootstrap with a fixed seed, so the same data always give the same answer. Fill in "Fraction affected at" to get the share of species expected to be affected at that concentration. Up to 5,000 rows. The example species and values are made up.

Result

Hazardous concentrations

Model comparison

Species

Download

What it does

Different species tolerate a chemical very differently: a mayfly may react at a tenth of the concentration that hurts a snail. A species sensitivity distribution (SSD) treats the toxicity values of the tested species as a sample from all species. It fits a curve to them and asks: at what concentration would a given share of species be affected?

The answer for 5 % is the HC5, the hazardous concentration for 5 % of species. It is the usual starting point for water and soil quality guidelines and for the predicted no-effect concentration in a risk assessment. This tool fits the SSD, gives the HC5 (or any HCp) with confidence limits, and gives the reverse too: the fraction of species affected at a concentration you name.

How to use it

  1. Enter one toxicity value per test: the species, an optional group (fish, insect, alga), and the value. Paste from a spreadsheet or open a CSV, TXT or Excel file. If a species appears more than once, its values are combined by geometric mean, so each species counts once.
  2. Use one kind of endpoint: all chronic EC10 or NOEC values, or all acute LC50 values, in one unit. Mixing them makes the curve meaningless.
  3. Model: log-normal and log-logistic are the two most used shapes. “Average of both” weights them by how well each fits (AICc), which avoids betting on one shape.
  4. Protect (HCp): 5 % is the usual choice. List other levels to report as well.
  5. Limits and bootstrap samples: the limits come from a parametric bootstrap. The tool simulates new data sets from the fitted curve, refits each one and takes the middle 95 % (or 90 %) of the HCp values. The seed is fixed, so the same data always give the same limits; 10,000 samples are steadier but slower.
  6. Fraction affected at: type a concentration, such as a measured level in a river, to get the share of species expected to be affected (the PAF).

What you get

  • HCp with its lower and upper limits. The lower limit is often what a guideline uses when the data are few.
  • A plot of every species at its rank on a log scale, with both fitted curves and the chosen one in bold.
  • A model comparison: centre and spread on the log10 scale, log-likelihood, AICc, weight, and the Anderson–Darling A² (smaller means a closer fit).
  • A species table with each species’ value, number of tests and plotting position, plus CSV, PDF, PNG and Word downloads.

Worked example

The made-up example has 11 species from seven groups. Water flea has two values (12 and 20 µg/L), combined to 15.5 µg/L.

  • Log-normal: centre 1.700 and spread 0.486 (log10 units), giving an HC5 of 7.94 µg/L.
  • Log-logistic: an HC5 of 6.60 µg/L.
  • AICc gives the log-normal 61 % of the weight. The averaged HC5 is 7.43 µg/L, with 95 % limits of 2.2 to 22 µg/L.
  • At 10 µg/L, about 8 % of species are expected to be affected.
  • The HC5 is just below the most sensitive species (mayfly, 8.5 µg/L), so the tool notes that it is an extrapolation.

The wide limits are typical for 11 species. More species, from more groups, narrow them.

Limits of the method

An SSD assumes the tested species are a fair sample of the species you want to protect, which is rarely quite true. The tails of the curve, where the HC5 lies, are an extrapolation, so models that fit the middle equally well can disagree there. Regulators also apply their own rules on top: minimum species numbers and groups, assessment factors, and which endpoints count. Follow the guideline you work under. This tool is for checking and learning, not a replacement for validated software in a regulatory submission.

FAQs

How is this different from the LC50 tool? The LC50 probit analysis finds one species’ LC50 from a single test. The SSD takes such values for many species and finds the concentration that protects most of them.

Why the geometric mean for repeated species? Toxicity values spread on a log scale. The geometric mean is the average on that scale, and it stops a well-studied species from counting many times.

Why do the bootstrap limits change when I change the number of samples? Each setting runs a different number of simulations, so the limits move a little. Within one setting they are fixed.

Is my data uploaded? No. Everything runs in your browser.

Where the numbers come from

  • Species sensitivity distributions: the standard ecological risk assessment method (Kooijman 1987; Van Straalen and Denneman 1989; Aldenberg and Slob 1993). Model averaging by AICc weights (Burnham and Anderson) as in common SSD practice. Method only; no data or tables are copied.
  • Fitting, Anderson–Darling statistic and bootstrap written by fibub. Checked in the tests against SciPy (norm.fit, logistic.fit) and a NumPy parametric bootstrap.
  • The example species, groups and values are made up.

Standard scientific values, such as constants, atomic weights and melting points, are facts found in every textbook; we name where ours were checked. If you are an author or publisher and want a value, a credit or a table changed or removed, tell us and we will act quickly.

Last updated 2026-11-09.

Change log for Species sensitivity distribution

  1. Add #152 species sensitivity distribution (HC5) Details on GitHub

Every change to fibub

Related tools

LC50 probit analysis #151 Find the LC50 or EC50 from a toxicity test where a number of organisms die or respond at each concentration. Fit a probit or logit line by maximum likelihood, correct for deaths in the control, and get LC10, LC50, LC90 or any other level with 95 % fiducial limits, the slope, a goodness-of-fit test and plots. Non-detect statistics #153 Work out the mean, median, upper percentiles and an upper confidence limit for lab results that include non-detects ("<1", "ND"), even with several detection limits. Uses Kaplan–Meier, robust ROS and maximum likelihood instead of substituting half the limit, compares every method side by side, and counts results above a guideline. Water quality index #156 Turn a season of water lab results into one score from 0 to 100 using the CCME water quality index method. Enter the objectives that apply to your water and the results for each sample. See how many variables and tests failed and by how much, the score and its category, and which samples failed. Bioaccumulation factor calculator #159 Work out a kinetic bioconcentration factor from a fish test: fit the uptake rate k1 and depuration rate k2 to your time course and get BCF = k1/k2 with a confidence interval, half-life, time to steady state, steady-state BCF, growth correction and lipid normalisation. Or get the trophic magnification factor of a food web from trophic levels and concentrations. Flood frequency analysis #142 Fit GEV, log-Pearson type III and Gumbel distributions to a record of annual peak flows to estimate the 10-, 100- or any-year flood, with bootstrap ranges, the return period of a given flow, the chance of a flood over a span of years, plotting positions and a Grubbs-Beck outlier screen. Paste or open a file. Dose-response and ELISA curve fitter (4PL) #29 Fit a four-parameter logistic curve to dose-response or ELISA data. Get the EC50 or IC50 with its 95 % interval and the Hill slope, and read unknown samples off the curve. Benchmark dose (BMD) calculator #475 Fit five dose-response models to quantal (yes/no) toxicity data by maximum likelihood, get the benchmark dose at a chosen extra risk and its lower limit (BMDL) by profile likelihood, compare models by AIC and goodness of fit, and plot them. Margin of exposure calculator #476 Work out the margin of exposure for several exposure scenarios: dose from concentration × intake ÷ body weight, MOE = point of departure (NOAEL, LOAEL or BMDL) ÷ dose, compared with a target built from your own uncertainty factors, with a bar chart and the concentration that would just meet the target.