Skip to main content
v2026.11,610 entries · CC-BY 4.0

Analyzing qPCR Data: The Delta-Delta Ct Method, Step by Step

Worked delta-delta Ct arithmetic for qPCR data, the efficiency-corrected Pfaffl variant, and how to tell when the 2^-ΔΔCt shortcut stops being valid.

Ask about Analyzing qPCR Data: The Delta-Delta Ct Method, Step by Step

Answers are drawn from this guide and the rest of the CASRAI corpus, with a link to every source.

Answers are AI-generated from CASRAI’s own published pages and can be wrong, so check the linked sources before relying on one; your question is logged without personal data — never sold, never used to train a third-party model — to show us what CASRAI is missing, so please do not type personal or confidential details. How we use this

Written and maintained by CASRAI Editorial Board

Last updated

The comparative Ct (2-ΔΔCt) method turns three cycle-threshold values into a single fold-change number, and every step in between is arithmetic you can check by hand. This guide works that arithmetic on a full example, then runs the same data through the efficiency-corrected Pfaffl variant so you can see exactly how much the two disagree when target and reference amplification efficiencies are not both sitting at 100%. The short version: 2-ΔΔCt is a special case of a more general model, not a separate method from it, and it stops being a valid shortcut the moment its one hidden assumption — that both assays double their product every single cycle — breaks down.

Normalizing to a reference gene: ΔCt

A raw Ct (or Cq — MIQE 2.0 treats the terms as interchangeable, see the MIQE reporting checklist) cannot be compared across samples on its own, because it is confounded with how much total template went into that well. Pipetting variation, RNA yield differences, and reverse-transcription efficiency (for RT-qPCR) all shift Ct independently of the biology you are trying to measure.

The fix is to normalize each sample’s target-gene Ct against a stably-expressed reference (“housekeeping”) gene run on the same sample:

ΔCt = Ct(target) − Ct(reference)

Because Ct scales logarithmically with starting quantity, this subtraction cancels out the well-to-well loading difference and leaves a number that reflects target abundance relative to the reference, not absolute pipetting luck. Everything downstream depends on the reference gene actually being stable across your experimental conditions — if it isn’t, ΔCt reports the reference’s instability as if it were the target’s biology. Validate any reference gene in your own experimental system rather than inheriting one from a prior paper; algorithms built for exactly this (geNorm, NormFinder, BestKeeper) rank candidate references by stability rather than asking you to eyeball it.

Comparing samples: ΔΔCt and the calibrator

ΔCt alone tells you target-relative-to-reference within one sample. To compare a treatment against a control (or any experimental sample against a calibrator), take a second difference:

ΔΔCt = ΔCt(sample) − ΔCt(calibrator)

The calibrator is whichever sample you are expressing everything relative to — typically an untreated control, a time-zero timepoint, or a wild-type genotype. Its own ΔΔCt is by definition zero, and every other sample’s fold change is reported relative to it. Choose the calibrator once, before you start comparing, and keep it fixed across the whole dataset; switching calibrators partway through a comparison makes fold changes across figures non-comparable.

The 2-ΔΔCt shortcut, worked step by step

Here is a complete worked example with realistic Ct values — a target gene and a reference gene, each run on a control sample and a treated sample:

Sample Target Ct Reference Ct ΔCt (target − reference)
Control (calibrator) 24.0 20.0 4.0
Treatment 21.5 20.2 1.3
  1. ΔCt(control) = 24.0 − 20.0 = 4.0
  2. ΔCt(treatment) = 21.5 − 20.2 = 1.3
  3. ΔΔCt = ΔCt(treatment) − ΔCt(control) = 1.3 − 4.0 = −2.7
  4. Fold change = 2-ΔΔCt = 22.76.5

Read that as: the treated sample expresses the target gene at roughly 6.5× the level of the control, after normalizing both to the reference gene. A negative ΔΔCt always produces a fold change greater than 1 (up-regulation relative to the calibrator); a positive ΔΔCt produces a fraction less than 1 (down-regulation) — if you want a symmetric “-fold down-regulation” figure instead of a fraction, report −1/(2-ΔΔCt) for values below 1, a convention worth stating explicitly wherever you report it, since fractional and negative-fold reporting are easy to conflate silently.

The assumption baked into the “2” — and how to test it

