{
  "slug": "ctr-gain",
  "name": "Modeled CTR gain to a target position",
  "aliases": [
    "CTR uplift",
    "Curve gain"
  ],
  "definition": "The extra click-through rate this site's own curve predicts for a keyword if it moved from where it ranks now to a target position.",
  "category": "Content opportunity",
  "type": "derived metric",
  "unit": "CTR points as a 0 to 1 fraction",
  "direction": "higher-better",
  "verification": "verified",
  "calculation": "ctrGain = max(0, expectedCtr(target) − expectedCtr(current)) evaluated on the row's own fitted curve. The floor at zero is safe because the fit is monotone-decreasing, so a target above the current position can never predict a loss.",
  "aggregation": "Row-level; it is an input to the upside figures rather than something to aggregate on its own.",
  "grain": "One keyword × one page × the current-to-target pair.",
  "dimensions": [
    "query",
    "page",
    "brand",
    "intent",
    "device",
    "position"
  ],
  "requiredFilters": [
    "date range"
  ],
  "sources": [
    "search-console"
  ],
  "reports": [
    "ctr-opportunity-report",
    "search-opportunity-report"
  ],
  "skills": [
    "striking-distance-sprint"
  ],
  "verbs": [
    "striking_distance"
  ],
  "rungs": [
    "R2"
  ],
  "levers": [
    "L3",
    "L4"
  ],
  "questions": [
    "How much CTR would we gain moving this keyword from 11 to 5?",
    "What is the click-rate upside of reaching page 1?"
  ],
  "interpretation": "The per-impression part of the upside story. It says nothing about how hard the move is, the curve models what happens if a position changes, never whether it will.",
  "caveats": [
    "The target position is a default (5) and a knob. Changing it changes every number in the worklist, so the target belongs beside the result.",
    "Rows already at or above the target are excluded from the candidate set rather than modeled at a gain of zero.",
    "Both ends of the gain come from the same fitted curve, so a low-confidence cell makes the gain unreliable at both ends at once."
  ],
  "freshness": "1 to 2 days behind, Google's own reporting lag. Any answer touching the last 48 hours says so on the card.",
  "failureModes": [
    "Comparing two worklists built with different target positions.",
    "Reading a gain as achievable without any assessment of ranking difficulty."
  ],
  "notSameAs": [],
  "related": [
    "expected-ctr",
    "potential-clicks-raw",
    "striking-distance-candidates"
  ],
  "workflows": [],
  "lastVerified": "2026-08-04"
}