{
  "slug": "avg-position",
  "name": "Average position",
  "aliases": [
    "Average weighted position",
    "Avg position",
    "Position"
  ],
  "definition": "Where your results sat on the Google results page over the period, averaged across every impression rather than across every keyword.",
  "category": "Search performance",
  "type": "rank",
  "unit": "results-page position (1 = top)",
  "direction": "lower-better",
  "verification": "verified",
  "calculation": "Σ(position × impressions) / Σ(impressions), built from a hidden per-row column defined as position × impressions on the keyword-and-page fact.",
  "numerator": "Sum of position × impressions",
  "denominator": "Sum of impressions",
  "aggregation": "Impression-weighted at every grain. It cannot be re-averaged from a column of positions, and two periods' averages cannot be added or differenced without their impression weights.",
  "grain": "One date range × the selected slice, over the ranked keyword-and-page rows in that slice.",
  "dimensions": [
    "query",
    "page",
    "country",
    "device",
    "intent",
    "category",
    "brand",
    "rank bucket"
  ],
  "requiredFilters": [
    "date range",
    "source medium"
  ],
  "sources": [
    "search-console"
  ],
  "reports": [
    "ai-overview-report",
    "cannibalization-report",
    "content-decay-report",
    "content-performance-report",
    "ctr-opportunity-report",
    "keyword-ranking-report",
    "monthly-executive-search-report",
    "paid-organic-overlap-report",
    "search-market-share-report",
    "search-opportunity-report",
    "serp-volatility-report",
    "weekly-search-report"
  ],
  "skills": [
    "rank-movement-review",
    "weekly-search-report",
    "striking-distance-sprint",
    "anomaly-investigator",
    "cannibalization-check"
  ],
  "verbs": [
    "search_performance",
    "gsc_breakdown",
    "seo_ranking_movement_report"
  ],
  "rungs": [
    "R2"
  ],
  "levers": [
    "L3",
    "L4"
  ],
  "questions": [
    "What is our average position for non-brand keywords?",
    "Did average position improve versus last month?",
    "Average position by device",
    "Which keywords sit between positions 8 and 20?"
  ],
  "interpretation": "A weighted read of the consideration set: how prominently you appeared, with the loudest keywords counting most. Movement is only meaningful against a stable mix, a shift in which countries or devices produced the impressions moves this number without anything ranking differently.",
  "caveats": [
    "Site-level position is not read from the site rollup table. That table's weighted-position column holds the raw position instead of position × impressions, so its average divides positions by impressions and returns a meaningless small number, roughly 0.05 where the correct weighted value is around 15. Site-grain position is sourced from a second read of the ranked keyword-and-page rows and merged over it.",
    "Because of that split, a site-grain average position describes ranked keyword rows only, while the clicks and impressions beside it are whole-site totals. The two halves of the card have different coverage and the card says so.",
    "Average position is an organic measure. For a paid medium there is no position source at all and it reads null rather than zero.",
    "A blended device or country cut can move average position through mix shift alone; the mix check comes before the narration.",
    "Windows straddling Google's September 2025 num=100 reporting change carry an artifact in position as well as impressions."
  ],
  "freshness": "1 to 2 days behind, Google's own reporting lag. Any answer touching the last 48 hours says so on the card.",
  "failureModes": [
    "Quoting the site rollup table's position field directly and publishing a number near zero as an average rank.",
    "Comparing a site-grain average position to a keyword-level one as if the two covered the same rows.",
    "Calling a position move an improvement when the underlying device or geography mix changed."
  ],
  "notSameAs": [
    {
      "slug": "search-market-share",
      "why": "Average position is an impression-weighted ordinal on your own results; search market share is a CTR-modeled share of tracked demand, aggregated across a segment and comparable to competitors. Position can improve while share falls, because share depends on what everyone else did with the same demand."
    },
    {
      "slug": "our-rank",
      "why": "This is your own reported position across all impressions Google recorded for you; our rank is Quattr's observed position for one keyword inside one tracked segment, alongside competitor ranks on that keyword. Different sources, different keyword universes, they are not expected to reconcile."
    }
  ],
  "related": [
    "keyword-page-click-coverage",
    "impressions",
    "ranking-movement",
    "striking-distance-candidates"
  ],
  "workflows": [],
  "lastVerified": "2026-08-04"
}