{
  "slug": "largest-contentful-paint",
  "name": "Largest Contentful Paint",
  "aliases": [
    "LCP"
  ],
  "definition": "How long it takes for the largest visible element on a page to render.",
  "category": "Page experience",
  "type": "score",
  "unit": "seconds",
  "direction": "lower-better",
  "verification": "verified",
  "calculation": "Read from the product's weighted summary measure, which is already expressed in SECONDS, the semantic layer divides the underlying millisecond measurement by a thousand before exposing it, and the product renders that value unchanged with a seconds suffix. The display projection only rounds to two decimal places; grading is applied to the same seconds value, bucketing at 2.5 and 4 seconds.",
  "aggregation": "The headline number is read from the product's own weighted summary measure with no page dimension. Averaging page-level values a second time would give every page equal weight and is the documented cause of a past mismatch against the product UI.",
  "grain": "One number per date range, optionally split by device, or one row per page.",
  "dimensions": [
    "page",
    "device"
  ],
  "requiredFilters": [
    "date_range"
  ],
  "sources": [
    "lighthouse"
  ],
  "reports": [
    "core-web-vitals-report"
  ],
  "skills": [
    "cwv-regression-watch",
    "technical-health-audit",
    "cross-domain-correlator"
  ],
  "verbs": [
    "site_health_cwv_check",
    "correlate_domains",
    "significance_check"
  ],
  "rungs": [
    "R1"
  ],
  "levers": [
    "L1"
  ],
  "questions": [
    "What is our LCP?",
    "Which pages are slowest to render?"
  ],
  "interpretation": "Rendering speed, in the same seconds the thresholds are written in, read it against 2.5 and 4 seconds and quote the grade beside it. It is also the field the page evidence is ranked by: the worst-pages list is the slowest-rendering pages, so this vital, not the performance score, decides which pages get looked at.",
  "caveats": [
    "Seconds, end to end. It is not a Lighthouse sub-score and not milliseconds: a reading of 5.72 is 5.72 seconds. An earlier version of this product treated the same value as an internal hundredths-of-a-second score, multiplied it by a hundred and labelled the result milliseconds, turning 5.72 seconds into 572 milliseconds, that is the bug the current scale replaces, and it is why any figure here quoted in milliseconds should be distrusted.",
    "The grading thresholds are the standard Core Web Vitals bands, and the threshold VALUES are recorded in code as pending product-specific confirmation.",
    "These are lab measurements, not field data from real visitors.",
    "Collection cadence varies by site and by page, so a vital measured three weeks ago is reported as three weeks old rather than as current.",
    "When results are split by device the page rows become page-by-device observations, so a worst-page figure is a single device's measurement and can sit well above the device-blended value the product UI shows for the same page and window."
  ],
  "freshness": "varies by site, priority URLs can run nightly; most pages far less often. The collection date rides on the card rather than being assumed.",
  "failureModes": [
    "Treating the value as a zero-to-one Lighthouse sub-score, or rescaling it by a hundred in either direction.",
    "Quoting a device-split worst-page figure as that page's blended value.",
    "Averaging page-level values to produce a site headline."
  ],
  "notSameAs": [
    {
      "slug": "cwv-vital-grade",
      "why": "One is a numeric average, the other is the graded bucket that average falls into. Score and verdict are kept separate on every vital."
    },
    {
      "slug": "crawler-response-time",
      "why": "Server response latency to a crawler is not page-render speed for a visitor. Different measurements from different sources, and neither predicts its counterpart.",
      "mirroredFrom": "crawler-response-time"
    }
  ],
  "related": [
    "interaction-to-next-paint",
    "cumulative-layout-shift",
    "performance-score",
    "cwv-vital-grade"
  ],
  "workflows": [],
  "lastVerified": "2026-08-04"
}