Home / Science / Health and medicine / Pharmacology / Dose-response and ELISA curve fitter (4PL)Tool #29

IC50 and EC50 calculator: 4PL dose-response and ELISA standard curve fitter

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.

Keep it one tap away for everyday use.

Bookmark Dose-response and ELISA curve fitter (4PL)?

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

  1. Paste data
  2. 4PL fit
  3. EC50 / IC50
  4. Report
Nothing is uploadedWorks offline once open

Data

Fix the bottom at 0 or the top at 100 only when your data is normalised (per cent of control) and the curve does not reach that level on its own. Weight by 1/Y² when the scatter grows with the signal, as in many ELISAs.

Download

What it does

Many biological responses follow an S-shaped curve against the log of the dose. Examples include enzyme inhibition, cell viability, receptor binding, herbicide or antibiotic response, and ELISA signal against antigen concentration. The standard model for this curve is the four-parameter logistic (4PL). Labs usually fit it with paid software. This page fits it for free in your browser, gives the same numbers as the standard packages, and reads unknown ELISA samples off the curve.

How to use it

  1. Paste your data: the dose or concentration in the first column, then one or more response columns (replicates). Copy them straight from your plate reader export or spreadsheet. Blank cells are skipped, and a header row is fine. Doses of zero (controls) are used in the fit.
  2. Name your dose unit and response so the plot and report are labelled.
  3. Leave Bottom and Top to be fitted, unless your data is normalised to per cent of control and the curve does not reach 0 or 100 on its own.
  4. Choose 1/Y² weighting when the scatter is proportional to the signal, as in many ELISAs. Otherwise use no weighting.
  5. For an ELISA, paste each sample’s absorbance on its own line (replicates on the same line) and add the dilution factor. Each sample’s concentration is read off the fitted curve.

The model and the results

The curve is y = Bottom + (Top − Bottom) / (1 + (EC50 / x)^Hill), the same form as GraphPad Prism’s “log(agonist) vs. response, variable slope”. A positive Hill slope means the response rises with dose, and the midpoint is the EC50. A negative slope means it falls, and the midpoint is the IC50. A slope near ±1 is a simple one-site response. A steeper slope suggests cooperativity.

The fit uses the Levenberg-Marquardt method on log10(EC50). The 95 % interval of the EC50 is symmetric on the log scale, as the standard packages report it. Standard errors come from the fit’s covariance matrix. If the EC50 falls outside your doses, the page warns you, because the curve is then guessed beyond your data.

Worked example

The sample data is the ryegrass dataset (Inderjit, Streibig and Olofsdotter, 2002) that comes with the R package drc. Root length falls as the herbicide dose rises. The fit gives IC50 = 3.06 mM (95 % interval 2.69 to 3.47), Hill slope −2.98, top 7.79 cm and bottom 0.48 cm. These match drc’s published LL.4 fit (e = 3.058, b = 2.982, d = 7.793, c = 0.481) and SciPy’s curve_fit, to every digit shown.

Frequently asked questions

Why not a straight line? A sigmoid response is linear only around its middle. Fitting a line to the whole curve gives wrong results at both ends. For assays that really are linear, use the calibration curve tool.

Why is a sample flagged “outside the curve”? Its response is beyond the fitted top or bottom, so no concentration gives that signal. Dilute the sample and rerun it.

Is my data uploaded? No. Fitting happens in your browser, nothing is sent anywhere, and the page keeps working offline.

Where the numbers come from

  • Model: the four-parameter logistic curve, as in standard pharmacology software.

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-08.

Change log for Dose-response and ELISA curve fitter (4PL)

  1. Show where each science tool's numbers come from, with a removal-request link Details on GitHub
  2. Open a file on every science paste box, with stated limits Details on GitHub
  3. Add five science tools: uncertainty, graph digitiser, plot maker, calibration curve, dose-response Details on GitHub

Every change to fibub

Related tools

Enzyme kinetics fitter #112 Paste substrate concentrations and initial rates, with or without an inhibitor, and fit Michaelis–Menten, substrate inhibition, Hill, or competitive, uncompetitive, non-competitive and mixed inhibition by non-linear least squares. Get Km, Vmax, Ki, kcat and kcat/Km with errors, a model comparison by AICc, and the Lineweaver–Burk, Eadie–Hofstee and Hanes–Woolf values side by side. Binding curve fitter #114 Paste ligand concentrations with total and non-specific binding, or a titration signal, and fit one site, one site with non-specific binding, two sites, Hill or tight binding with ligand depletion. Get Kd, Bmax and the Hill coefficient with errors, a model comparison by AICc, the Scatchard plot and an IC50 to Ki converter. Calibration curve with LOD and LOQ #28 Paste your standards and get the calibration line, R², limits of detection and quantitation (ICH Q2), and the concentration of each unknown with a 95 % interval. Graph digitiser #26 Open a picture or screenshot of a graph, mark the axes, then click the points or let it trace a curve by colour. Get the numbers as a table to copy or download. The image never leaves your device. Plate layout designer #35 Lay out standards, samples, controls and blanks with replicates on any plate from 6 to 1536 wells. Keep the edge wells empty, then print the map or export a well list for your plate reader or liquid handler. Sample size and power calculator #32 How many subjects, samples or survey responses do you need? Sample size for comparing two means, paired data, two proportions, or a survey's margin of error, with power curves. Matches R and G*Power. Uncertainty propagation calculator #25 Type your formula and your measurements with their uncertainties, or paste repeated readings. Get the result with its uncertainty, which input matters most, and a Monte Carlo check. Publication plot maker #27 Paste columns or open a CSV or Excel file and get a clean scientific figure with error bars, sized for a journal column. Download vector SVG or PDF, or PNG at 300 or 600 dpi. Your data stays in your browser.