Blog
Back to Blog

How to Set the Ct Threshold in qPCR (And Why It Matters)

The threshold line determines every Ct value in your experiment, which means it determines every fold change, every p-value, and every conclusion you draw. If it's set wrong, your data isn't noisy — it's systematically biased. The good news: setting it correctly is straightforward once you understand what the software is actually doing when it picks a number for you.

The short version: place the threshold in the exponential phase of amplification, above the background noise, at a level where all your curves are still climbing steeply and in parallel. For most SYBR Green or TaqMan assays on a QuantStudio or CFX96, this lands somewhere between a ΔRn of 0.05 and 0.5, depending on the assay. Auto-threshold works fine about 80% of the time. The other 20% — when you have late amplification, variable baselines, or you're comparing across plates — is where manual adjustment matters.

What the threshold actually represents

The Ct (or Cq — same thing, different naming convention per the MIQE guidelines from Bustin et al., 2009) is the fractional cycle number at which the fluorescence signal crosses a fixed threshold. The entire premise of quantitative PCR rests on the assumption that at this crossing point, every reaction has produced roughly the same amount of product. That's only true if:

  1. The threshold sits in the exponential phase, where amplification efficiency is constant.
  2. Every reaction on the plate has a comparable baseline.
  3. The threshold is high enough to clear cycle-to-cycle noise but low enough to remain in the log-linear region.

Think of the amplification curve as having three phases: the baseline (cycles 1–15ish, where fluorescence is indistinguishable from noise), the exponential phase (where the signal doubles every cycle if efficiency is 100%), and the plateau (where reagents are limiting and the curve flattens). Your threshold must sit squarely in the exponential phase. Too low and you're measuring noise. Too high and you're in the plateau where differences in efficiency are compressed and Ct values lose their quantitative meaning.

On most instruments, the software sets a baseline automatically (typically cycles 3–15 for baseline correction) and then places the threshold at some multiple of the baseline standard deviation — often 10× the SD of baseline fluorescence. This is a reasonable heuristic. But it can fail.

When auto-threshold gets it wrong

Here are the scenarios I've seen trip up auto-thresholding most often:

Late-amplifying targets. If your gene of interest doesn't cross threshold until Ct 32–35, the auto-algorithm sometimes places the line too high because it's being influenced by the abundant targets on the same plate. Your GOI's exponential phase might be between ΔRn 0.01 and 0.1, but the software parks the threshold at 0.2 because GAPDH is blazing through at Ct 15 with massive fluorescence. Check the log-scale amplification plot — if the threshold cuts through your GOI curves where they're already bending toward plateau, it's too high.

Variable baselines across wells. This happens more on older block-based instruments (early LightCycler 480 units, some 384-well QuantStudio runs) where edge wells have slightly different optical properties. If baseline correction doesn't fully normalize this, some curves will appear to cross threshold earlier simply because their baseline is elevated. You'll see this as unexplained Ct variation across replicates that clusters by plate position.

Multiplex TaqMan assays. Each channel may need its own threshold. Auto-threshold applied globally across all targets on a plate can set inappropriate levels for your lower-abundance channel. Always check thresholds per target in a multiplex.

Cross-plate comparisons. If you're running samples across multiple plates and using auto-threshold, you can easily end up with a threshold of 0.08 on plate 1 and 0.12 on plate 2. That ΔRn difference can shift Ct values by 0.3–0.5 cycles — enough to create a phantom 1.3-fold change from nothing. Either use a fixed manual threshold across plates or include inter-plate calibrators and normalize accordingly.

How to set the threshold manually

