{
  "slug": "average-time-on-page",
  "name": "Average time on page",
  "aliases": [
    "Avg time on page"
  ],
  "definition": "The average time visitors spent on a page in the period, as recorded by your web-analytics source.",
  "category": "Web analytics and conversions",
  "type": "raw measure",
  "unit": "seconds (inferred from the field name, not declared in the semantic layer)",
  "direction": "higher-better",
  "verification": "inferred",
  "aggregation": "An unweighted average of a per-row time-on-page column supplied by the analytics export, with nulls read as zero.",
  "grain": "One number per date range, or one row per breakdown value.",
  "dimensions": [
    "country",
    "device",
    "page",
    "keyword",
    "source_medium",
    "intent",
    "category"
  ],
  "requiredFilters": [
    "date_range"
  ],
  "sources": [
    "web-analytics"
  ],
  "reports": [],
  "skills": [
    "search-to-revenue"
  ],
  "verbs": [
    "web_analytics_overview"
  ],
  "rungs": [
    "R5"
  ],
  "levers": [],
  "questions": [
    "How long do people spend on this page?",
    "Time on page by template?"
  ],
  "interpretation": "A page-grain engagement signal. Longer is usually read as better for long-form content and can be read the other way on a page whose job is to route people onward, the metric itself carries no view on which case applies.",
  "caveats": [
    "The unit is not declared in the semantic layer; seconds is inferred from the field name. Do not present it as established.",
    "Unweighted across rows, so a page with a handful of views moves the site number as much as a page with thousands.",
    "Nulls are read as zero, so a zero can mean no time recorded or no data.",
    "Whole-domain only today."
  ],
  "freshness": "loads nightly, a same-day question gets yesterday's number, labelled as yesterday's.",
  "failureModes": [
    "Stating the unit as seconds without the caveat.",
    "Comparing page-level values without weighting by pageviews."
  ],
  "notSameAs": [
    {
      "slug": "average-session-duration",
      "why": "Time on page is per page; session duration is per visit across all pages in it."
    }
  ],
  "related": [
    "average-session-duration",
    "unique-pageviews"
  ],
  "workflows": [],
  "lastVerified": "2026-08-04"
}