Blog
Back to Blog

Your qPCR Efficiency Is 90-110% But Results Still Look Wrong — Here's Why

A standard curve with 98% efficiency and an R² of 0.998 feels like a green light. It's not. Efficiency between 90-110% tells you that your primers can double the amplicon each cycle under the conditions of your standard curve — usually a serial dilution of a single, clean template. It says nothing about what happens when those primers meet your actual cDNA samples, with all their complexity, inhibitors, and variable RNA quality. Passing efficiency is necessary but nowhere near sufficient.

If your efficiency looks fine but your fold changes don't match your Western blots, your NTC controls are creeping in, or your biological replicates are all over the place, the problem is almost certainly one of the issues below. Most of them are invisible on a standard curve plate.

Your Standard Curve and Your Samples Live in Different Worlds

This is the most common reason for the disconnect, and it's underappreciated. A standard curve built from a plasmid dilution series, a gBlock, or even pooled cDNA diluted in water is a best-case scenario for your primers. The template is pure, the buffer background is consistent across dilution points, and there's nothing competing for primer binding.

Your actual cDNA samples are a different environment. They contain:

A practical check: run your actual cDNA samples in a dilution series (say, neat, 1:4, 1:16, 1:64) and calculate the efficiency within those samples. If you get 75% efficiency in-sample but 98% from your plasmid curve, you have matrix effects — probably inhibition. This is especially common with RNA from tissues rich in polysaccharides (plant, liver) or heavily crosslinked samples (FFPE).

Reference Gene Problems That Efficiency Can't Catch

Your standard curve for GAPDH looks perfect. Your standard curve for your GOI looks perfect. Both efficiencies are ~100%. And yet the ΔΔCt results are nonsensical — a treatment that clearly induces your protein of interest shows no change or even downregulation at the mRNA level.

The most likely culprit: your reference gene isn't stable across your experimental conditions.

This happens constantly with the "classic" reference genes. GAPDH is upregulated by hypoxia, by high-glucose conditions, and in many cancers. ACTB shifts with mechanical stress, cell density, and between tissue types. 18S rRNA is so abundant (Ct values of 8-12) that it's in a completely different dynamic range than most GOIs, and it isn't polyadenylated, so it behaves differently depending on your RT priming strategy.

The fix isn't just picking a different single reference gene — it's validating stability empirically. Use at least 3-4 candidates and run them across your experimental conditions. The geNorm algorithm (Vandesompele et al., 2002) or NormFinder (Andersen et al., 2004) will rank them by expression stability. In my experience, HPRT1, TBP, and YWHAZ tend to be more stable than GAPDH or ACTB in many cell culture contexts, but this is not universal. You have to check.

A quick diagnostic: look at the raw Ct values for your reference gene across all your samples. If the spread is more than 1 Ct between your experimental groups, that reference gene is not stable enough for ΔΔCt, period. Even 0.5 Ct of systematic shift in your reference gene translates to a ~1.4-fold artifact in your normalized data, which can easily mask or invent a biological effect.

Melt Curves That Pass at a Glance But Shouldn't

On a CFX96 or QuantStudio, the default melt curve view shows nice single peaks and you move on. But zoom in. Common problems that coexist with good efficiency:

Primer dimers at high Ct. Your standard curve points are at Ct 15-30, well above the noise floor, and show a single clean product. But your low-expression samples come in at Ct 32-35, and at that amplification level, a primer-dimer (typically melting 5-10°C below your main product) contributes enough fluorescence to pull your Ct earlier than it should be. The standard curve never revealed this because none of the dilution points were that dilute.

Melt curve shoulders. A single peak with an asymmetric shoulder usually means a secondary product with a Tm within 1-2°C of the main amplicon. This won't split into two visible peaks but it does inflate your SYBR signal. Run the product on a 2-3% agarose gel or, better, a Bioanalyzer/TapeStation. If you see a doublet or a smear, redesign the primers or increase the annealing temperature by 2-3°C increments.

