Upload a CSV, map a dose column and a response column, and get a four-parameter logistic fit — EC50 or IC50 with a confidence interval, both plateaus, the Hill slope, the curve drawn over your points, and residual diagnostics. Works just as well on concentration against signal as on spend against conversions. Free.
Free analyses run on up to 10,000 rows. Larger files are randomly sampled to that size — sign up to analyze your full dataset.
Fitting the dose-response curve and estimating the EC50...
Sent to — The fitted 4PL curve over your points, EC50/IC50 with a confidence interval, all four parameters, model comparison against simpler fits, residual diagnostics, R code, and AI insights.
Analyze another fileA four-parameter logistic curve is fitted by ordinary nonlinear least squares (base R nls) on log10 dose: response = low plateau + (high plateau - low plateau) / (1 + 10^((log10(EC50) - log10(dose)) x hill)). Starting values are derived from the data — the plateaus from the mean response at the lowest and highest tested dose levels, and the Hill slope and midpoint from a least-squares line through the logit-transformed normalised response — because nls fails loudly on poor starts. Each parameter carries a Wald 95% interval; the midpoint is estimated on the log scale and back-transformed so its interval is correctly asymmetric. A baseline-constrained 3PL and a log-linear model are fitted alongside and compared on AIC, with a nested F test for the 4PL against the 3PL. Residual diagnostics include a pure-error lack-of-fit test wherever replicate doses exist. With a grouping column, each group gets its own curve and an extra-sum-of-squares F test compares separate midpoints against a shared one.
Use it whenever a response is expected to saturate rather than grow without limit, and you need the half-maximal point: concentration-response assays, drug potency, marketing spend against conversions, exposure or contact frequency against uptake, intensity against effect.
Not for a response that keeps climbing with no ceiling in sight (there is no plateau to estimate, and the fit will be refused), not for a bell-shaped or hormetic response that reverses at high dose, not for time-series trends (use a trend or forecasting tool), and not for a response with fewer than four distinct dose levels — four parameters cannot be determined from three points.
Built for: Lab scientists, pharmacologists, assay developers and biostatisticians on one side; growth marketers, media planners, and operations analysts asking where returns saturate on the other
Typical data source: Any spreadsheet or CSV with a dose, concentration, spend, or exposure column and a measured response column — plate readings, assay results, campaign spend against conversions, exposure against uptake
One dose and one response per row, ideally with replicates at each dose level. A zero-dose control row is optional but useful. For example, an assay plate:
Minimum 12 rows · Best with 6-12 dose levels with 3 or more replicates each, spanning both plateaus
Standard-library analysis: how does response change with dose or intensity? Map a dose column and a response column and get a four-parameter logistic (4PL) curve fitted by nonlinear least squares — the low-dose plateau, the high-dose plateau, the Hill slope, and the EC50 (or IC50 when the response falls) as the headline, each with a 95% confidence interval. The fitted curve is drawn over the observed points on a properly handled log-dose axis with zero-dose controls shown separately, backed by residual diagnostics including a replicate-based lack-of-fit test, and compared against a baseline-constrained 3PL and a plain log-linear model so a sparse design is not locked into an over-parameterised curve. If the curve cannot be fitted, the analysis says so with a diagnosis instead of substituting a straight line.
The fitted 4PL drawn over your observed points on a log-dose axis, with the EC50 marked and zero-dose controls shown separately.
The four fitted parameters with 95% confidence intervals, and which of them are observed rather than projected.
Whether your data actually support four parameters, checked against a constrained 3PL and a plain log-linear model.
One curve per group with a formal test of whether their EC50s genuinely differ.
Residuals against fitted values plus a replicate-based lack-of-fit test — the check the fit statistics cannot do for you.
The full equation, how the starting values were derived, what the intervals assume, and the rule that a failed fit is reported rather than replaced by a line.
Plain-English interpretation — what the numbers mean, what's significant, and what to do next.
What concentration gives half the effect?
Map your concentration column and your readout column. You get the four-parameter logistic curve with the EC50 or IC50 as the headline, each parameter with a confidence interval, the fitted curve over your points on a log-dose axis, and residual diagnostics — including a lack-of-fit test against your own replicates.
See our FAQ for details on pricing, data privacy, and how the analysis works. Every report includes a Methodology section showing the statistical test, assumptions checked, and diagnostics run.
Run any analysis on your own data — validated R analyses, interactive reports, AI insights, and PDF export.
Try Free — No Credit CardTell us what went wrong, in your own words. We capture the page you're on automatically, so no need to describe where you are.