Tools help·3 min read

Inside the CTR curve tool: buckets, thin data and the Search Console error window

How the Site CTR curve tool turns a Search Console Queries export into your own CTR by position, why it pools clicks instead of averaging, and how the curve feeds a payback case.

Nikko Nanji

Nikko Nanji - technical SEO consultant

Published - Last reviewed

Short answer: published CTR-by-position studies disagree with each other by about 3x at position 1. Your own site is the only curve that fits your SERPs, your brand and your snippets. The tool builds that curve from a Search Console Queries export, splits brand from the rest, greys out thin buckets, and refuses to save a curve that overlaps Google's known impressions reporting error.

For "what's a good CTR", read CTR by position. This piece is how the curve is built.

What you paste in

The Queries export from the Search Console Performance report, comma or tab separated. The tool looks for four columns by header name: Top queries (or Query), Clicks, Impressions and Position. Percent signs and thousands separators are stripped. Everything runs in your browser, and nothing is uploaded.

Then add query rules. A rule is a name plus comma-separated terms, or a regular expression. First match wins, and anything unmatched goes to Other. In practice, one rule for your brand terms is enough to stop navigational searches inflating the curve.

The maths, under the hood

  • Six buckets. Each query's average position is rounded and dropped into 1, 2, 3, 4-5, 6-10 or 11-20. Anything past 20 still counts in the type's totals, but not in a bucket.
  • Pooled CTR, not averaged CTR. Bucket CTR = total clicks / total impressions. Averaging each query's CTR would let a query with 20 impressions count as much as one with 20,000. Pooling weights by real exposure.
  • Thin data is flagged, not hidden. Buckets under 100 impressions (you can change this) are greyed out as thin and aren't used by PAYBACK.
  • The error window guard. Google's data anomalies page lists an impressions logging error from 13 May 2025 to 27 April 2026. If your date range overlaps it, the curve isn't saved, because the impressions underneath it can't be trusted.

How the curve feeds PAYBACK

When you model a CTR change in PAYBACK (say, from position 3 to position 1), it fills in three cases:

  • Worst: First Page Sage's blended figures.
  • Base: your saved site curve for that query type, if both positions have usable, non-thin data. If they don't, it falls back to Advanced Web Ranking's figures for SERPs with an AI Overview, and says why.
  • Best: Advanced Web Ranking's figures for all SERPs.

Every filled value carries its source and publication date, so the case can be audited.

Edge cases

  • Brand pollution. Brand queries at position 1 often get CTRs that no non-brand query will ever see. Without a brand rule, your "Other" curve is a fantasy.
  • The 1,000-row cap. Search Console's table export stops at 1,000 rows. Long-tail queries drop out of the table, so curves from big sites lean towards the head terms.
  • Average position is an average. A query sitting at 4.6 might really be swapping between 2 and 7. Buckets smooth that out. They don't remove it.

Worked example

The tool's own Sample input: a made-up Queries export for a fictional brand, with one rule, Brand = samplebrand.

CASE FILE: samplebrand, July to September 2026 (Sample input)
Top queries,Clicks,Impressions,Position
samplebrand,820,2400,1.1
samplebrand login,410,1300,1.0
how to fix redirect chains,120,3900,2.1
what is a soft 404,85,4200,3.2
410 vs 404 status code,30,2200,3.0
...16 rows in total

Brand  pos 1: 1,230 clicks / 3,700 impr = 33.24%
Other  pos 1:    70 clicks / 1,100 impr =  6.36%
Other  pos 3:   115 clicks / 6,400 impr =  1.80%

VERDICT: brand and non-brand curves differ by about 5x at position 1

If you modelled "move a non-brand page from 3 to 1" with one blended curve, the brand rows would overstate the gain several times over. Split them, and the base case uses 1.80% -> 6.36%, which is a number you can defend.

Run it: open the CTR curve and press Sample input

The money angle

CTR work is cheap: it's titles, snippets and intent fit. That makes it easy to oversell. A site-specific curve keeps the forecast honest, and an honest forecast is the one that gets budget twice.

If a whole section is visible but unclicked, start with the triage in STORY. Then take the shortlist to PAYBACK with your own curve as the base case.

Sources