Colony counts → CFU/mL, in a single self-contained HTML file.
Live: https://mbaffour.github.io/cfu-calculator/
- Quick table (the default): one row per sample — name, colonies, dilution (any factor, any step), volume plated, CFU/mL.
Enterin a colonies box adds the next row and focuses it, so a plating series types straight down the column. New rows inherit the previous row's dilution and volume. - Replicates & stats is one chip away, for several plates per sample. A sample with multiple replicates shows its mean in the quick table with its inputs locked, so the two views can never disagree about the same data.
- Per-sample mean ± SD and CV% across countable replicates.
- Counts outside the countable window (30–300 per plate, 3–30 per spot) are flagged; mark a plate TNTC or Excl to drop it from the stats.
- All-zero samples report a detection limit (
< 1 colony at the least-diluted plate) instead of a bogus mean. - Export a real .xlsx workbook (Raw counts + Summary sheets, numbers stay numeric) or CSV — no libraries, the OOXML writer is built in.
- Zero dependencies, no network, autosaves to your browser's local storage. Works from
file://.
CFU/mL = colonies × dilution factorstep ÷ volume plated (mL).
Also available as the CFU Counts module inside Dilution Designer, where counts can be captured into the lab notebook and included in workspace backups.