The 2 in 2-ΔΔCt is not a universal constant; it is an amplification efficiency of exactly 2.0 — product doubling every cycle, i.e. 100% PCR efficiency — assumed identically for both the target and the reference assay. That assumption has to be earned, not asserted. The standard way to earn it is the validation experiment: serially dilute a template pool across the range your real samples span, run both assays on every dilution, and plot log10(input amount) against ΔCt (target Ct minus reference Ct) at each point. If the two assays truly share the same efficiency, ΔCt stays flat across the dilution series regardless of input amount, and the regression slope of that plot should sit close to zero — a commonly cited working threshold is an absolute slope under 0.1. A slope meaningfully steeper than that means the two efficiencies diverge enough that ΔCt is not actually input-independent, which is the condition the whole comparative Ct method depends on.

Measuring each assay’s individual efficiency is the same exercise covered in building and validating a qPCR standard curve: efficiency E is derived from the standard curve slope as E = 10-1/slope, where a slope of −3.322 corresponds to E = 2.0 (100%). Run that check for the target assay and the reference assay separately before trusting the shortcut on either.

When the 2-ΔΔCt shortcut is invalid

  • Either assay’s efficiency is outside the acceptable band. The commonly used working range is roughly 90–110% (E of about 1.9 to 2.1) — further out than that, treating both as E=2 introduces real, compounding error.
  • Target and reference efficiencies are individually acceptable but unequal to each other. This is the failure mode the ΔΔCt validation-slope check exists to catch, and it is easy to miss if you only look at each assay’s own standard curve in isolation rather than the two together.
  • The reference gene itself is not stable across your experimental conditions. No efficiency correction fixes a reference that is biologically responding to your treatment — that is a reference-selection problem, not an arithmetic one.
  • Non-specific amplification or primer-dimer is inflating Ct in a way that is not uniform across the dilution series used to measure efficiency. Confirm assay specificity first — see reading a melt curve — before trusting an efficiency number derived from a possibly non-specific reaction.

In any of these cases, the fix is not to abandon relative quantification — it is to stop assuming E=2 for both assays and instead put the measured, assay-specific efficiencies into the calculation directly. That is exactly what the Pfaffl method does.

The Pfaffl model: efficiency-corrected relative quantification

Pfaffl’s efficiency-corrected model (Pfaffl MW, “A new mathematical model for relative quantification in real-time RT-PCR,” Nucleic Acids Research 2001;29(9):e45) replaces the fixed base of 2 with each assay’s own measured efficiency, and drops the assumption that target and reference efficiencies have to match:

Ratio = EtargetΔCttarget(control−sample) ÷ ErefΔCtref(control−sample)

Here Etarget and Eref are each assay’s measured efficiency (2.0 = 100%, from its own standard curve slope), and each ΔCt is calculated within one gene — control Ct minus sample Ct — rather than between genes the way the comparative method’s ΔCt is. The target and reference ratios are then computed independently and divided, which is exactly the step the simple 2-ΔΔCt shortcut skips by assuming both denominators are the same fixed base.

The formula in Livak and Schmittgen’s original comparative Ct paper (Livak KJ, Schmittgen TD, “Analysis of Relative Gene Expression Data Using Real-Time Quantitative PCR and the 2-ΔΔCT Method,” Methods 2001;25(4):402–408) is the special case of Pfaffl’s general model where Etarget = Eref = 2.0 exactly — which is why the two are best understood as one model with an optional simplification, not two competing methods to choose between on preference.

Same experiment, efficiency-corrected — a worked comparison

Take the same raw Ct values from the worked example above, but suppose the validation experiment found the two assays are not both at exactly 100% efficiency: the target assay measures E = 1.92 (92%, standard curve slope ≈ −3.53) and the reference assay measures E = 1.98 (98%, slope ≈ −3.37) — both individually inside the 90–110% band, but not equal to each other.

  1. ΔCttarget(control−sample) = 24.0 − 21.5 = 2.5
  2. ΔCtref(control−sample) = 20.0 − 20.2 = −0.2
  3. Target ratio = 1.922.55.11
  4. Reference ratio = 1.98-0.20.87
  5. Corrected ratio = 5.11 ÷ 0.87 ≈ 5.9-fold

Compare that to the uncorrected 2-ΔΔCt result on the identical raw Ct values: 6.5-fold. On this example the uncorrected shortcut overstates the real fold change by roughly 11% — from efficiencies that individually look fine on their own standard curves and would pass a casual glance. The gap is not dramatic here because both efficiencies are still fairly close to 100%; it widens as either efficiency drifts further out of range, or as the magnitude of ΔΔCt itself grows, since the error compounds exponentially with the number of cycles being extrapolated across.

