{
  "slug": "keyword-page-click-coverage",
  "name": "Keyword-page click coverage",
  "aliases": [
    "Keyword-attributed coverage",
    "KPR coverage"
  ],
  "definition": "The share of whole-site organic clicks that can be attributed to a specific ranked keyword and page, the basis on which site-level average position and every branded or intent rollup is computed.",
  "category": "Search performance",
  "type": "share",
  "unit": "% of whole-site organic clicks",
  "direction": "higher-better",
  "verification": "inferred",
  "aggregation": "Not returned by any verb. It is the implied ratio between the keyword-attributed rows and the whole-site totals for the same window and slice.",
  "grain": "One date range × the whole site.",
  "dimensions": [
    "search type",
    "source medium"
  ],
  "requiredFilters": [
    "date range"
  ],
  "sources": [
    "search-console"
  ],
  "reports": [
    "cannibalization-report",
    "content-performance-report",
    "keyword-ranking-report",
    "weekly-search-report"
  ],
  "skills": [
    "quattr-iq",
    "anomaly-investigator"
  ],
  "verbs": [
    "search_performance"
  ],
  "rungs": [
    "R2"
  ],
  "levers": [
    "L2"
  ],
  "questions": [
    "Why is our keyword-level total smaller than our site total?",
    "How much of our traffic can be attributed to specific keywords?"
  ],
  "interpretation": "The reason two correct numbers on the same card disagree. Anything computed on ranked keyword rows, site average position, a branded or non-branded rollup, a keyword worklist, describes only the attributable share of the site, while clicks and impressions beside it describe all of it. The gap is anonymized and unranked demand, not loss.",
  "caveats": [
    "No verb computes or returns this ratio; the routing code records an observed range of roughly 64 to 70% of site clicks on the tenants it was checked against, and the underlying formula is not implemented anywhere in this repository.",
    "It varies by tenant, by window and by slice, so a recorded range is a prior and not a value to quote for a specific account.",
    "The keyword-attributed rollup returns its own coverage note on every response that uses it, that note, not this ratio, is what should travel with a number."
  ],
  "freshness": "1 to 2 days behind, Google's own reporting lag. Any answer touching the last 48 hours says so on the card.",
  "failureModes": [
    "Treating the gap between a brand rollup and a site total as missing data or a bug.",
    "Quoting a remembered coverage percentage for a specific account instead of running the two reads."
  ],
  "notSameAs": [],
  "related": [
    "avg-position",
    "clicks",
    "unique-keywords"
  ],
  "workflows": [],
  "lastVerified": "2026-08-04"
}