A budget for an agentic surface that gets grafted into somebody else’s product. Copy it per integration and fill in the negotiated rows — a budget with blanks in it is a document, not a budget. Every threshold here is dated to the page it came from, because performance thresholds move and an undated number in a shared doc outlives its own truth by years.
One framing to keep at the front: you are spending from a budget you did not set. The host page already has an LCP, a CLS and an INP, and they are attributed to the host’s origin. Your line item is the delta you add, not the absolute number you measure in isolation.
These numbers are set outside your organisation and transfer unchanged between host products. Google defines, measures and ranks on the first three; that does not make them wrong, but it does mean they are a vendor’s definitions and have been revised before.
INP (Interaction to Next Paint)
onINP from the web-vitals/attribution build, reported to your own endpoint. Lab: the Interactions track in the Chrome Performance panel, under a calibrated CPU throttling preset. Never from the Lighthouse performance score, which does not contain INP.Long tasks during a stream
performance.mark() so the Timings track shows the boundary directly.LCP (Largest Contentful Paint)
CLS (Cumulative Layout Shift)
hadRecentInput and are excluded, which covers most of what a streaming answer does.No standards body has a number for these. Leaving them empty is the most common way an integration ships without a budget while appearing to have one.
Marginal payload added to the host bundle
Field-data coverage
Lab regression guard in CI
The measurement module is what fills the first two sections in. The React and payload modules are what move the numbers once they are filled. If a row here has no corresponding line in learning/frontend-performance/MEASUREMENTS.md, that row is currently aspirational — which is worth knowing before someone else finds out.
Performance numbers go stale faster than most facts on this site — thresholds get retired, DevTools features move, browser support changes. Every claim here links to the page it came from and says when that page was last updated. If a source has moved on, check the resource list and tell your teaching agent — the course is meant to be corrected.