Performance & CWV · Glossary · Updated Apr 2026

Lab vs Field Data

Definition

Lab data is synthetic — a single page load under controlled, throttled conditions, repeatable run-to-run. Field data is real users — millions of loads under varied devices, networks, and locations. Google ranks on field data (CrUX); you optimize against lab (Lighthouse) because it's diagnostic and reproducible.

Find related

Long definition

The split is not philosophical. It maps to two different jobs in the performance workflow.

Lab data is generated by tools like Lighthouse, WebPageTest, Calibre, and DebugBear's synthetic mode. The browser runs in a sandboxed environment with simulated throttling — Lighthouse defaults to "slow 4G" and 4× CPU slowdown — and produces a single deterministic-ish result. Same URL, same throttling, similar scores within ±5 points. Lab is for diagnosis (why is LCP slow), regression detection (did this PR make TBT worse), and comparison (page A vs page B under identical conditions).

Field data is collected from real users by tools like CrUX (public) or private RUM products (SpeedCurve, DebugBear RUM, Datadog). Every device, every connection, every region, every time of day. Aggregated to the 75th percentile over a 28-day rolling window for CrUX. Field is for truth (what do users experience), ranking (Google uses CrUX field data for Core Web Vitals signals), and prioritization (which page templates regress in the wild).

The two often disagree. A page might score 95 in Lighthouse and fail Core Web Vitals in field, or vice versa. That's not a bug — they measure overlapping but different things:

  • Lab uses one device profile; field has every device from a 4-year-old budget Android to a high-end Mac.
  • Lab uses one network condition; field has 5G, 3G, hotel WiFi, subway tunnels.
  • Lab measures one page-load lifecycle; field captures interactions throughout the session (INP needs real user events).
  • Lab can't measure cache-warm returning visitors realistically; field naturally includes them.

The mature workflow: check field first to see what's actually happening. Then run lab to debug the underlying cause. Ship the fix, watch field data for 28+ days to confirm it landed for real users. PR-level CI uses lab (deterministic, fast); production health uses field (truthful, slow).

Common misconceptions

  • "Lab and field should give the same numbers." They almost never do. Different inputs, different methodologies, different aggregation. Convergence is rare; informed disagreement is normal.
  • "Field data is always right and lab is always wrong." Both are right at what they measure. Lab gives reproducible diagnosis; field gives population truth. Picking one and ignoring the other costs you debuggability or relevance.
  • "Lighthouse score 100 means I pass Core Web Vitals." Lighthouse score is a weighted average of lab metrics. Core Web Vitals pass/fail is computed from CrUX field data at the 75th percentile. They can disagree, and Google uses field for ranking.
  • "Field data updates instantly when I ship a fix." CrUX is a 28-day rolling window. Even after a deploy, the field number reflects the previous month's performance for the first few weeks. Allow 30+ days before drawing conclusions.