# Web vitals

> The atrby script measures LCP, INP, CLS, FCP and TTFB on every page and reports the 75th percentile with good and poor thresholds.

Canonical: https://atrby.site/docs/vitals
Last updated: 2026-10-21

Core Web Vitals from real visits, measured by the same script. No extra tag.

## What's measured

The script measures five metrics on every page and sends them once, when the visitor leaves or switches tabs. Reports show the 75th percentile (p75), the same figure Google uses.

| Metric | Meaning and thresholds |
| --- | --- |
| LCP | Largest contentful paint. Good under 2.5 s, poor over 4 s. |
| INP | Interaction to next paint, the slowest interaction. Good under 200 ms, poor over 500 ms. |
| CLS | Cumulative layout shift. Good under 0.1, poor over 0.25. |
| FCP | First contentful paint. Good under 1.8 s, poor over 3 s. |
| TTFB | Time to first byte. Good under 800 ms, poor over 1.8 s. |

## Reading the report

- Each metric shows p75, its grade, and the share of visits that were good, needing work, or poor.
- The All, Mobile and Desktop switch shows each metric's p75, good share and number of visits for that device.
- Each card shows the change in p75 against the previous period of the same length (lower is better).
- The trend chart has tabs for LCP, INP, CLS and TTFB, with a mobile and a desktop line per day.
- The pages table lists p75 per page. If you can see revenue, it's sorted by revenue from visits that landed there, so you fix the pages that earn first.

Browsers that don't support a metric (INP in Safari, for example) simply don't send it, so sample counts differ per metric.

## Related
- [Goals and funnels](https://atrby.site/docs/goals-funnels)
- [AI traffic and crawlers](https://atrby.site/docs/crawlers)
- [Sessions and realtime](https://atrby.site/docs/sessions)
