IC50 vs EC50: How to Calculate Them From a Dose-Response Curve
By Dr. Zubair Khalid, DVM, MS, PhD ·

IC50 and EC50 are the two numbers you will report most often from a concentration-response experiment. Both describe the midpoint of a sigmoidal curve, and both are measures of potency: how much compound you need to produce a given effect. The difference is the direction of the response. IC50 comes from an inhibition curve, EC50 from an activation curve.
You will meet these values in drug screening, enzyme kinetics, receptor binding, cell viability assays and clinical pharmacology. Reviewers will ask for them, software will spit them out, and the same dataset can produce different numbers depending on which definition you used. This guide covers what each parameter means, how to fit a four-parameter logistic model, how to report the result honestly, and where the common confusions (ED50, Ki, absolute versus relative values) come from.
Quick Answer
- IC50 is the concentration of a substance that produces 50% inhibition, used for antagonists and inhibitors in binding or functional assays [1].
- EC50 is the concentration that produces 50% of that compound's maximal response, used for agonists and stimulators [1].
- Both are midpoints of a concentration-response curve and both measure potency, not efficacy. A potent compound needs little material to reach half its effect; an efficacious one produces a large maximal effect.
- The standard model is the four-parameter logistic (4PL):
$$y = \text{bottom} + \frac{\text{top} - \text{bottom}}{1 + (x / \text{IC50})^{h}}$$
where $y$ is the response (often percent activity), $x$ is concentration, top and bottom are the plateaus, and $h$ is the Hill slope [1].
- The relative IC50 sits halfway between the fitted top and bottom; the absolute IC50 sits at exactly 50% response [1][6]. The relative value is recommended for most assays [1].
- Report IC50 in molar units (nM, µM) and state whether it is relative or absolute, what the Hill slope was, and whether the value was interpolated or extrapolated.
What IC50 and EC50 Actually Mean
Start with the shape of the data. Plot response against concentration and you usually get a sigmoid: flat at low concentrations, a steep transition, then flat again at high concentrations. The plateaus are the asymptotes. The midpoint of the transition is the IC50 or EC50, depending on whether the curve falls or rises.
For an inhibitor, the curve falls as concentration increases. The IC50 is the concentration at which activity is half of what it would be without the compound. For an agonist, the curve rises, and the EC50 is the concentration at which the response is half of the compound's own maximum.
Two things follow from this. First, the number is only meaningful in the context of the assay that produced it. Change the substrate concentration, the cell line, the incubation time or the readout, and the IC50 moves. Second, the number says nothing about how strong the maximal effect is. A compound with an EC50 of 1 nM that only reaches 40% of a full agonist's response is potent but not efficacious. Potency and efficacy are separate properties, and the midpoint parameter captures only the first.
The curve is usually plotted with concentration on a log axis. That is not cosmetic. The 4PL is symmetric and sigmoidal in log concentration, so a log axis turns the transition into a straight-ish line and spreads the points evenly. Half-log steps (about 3.16-fold) are a common choice for that reason [2].
How to Calculate IC50 From a Dose-Response Curve
The workflow has four steps: normalize, fit, check, report.
Normalize the response. Convert raw signal to percent activity relative to controls, typically 0% and 100%. Normalization makes curves comparable across plates and experiments, and it defines what "50%" means.
Fit the 4PL. The model above has four parameters: top plateau, bottom plateau, midpoint and Hill slope. The midpoint parameter is the relative IC50, the concentration giving a response halfway between the estimated plateaus [6]. Fit it by nonlinear least squares. If one asymptote is poorly defined by the data, you can fix the bottom (3PLFB) or the top (3PLFT) to improve the fit [1]. Fixing both plateaus to 0 and 100 gives a two-parameter fit, which is common when controls are clean.
Check the fit against the data. There should be at least one tested concentration on each side of the reported IC50 [1]. If the value falls outside the tested range, report it as extrapolated, or as "<Xmin" or ">Xmax" [1]. Sebaugh's reporting rules are stricter: report a relative IC50 only if there are at least two concentrations beyond each bend point, and an absolute IC50 only if at least two concentrations have predicted responses below 50% and two above [6].
Report with uncertainty. Compute the confidence interval on log IC50, where it is symmetric, then back-transform. The result is asymmetric in nM, which is correct and expected.
A practical note on study design: the Assay Guidance Manual recommends a minimum of 8 concentrations at half-log intervals, and more concentrations (up to 12) are better than more replicates [2]. That matters more than most people expect, because the precision of the midpoint depends on how well the transition is sampled.
If you want to run the fit without writing code, try the site's IC50 Calculator.
Relative vs Absolute IC50
These two definitions are the source of a lot of quiet disagreement in the literature.
The relative IC50 is the concentration giving a response halfway between the fitted top and bottom [1]. It is a property of the curve itself. The absolute IC50 is the concentration giving exactly a 50% response [1]. Sebaugh ties the absolute value to the 50% control, the mean of the 0% and 100% assay controls [6]. When data are normalized to controls, the two definitions converge.
They diverge when the plateaus are not at 0% and 100%. Suppose an inhibitor only suppresses activity to 30% at saturating concentrations. The relative IC50 sits at the midpoint between 100% and 30%, which is 65% activity. The absolute IC50 sits at 50% activity, which is further along the curve. Those are different concentrations, and reporting one while implying the other is misleading.
Which should you use? The relative IC50 is recommended for most assays [1]. Sebaugh's decision rules are specific: assays with no stable 100% control must use the relative value, and so must assays with a stable 100% control but more than 5% error in the 50% control mean. Only assays with an accurate, stable 100% control and less than 5% error in the 50% control mean may gain anything from the absolute value [6]. In practice, most screening data fall into the first group.
Worked Example
Eight concentrations of an enzyme inhibitor, roughly half-log spaced, with percent activity remaining:
| Concentration (nM) | % activity |
|---|---|
| 1 | 98.5 |
| 3 | 96.1 |
| 10 | 88.4 |
| 30 | 70.2 |
| 100 | 42.5 |
| 300 | 18.9 |
| 1000 | 7.6 |
| 3000 | 3.1 |
Fitting the 4PL with scipy.optimize.curve_fit (starting values bottom 0, top 100, IC50 50, h 1) gives bottom = 1.04% (SE 0.65), top = 99.88% (SE 0.56), IC50 = 70.79 nM (SE 1.79) and Hill slope h = 1.019 (SE 0.026).
Refitting with log10 IC50 as the parameter gives log10 IC50 = 1.8500 (SE 0.0110). With 4 residual degrees of freedom, t(0.975, 4) = 2.776, so the 95% CI for log10 IC50 is 1.8194 to 1.8805. Back-transformed, the IC50 is 70.8 nM with a 95% CI of 65.98 to 75.95 nM. The Hill slope 95% CI is 0.947 to 1.090. Residual SD is 0.588 and R² = 0.99988.
The pIC50 is 9 - 1.850 = 7.15.
The fitted midpoint response is (1.04 + 99.88)/2 = 50.46%, so the relative IC50 (70.8 nM) and the absolute IC50 (the concentration at exactly 50% activity, solved numerically) at 72.1 nM nearly coincide. That happens because the fitted plateaus sit close to 0% and 100%. A constrained fit with top = 100 and bottom = 0 gives IC50 = 72.7 nM and h = 0.995.
Converting to Ki with the Cheng-Prusoff relation for a competitive inhibitor: if the assay used [S] = Km, then Ki = 70.8 / (1 + 1) = 35.4 nM. If [S] = 3 Km, then Ki = 70.8 / 4 = 17.7 nM.
Check the design against guidance: 8 concentrations meets the AGM minimum, there are points on both sides of the IC50, and there are at least two concentrations beyond each bend point (1 and 3 nM above, 1000 and 3000 nM below) [1][2][6].
IC50 vs EC50 vs ED50 vs Ki
These four get mixed up constantly. They answer different questions.
| Parameter | Curve type | What it describes | Units |
|---|---|---|---|
| IC50 | Decreasing | Concentration giving 50% inhibition | Concentration |
| EC50 | Increasing | Concentration giving 50% of maximal response | Concentration |
| ED50 | Quantal | Dose producing a specific effect in 50% of a population | Dose |
| Ki | Binding or enzyme | Thermodynamic inhibition constant | Concentration |
The IC50 and EC50 distinction is purely about direction: inhibition versus activation [1]. Both come from graded dose-response curves, which answer "how much?" as concentration changes.
ED50 is different in kind. It comes from quantal (all-or-none) data, where each subject either responds or does not, and it answers "yes or no?" across a population [9]. The ED50 is the dose producing a specific effect in 50% of the population that received it [9]. That is why ED50 appears in therapeutic index calculations: TI = TD50 / ED50, or LD50 / ED50 in preclinical work [9]. An EC50 from a cell assay and an ED50 from a clinical trial are not interchangeable.
Ki is a thermodynamic constant for the inhibitor, while IC50 depends on assay conditions [8]. The Cheng-Prusoff relationship converts one to the other. For a competitive enzyme inhibitor:
$$K_i = \frac{\text{IC50}}{1 + [S]/K_m}$$
where [S] is substrate concentration and Km is the substrate's Michaelis constant [8]. The relationship assumes no cooperativity [8]. For competition binding assays, the analogous form is:
$$K_i = \frac{\text{IC50}}{1 + [L]/K_d}$$
where [L] is radioligand concentration and Kd is the radioligand dissociation constant, valid when the Hill slope is near unity [3].
The practical consequence is that IC50 is not a fixed property of a compound. At [S] = Km, a competitive inhibitor's IC50 is 2 x Ki. At [S] = 3 Km, it is 4 x Ki. Increased substrate conversion and increased substrate concentrations both raise the IC50 for a given inhibitor [4]. If you want to compare inhibitors across labs, compare Ki, or at least state the substrate conditions.
Common Mistakes
- Reporting an IC50 with no points on both sides of it. The fit will happily extrapolate, but the number is not supported by the data. Report it as extrapolated or as a bound [1].
- Confusing relative and absolute IC50. They agree only when the plateaus sit at 0% and 100%. State which one you used [1][6].
- Treating IC50 as a constant. It shifts with substrate concentration, incubation time and readout. The Cheng-Prusoff correction exists precisely because IC50 is condition-dependent [8].
- Applying Cheng-Prusoff outside its assumptions. It assumes mass-action binding to a single class of sites, no ligand depletion, receptor concentration below Kd, and equilibrium. It overestimates Ki when more than 10% of the tracer is bound [3].
- Ignoring the Hill slope sign convention. A positive slope in the 4PL form above gives a falling curve; some software writes the same model with a negative Hill slope for inhibition. State the convention, or the equation is ambiguous.
- Comparing potencies on the linear scale. Potencies are compared on the log scale using ratios and geometric means. The minimum significant ratio (MSR) is the smallest potency ratio between two compounds that is statistically significant, and the validation acceptance criterion is MSR < 3 [2].
- Using too few concentrations. Eight half-log concentrations is the minimum; up to 12 is better than more replicates [2].
- Reporting an IC50 without units or with the wrong ones. nM and µM differ by 1000-fold. pIC50 = -log10(IC50 in mol/L), so an IC50 of 70.8 nM gives pIC50 7.15.
Limitations
The 4PL assumes a symmetric sigmoid in log concentration. Real data sometimes are not symmetric, and a five-parameter logistic may fit better. This guide covers only the 4PL.
The Cheng-Prusoff enzyme form shown above applies to competitive inhibition. Noncompetitive and uncompetitive inhibitors have different relationships, and those were not covered in the sources used here. Check a current pharmacology reference before applying the equation to another mechanism.
The worked example uses synthetic data chosen to follow a near-ideal curve, so the fit is unusually tight. Real plate data will have more scatter, wider confidence intervals, and plateaus that do not sit neatly at 0% and 100%.
Definitions of "absolute IC50" differ slightly between sources. The Assay Guidance Manual describes it as the concentration giving exactly 50% response; Sebaugh ties it to the 50% control, the mean of the 0% and 100% controls [1][6]. They agree when data are normalized to controls, which is the usual case.
Hill slope sign conventions vary across software packages. Always check the documentation for the version you are using before copying an equation into a methods section.
Frequently Asked Questions
What is IC50 in simple terms?
IC50 is the concentration of a substance that produces 50% inhibition in a functional or binding assay [1]. It is the midpoint of a falling concentration-response curve. It measures how much compound you need to cut the signal in half, not how completely the compound can suppress the signal.
What is EC50 and how does it differ from IC50?
EC50 is the concentration giving 50% of a compound's maximal response, used for agonists and stimulators [1]. IC50 comes from a decreasing curve and EC50 from an increasing one. Both are midpoint potency measures, and both are reported in concentration units.
How do I calculate IC50 from a dose-response curve?
Normalize the response to percent activity, fit the four-parameter logistic model by nonlinear least squares, and read the midpoint parameter [1]. Confirm that at least one tested concentration lies on each side of the value [1]. Compute the confidence interval on log IC50 and back-transform it.
What is the difference between EC50 and ED50?
EC50 comes from a graded dose-response curve and describes the concentration giving half of a maximal response in a single system. ED50 comes from quantal data and describes the dose producing a specific effect in 50% of a treated population [9]. ED50 feeds into therapeutic index calculations as TI = TD50 / ED50 [9].
How does IC50 relate to Ki?
Ki is a thermodynamic constant for the inhibitor, while IC50 depends on the assay conditions [8]. For a competitive inhibitor, Ki = IC50 / (1 + [S]/Km), where [S] is substrate concentration and Km is the Michaelis constant [8]. At [S] = Km the IC50 is twice the Ki, and at [S] = 3 Km it is four times the Ki.
References
- NCBI Assay Guidance Manual: Assay Operations for SAR Support
- NCBI Assay Guidance Manual: HTS Assay Validation
- NCBI Assay Guidance Manual: Receptor Binding Assays for HTS and Drug Discovery
- NCBI Assay Guidance Manual: Basics of Enzymatic Assays for HTS
- NCBI Assay Guidance Manual: Mechanism of Action Assays for Enzymes
- Sebaugh 2011, Guidelines for accurate EC50/IC50 estimation, Pharm Stat 10:128-134
- Cheng & Prusoff 1973, Relationship between the inhibition constant (KI) and the concentration of inhibitor which causes 50 per cent inhibition (I50), Biochem Pharmacol 22:3099-310890196-2)
- Canadian Society of Pharmacology and Therapeutics: Cheng-Prusoff equation
- StatPearls: ED50 (Kenny, Preuss, McPhee)
Related Articles
- Designing Dose-Response Studies in Veterinary Pharmacology
- Michaelis-Menten Enzyme Kinetics For Experimental Data
- MTT Assay for Cell Viability: Principles and Protocol
- Dissociation Constant (Kd): What It Means and How to Measure Binding Affinity
- Standard Deviation vs Variance vs Standard Error: What Each Measures and When to Report It