skip to content

You shipped a change that clearly cut LCP, but a week later the Core Web Vitals field data for that page has barely moved. Why, and what would you look at in the meantime?

level: middleimportance: should knowfreq 48%

answer

  1. the report is a moving window
  2. old visits still outnumber new ones
  3. drift, not a step change
  4. tag samples with the release
  5. your own data answers today

basics

~20 s

Field Core Web Vitals are aggregated over a rolling 28-day window, so a week after a deploy roughly three quarters of the samples still come from the old code. The reported value drifts as the window rolls; your own real-user data shows the change the same day.

solid answer

~40 s

The public field report is a **trailing 28-day aggregate**, not a live gauge. A week after the deploy only about a quarter of the visits in that window ran the new code, and the reported number is a percentile over the whole pooled set — so old visits still dominate it. Expect a gradual drift rather than a step, with the full effect visible only once the window is mostly post-fix traffic, and expect reporting surfaces built on that data to add their own lag on top. Meanwhile, do not just wait: your own real-user monitoring can bucket visits by release and compare the before and after distributions immediately. That both confirms the win and catches the case where the fix helped your test device but did nothing for real users on slow networks.

go deeper

for a junior

Know that the public field numbers describe the last several weeks of real visits, so a change you shipped today will not show up tomorrow no matter how effective it is.

for a middle

Explain the arithmetic of the rolling 28-day window — a week in, most samples are still pre-fix — and why the value drifts rather than steps, plus the extra publishing lag on top.

for a senior

Show the operating discipline: tag every real-user sample with a release identifier, compare distributions at the assessment's percentile, segment by form factor, and refuse to attribute early wiggles in the public number to your change.

for a principal

Set expectations across the organization — what the reporting cadence for performance work is, which internal signal teams are judged on between deploys, and how to prevent month-long feedback loops from stalling the work.

## The window is the whole answer Field Core Web Vitals are published as an aggregate over a **rolling 28-day window** of real visits. Each day the window slides forward: the oldest day of samples drops out, a new day drops in. The published value is a percentile computed over everything currently inside that window. That single fact explains the symptom. Seven days after your deploy, the window holds roughly 21 days of pre-fix visits and 7 days of post-fix visits. Even if every new visit is dramatically faster, they are a minority of the pool, and a percentile over a pool that is three-quarters old data mostly reflects old data. You get a slow drift, not a step change, and the full effect lands only after the window has turned over. A useful mental model: the reported value is a moving average of your last month of reality. Ship something great and the line bends gently; ship something terrible and, reassuringly or alarmingly, the line also bends gently. ## Second-order lags stacked on top Several effects extend the wait beyond the window arithmetic: - **Reporting lag.** Dashboards built on the dataset do not always show today's window; they publish on their own cadence, so what you see can already be days behind the underlying aggregate. - **Traffic seasonality.** If your traffic is weekly-cyclical, the composition of the window changes with the day of the week, adding wobble that can mask a modest improvement. - **Returning visitors and caches.** Users who already have your old assets cached may not experience the new path immediately, depending on what you changed and how it is cached. - **Partial rollout.** If the change went out behind a flag or to a fraction of traffic, the post-fix share of the window is smaller than the calendar suggests. ## What to do instead of waiting The cure is your own real-user measurement with a **release or deploy identifier attached to every sample**. Then the comparison is not "before vs after in a smeared window" but "visits tagged build A vs visits tagged build B", which you can read within hours of the deploy at meaningful volume. Compare distributions, not means: look at the same percentile the public assessment uses, plus the shape, because a fix that improves the median while leaving the slow tail untouched will not move the assessment at all. Segment that comparison the same way the assessment does — by form factor at minimum, and ideally by connection quality and geography. This is where you catch the most common disappointment: the change genuinely helped fast devices, where you tested, and did nothing for the slow quarter, which is the only quarter the percentile rule cares about. ## Don't over-interpret early movement The flip side of the lag is that early wiggles in the public number are mostly noise: a couple of days of new data cannot move a 28-day percentile much, so any large jump you see in that period is more likely a change in traffic mix, a sampling artefact, or a reporting-surface update than the effect of your work. Resist the urge to declare victory or defeat from three days of drift. ## Answering it well The strong answer has three parts: state the window and do the arithmetic out loud (a week in, most samples are still old); name the second-order lags without treating them as the main cause; and pivot immediately to the thing you control — release-tagged real-user data, compared at the same percentile and segmented by form factor. That last part is what separates an engineer who understands the reporting from one who merely waits on it.

  • Roughly how long until the field number fully reflects a fix deployed today?
    About four weeks, once the rolling window contains only post-fix visits, plus whatever publishing lag your reporting surface adds. You will see the direction earlier — the value drifts steadily as new samples accumulate — but the settled number is a month out. Plan your reporting around that, and never schedule a decision on the public number a week after a deploy.
  • You tag your own field samples by release and the new build looks better at the median but identical at p75. What does that tell you?
    That the fix helped visits that were already reasonably fast and did nothing for the slow tail — so the assessment, which reads the 75th percentile, will not move. It usually means you optimized something that was never the constraint for slow devices or networks. Go back and look at what the slowest quarter of visits actually spends its time on.
  • The public number moved sharply three days after your deploy. Should you take credit?
    Almost certainly not. Three days of new samples cannot swing a 28-day percentile much, so a sharp move is more likely a shift in traffic mix, a reporting-surface update, or an unrelated infrastructure change. Confirm against your own release-tagged data before attributing it, and be equally sceptical of a sharp move in the wrong direction.

saying these in an interview costs you the question

  • Assumes the field report updates within a day of deploying
  • Thinks the aggregate resets at the deploy
  • Blames the fix for not working after a few days
  • Confuses a rolling window with a calendar month
  • Reads three days of drift as proof the change worked

context