{
  "slug": "expected-ctr",
  "name": "Expected CTR at position",
  "aliases": [
    "Modeled CTR",
    "Fitted CTR",
    "Curve CTR"
  ],
  "definition": "What this site's own history says a result should earn at a given results-page position, for a given branded, intent and device cell.",
  "category": "Content opportunity",
  "type": "derived metric",
  "unit": "share of impressions expected to click (0 to 1)",
  "direction": "higher-better",
  "verification": "verified",
  "calculation": "The bucket weighted CTRs are fitted with a pool-adjacent-violators isotonic regression constrained monotone-DECREASING and weighted by each bucket's impressions, fitted once per branded × intent × device cell. Expected CTR at a non-integer position is linearly interpolated between the fitted bucket knots.",
  "aggregation": "One fit per segment cell; cells are never pooled into a single global curve.",
  "grain": "One position, evaluated on one cell's fitted curve.",
  "dimensions": [
    "position",
    "brand",
    "intent",
    "device"
  ],
  "requiredFilters": [
    "date range"
  ],
  "sources": [
    "search-console"
  ],
  "reports": [
    "ctr-opportunity-report",
    "search-opportunity-report"
  ],
  "skills": [
    "ctr-opportunity-audit",
    "striking-distance-sprint",
    "content-decay-refresh"
  ],
  "verbs": [
    "ctr_curve_model",
    "striking_distance"
  ],
  "rungs": [
    "R2"
  ],
  "levers": [
    "L3"
  ],
  "questions": [
    "What CTR should we expect at position 4?",
    "What does our own click curve look like for non-brand demand?",
    "How much CTR would we gain moving from position 9 to 5?"
  ],
  "interpretation": "The benchmark this product uses instead of a published industry table: the site's own past behaviour, made monotone so that a better position never predicts a worse rate. It is the expectation a page is measured against, not a target it is promised.",
  "caveats": [
    "One blended global curve is refused by design, the branded and non-branded gap dominates click-through, so a blend would flatter one half and libel the other.",
    "The curve is non-stationary: it drifts with results-page layout and with seasonality, so a fit from one window does not describe another.",
    "When a row's exact cell has no fit, the substitute is the same-brand curve carrying the most impressions and, failing that, the most-data cell overall, proximity in intent or device does not enter the choice. The match kind is reported per row so a substituted curve is visible.",
    "Buckets fitted from few instances are flagged low-confidence and the expectation drawn from them is weak.",
    "Never an industry benchmark. Quoting a published CTR table beside this number defeats the reason it exists."
  ],
  "freshness": "1 to 2 days behind, Google's own reporting lag. Any answer touching the last 48 hours says so on the card.",
  "failureModes": [
    "Presenting the fitted curve as an industry benchmark or a target.",
    "Applying a curve fitted on branded demand to a non-branded worklist without noticing the substituted cell.",
    "Carrying a curve across a layout change and reading the drift as performance."
  ],
  "notSameAs": [],
  "related": [
    "weighted-ctr",
    "actual-ctr",
    "ctr-delta",
    "ctr-gain",
    "fallback-ctr-prior"
  ],
  "workflows": [],
  "lastVerified": "2026-08-04"
}