Splice variant amplification. Your primers span an exon junction but also pick up an alternative transcript at a slightly different size. Both are "real" products. The melt curve may or may not resolve them. This is a biology problem, not a technical one — but it means your quantification is a composite of multiple isoforms. If you need isoform-specific quantification, you'll need primers unique to the specific junction or UTR.

Pipetting Errors Are More Impactful Than You Think

Nobody wants to hear this, but at the volumes used in qPCR (typically 10-20 µL reactions), even small pipetting inconsistencies create real variance. A 0.5 µL error on a 2 µL template addition is a 25% volume difference, which translates to ~0.3-0.4 Ct. Across triplicate technical replicates, this can give you a replicate spread of 0.5-1.0 Ct that looks like biological noise but is purely technical.

Some practical things that actually help:

  1. Use a repeat pipettor or multichannel for master mix distribution. Manual pipetting of 18 µL into 96 wells is an exercise in accumulated error.
  2. Prepare cDNA working dilutions in enough volume that you're pipetting at least 2 µL per reaction, ideally more. If you're adding 0.5 µL of neat cDNA to a 20 µL reaction, make a 1:4 dilution and add 2 µL instead.
  3. Pre-wet the pipette tip by aspirating and dispensing once before the actual transfer, especially for viscous master mixes.
  4. Check your pipette calibration. Seriously. When was the last time? If the answer is "I don't know," it's overdue.

Your technical replicate CV should be < 0.3 Ct for well-behaved assays. If you're routinely seeing 0.5+ Ct spread across triplicates, fix the pipetting before you troubleshoot anything else. No amount of analysis can rescue noisy raw data.

The ΔΔCt Method Has Assumptions You Might Be Violating

The Livak method (Livak & Schmittgen, 2001) assumes equal efficiency between your GOI and your reference gene. Not just "both in the 90-110% range" — actually equal. If your GOI runs at 95% and your reference runs at 105%, the ΔΔCt calculation accumulates a systematic error that grows with the difference in Ct between your calibrator and your samples.

Here's the math. The "fold change" in ΔΔCt is 2^(-ΔΔCt), which assumes perfect doubling (E = 2). If the real efficiencies are 1.95 and 2.05, the error per cycle is:

(2.05/1.95)^ΔCt

Over a ΔCt of 10 cycles (common when comparing a moderately expressed GOI to an abundant reference), that's (1.051)^10 ≈ 1.64. You've introduced a 64% error that looks like biology.

The Pfaffl method (Pfaffl, 2001) corrects for this by incorporating measured efficiencies:

Ratio = (E_GOI)^ΔCt_GOI / (E_ref)^ΔCt_ref

Use it. Or at minimum, validate equal efficiency by plotting ΔCt (GOI minus reference) against log input amount. If the slope of that line is < |0.1|, the Livak method is acceptable. If it's not, use Pfaffl or an efficiency-corrected model.

A Systematic Troubleshooting Checklist

When efficiency passes but results are wrong, work through this in order:

  1. Check reference gene stability across your conditions (raw Ct spread, geNorm M value < 0.5)
  2. Inspect melt curves at the sample level, not just the standard curve — especially for high-Ct samples
  3. Run a no-RT control to rule out gDNA contamination (should be >5 Ct above your +RT, or undetected)
  4. Test for inhibition by spiking a known template into your cDNA and comparing recovery to a water control
  5. Verify equal efficiency between GOI and reference using the ΔCt vs. log input validation plot
  6. Assess technical replicate consistency — if triplicates spread > 0.5 Ct, address pipetting before interpreting biology

Most of the time, the answer is #1 or #5. Occasionally it's #4, particularly with tricky sample types.

If you're running multiple reference genes and efficiency-corrected analysis, VoilaPCR handles the Pfaffl corrections, reference gene stability checks, and outlier flagging automatically — upload your Ct data and it flags these issues before you get to the fold-change stage.

The bottom line: efficiency between 90-110% means your assay can work. Whether it does work depends on everything else.