Choosing between the two methods

Situation Use
Validation experiment confirms ΔCt is flat across a dilution series (slope near zero) and both assays sit close to 100% efficiency 2-ΔΔCt — simpler, and the correction would change little
Efficiencies measured and unequal, or either outside roughly 90–110%, but assays are otherwise clean and specific Pfaffl efficiency-corrected model, using each assay’s own measured E
Efficiency has not been measured at all Neither — measure it first (see the standard curve guide above) before reporting a fold change either way
Reference gene stability itself is in question Neither correction helps — revalidate the reference gene, ideally against more than one candidate, before proceeding

Several qPCR analysis packages (qbase+, GenEx, and others in wide lab use) automate the efficiency-corrected calculation and add features the manual arithmetic above does not, such as geometric averaging across multiple reference genes and confidence-interval estimation. They implement the same underlying model described above; running the numbers by hand once, on your own data, is still the fastest way to confirm the software is doing what you think it is doing.

Reporting the analysis

MIQE 2.0’s unified reporting checklist includes a dedicated data-analysis section, and several of its items map directly onto the choices above: which quantification model was used (comparative Ct vs. an efficiency-corrected model), the measured PCR efficiency for each assay, how the reference gene(s) were selected and validated, and the calibrator/normalization strategy. Stating the model by name and the efficiencies it assumed — rather than a bare fold-change table — is what lets a reader independently judge whether 2-ΔΔCt was actually appropriate for that dataset, instead of trusting that it was.

Frequently asked questions

What’s the difference between Ct and Cq in this context?

None mathematically — MIQE 2.0 treats Ct (cycle threshold) and Cq (quantification cycle) as interchangeable terms for the same value, with Cq preferred as the more instrument-neutral term. Every calculation on this page works identically under either name.

Can I use more than one reference gene in a ΔΔCt calculation?

Yes, and it is generally better practice than a single reference — use the geometric mean of two or more validated reference Ct values in place of a single reference Ct before computing ΔCt. A single reference gene assumes that one gene is stable across every condition in your experiment, which is exactly the assumption that most often turns out to be wrong.

Does the ΔΔCt method give an absolute copy number, or only a relative value?

Relative only — the output is a fold change versus your chosen calibrator, not a copy number or concentration. Absolute quantification requires a standard curve of known-concentration standards, covered in the standard curve guide linked above.

My calibrator is a pool of biological replicates, not one sample — does that change the math?

No, the arithmetic is identical; a pooled calibrator just means its Ct values represent the pool rather than a single specimen. What it does change is interpretation: a pooled calibrator averages out biological variability, so treat fold changes against it as relative to the pool’s central tendency, not to any individual control specimen.

How much does the correction matter if my efficiencies are both around 95%?

Less than it does further from 100%, but it is rarely exactly zero — two assays both individually “acceptable” at 95% can still differ enough from each other, and from the assumed 2.0, to shift a reported fold change by several percent, more as ΔΔCt grows larger. Running the corrected calculation once on real efficiencies, rather than assuming the difference is negligible, is the only way to know for a specific dataset.

Follow CASRAI

Research-administration guidance, standards updates and independent tool reviews.

Referenced across the research world

University of Cambridge logoColumbia University logoCrossref logoUniversity of Edinburgh logoHarvard University logoUniversity of Oxford logoPrinceton University logoStanford School of Medicine logoUniversity College London logoORCID logoUniversity of Cambridge logoColumbia University logoCrossref logoUniversity of Edinburgh logoHarvard University logoUniversity of Oxford logoPrinceton University logoStanford School of Medicine logoUniversity College London logoORCID logo
  • University of Cambridge logo
  • Columbia University logo
  • Crossref logo
  • University of Edinburgh logo
  • Harvard University logo
  • University of Oxford logo
  • Princeton University logo
  • Stanford School of Medicine logo
  • University College London logo
  • ORCID logo

View CASRAI adoption →

Regulatory Radar

Stop finding out after the fact

$29/month, cancel anytime. Daily digest updates from our analysis, a dashboard holding the same items, and a cited assistant for everything they raise.

  • Federal Register, Federal Register+, Grants.gov, Regulations.gov, NSF News, UKRI, plus CASRAI’s own published content.
  • 44,322 indexed passages, and every answer cites the ones it drew on.