{
  "slug": "sessions",
  "name": "Sessions",
  "aliases": [
    "Total sessions",
    "Visits"
  ],
  "definition": "The number of distinct visits to the site in the period, from your web-analytics source.",
  "category": "Web analytics and conversions",
  "type": "raw measure",
  "unit": "sessions",
  "direction": "higher-better",
  "verification": "verified",
  "calculation": "An approximate distinct count: the per-row session sketches are combined and estimated, with nulls read as zero. The measure is a HyperLogLog estimate over a combined session array, not a sum.",
  "aggregation": "Never summed across rows. The estimate is recomputed at whatever grain is queried, which is why a set of breakdown rows will not add up to the total.",
  "grain": "One number per date range, or one row per breakdown value.",
  "dimensions": [
    "country",
    "device",
    "page",
    "keyword",
    "source_medium",
    "intent",
    "category",
    "subcategory1",
    "subcategory2"
  ],
  "requiredFilters": [
    "date_range"
  ],
  "sources": [
    "web-analytics"
  ],
  "reports": [
    "ai-referral-traffic-report",
    "content-performance-report",
    "monthly-executive-search-report",
    "search-to-revenue-report"
  ],
  "skills": [
    "search-to-revenue",
    "monthly-exec-review",
    "anomaly-investigator"
  ],
  "verbs": [
    "web_analytics_overview",
    "pop_significance",
    "funnel_dropoff",
    "correlate_domains",
    "significance_check"
  ],
  "rungs": [
    "R5"
  ],
  "levers": [],
  "questions": [
    "How many sessions did we get?",
    "Which landing pages drive the most sessions?"
  ],
  "interpretation": "What arrived on the site, in the analytics source's own definition of a visit. It is the denominator most engagement questions eventually reduce to, and it is deliberately not reconciled against Search Console clicks, the two count different events at different moments.",
  "caveats": [
    "An approximate distinct count, not a sum. Breakdown rows will not add to the total, and the difference is the estimator, not missing data.",
    "When the analytics account is not on the enterprise tier, the tool swaps to a raw summed twin of this measure instead. That changes the construction, not just the source, and a summed session count double-counts across rows in a way the estimate does not.",
    "The default scope is the product's own behavioural card scope, web search type plus google/organic, so an unqualified session count is organic sessions, not a raw all-source analytics total.",
    "Whole-domain only today: the web-analytics dataset scopes by a whole-domain flag rather than by segment, so a non-default segment returns a note explaining the limitation instead of a number.",
    "Analytics and Search Console will not reconcile and are not made to.",
    "Visitor state and city breakdowns are unavailable, the geography dataset they need has a defect in the semantic layer."
  ],
  "freshness": "loads nightly, a same-day question gets yesterday's number, labelled as yesterday's.",
  "failureModes": [
    "Summing a session breakdown and expecting the site total.",
    "Comparing a session count across accounts on different analytics tiers without noticing the measure swapped."
  ],
  "notSameAs": [
    {
      "slug": "users",
      "why": "Sessions count visits, users count people. Both are approximate distinct counts over different sketches, and neither divides into the other."
    },
    {
      "slug": "unique-pageviews",
      "why": "Sessions are an approximate distinct count of visits; unique pageviews are a sum of per-page uniques. One visit can contribute many unique pageviews.",
      "mirroredFrom": "unique-pageviews"
    }
  ],
  "related": [
    "users",
    "conversions-count",
    "conversion-rate",
    "bounce-rate"
  ],
  "workflows": [],
  "lastVerified": "2026-08-04"
}