Here's the practical workflow I use:

  1. Switch to log scale. Every instrument software (Bio-Rad CFX Maestro, QuantStudio Design & Analysis, LightCycler software) lets you view the amplification plot on a log₁₀ Y-axis. Do this. On a linear scale, the exponential phase looks like a wall and you can't see where curves diverge. On log scale, the exponential phase appears as a straight, steep, parallel set of lines. This is where you want the threshold.

  2. Identify the parallel region. Look for the range of ΔRn (or fluorescence) values where all curves — across all concentrations, all samples — are running parallel on log scale. This is the zone of constant efficiency. The threshold should sit in the middle of this region, not at the bottom edge and not at the top where curves start to splay.

  3. Drag the threshold line. Place it so it intersects all curves during their steepest, most parallel climb. For a typical SYBR Green assay with PowerUp SYBR or Luna Universal, I usually end up somewhere around ΔRn 0.1–0.3. For TaqMan assays, it can be lower (0.03–0.1) because probe-based fluorescence tends to have a cleaner baseline.

  4. Check the resulting Ct values. Your technical replicate SD should be < 0.5 Ct, ideally < 0.3 Ct. If moving the threshold up or down by 2-fold doesn't change your replicate SD much but shifts all Ct values uniformly, you're in the right zone. If small movements create big changes in SD, you're too close to the noise floor or the plateau.

  5. Lock the threshold for the experiment. Once you've set it for a given assay and instrument, use the same value for every plate in that experiment. Write it down in your notebook or export file. Seriously. Future-you analyzing the data six months later will thank you.

The math behind why it matters

The Livak (2⁻ᐩᐩCt) method assumes equal efficiency of 100% for both target and reference genes (Livak and Schmittgen, 2001). In the Pfaffl model, you correct for measured efficiency differences (Pfaffl, 2001). In both cases, the Ct value is the input. A systematic threshold error of +0.5 cycles on your GOI shifts your ΔCt by 0.5, which translates to a 2⁰·⁵ = 1.41-fold error. That's a 41% overestimate or underestimate of expression — easily enough to flip a borderline result.

Here's a worked example. Suppose your treatment group has HPRT1 Ct = 20.0 and NFKB1 Ct = 25.0 in both treatment and control, but you set the threshold too high so NFKB1 reads 25.5 instead of 25.0 on your treatment plate. Your ΔCt goes from 5.0 to 5.5 for treatment. Your ΔΔCt goes from 0 (no change) to 0.5, giving you a reported 0.71-fold downregulation. That's an artifact. And it's invisible if you don't look at the threshold placement, because the software happily reports Ct values to two decimal places regardless of whether the threshold is in the right place.

Special cases worth knowing about

Standard curve experiments. When you're running a dilution series for efficiency calculation, the threshold placement directly affects your calculated efficiency. An efficiency of 95% versus 100% changes the slope of your standard curve from –3.45 to –3.32. If the threshold is in the plateau for your highest concentration point (often Ct 10–12 with 18S or high-copy targets), that point will compress toward its neighbors, artificially steepening the slope and inflating your calculated efficiency. Drop the most concentrated point if it's clearly in the plateau at threshold crossing.

High-resolution melt (HRM) analysis. Threshold placement doesn't affect melt curve analysis directly, but it determines which wells get called as "positive" and included in melt analysis. If your threshold is too low, NTC wells with primer-dimer (Ct 36–38, broad ugly melt peak at 76°C) get called positive and clutter your melt plot.

Digital PCR users reading this: you don't set a threshold on amplification curves — you partition and count. But if you're coming from dPCR back to qPCR for higher-throughput experiments, threshold placement is the single biggest thing to get right. It's the step that doesn't exist in your usual workflow.

Keep it consistent, keep it documented

The most common threshold mistake isn't placing it in the wrong spot on a single plate — it's inconsistency across plates in a multi-plate experiment. Batch effects from threshold drift are real and entirely preventable. Set your threshold once per assay, record it, and apply it identically across every plate.

If you're running your analysis through VoilaPCR, this is handled for you — it applies consistent thresholding logic across your uploaded plates and flags wells where the threshold intersects outside the exponential phase. But whether you use software or do it manually in your instrument's analysis suite, the principle is the same: the threshold is not a default to accept. It's a decision to make deliberately.