Interaction invoker types

What kind of handler blocked the interaction: event listener, timer, promise reaction.

Field data PhoneDesktopAll Scope All sites Q2 2026 edition · All devices field outcomes
Metric LCP INP CLS
1

At a glance the headline numbers for Interaction invoker types

What kind of handler blocked the interaction: event listener, timer, promise reaction.

20
Categories
In the distribution
0.0%
Fleet share
Top: 0
0.0%
Sites with any
Of 0
The State of Web Vitals · Q2 2026 · 189,915 sites · all devices field datacorewebvitals.io/state-of-cwv
2

The interaction invoker types mix who uses what, and how fast each group loads

Median INP (sites using feature)
0
100ms
200ms
300ms
400ms
500ms
Module-script106ms0% of sites
Resolve-promise107ms0% of sites
User-callback91ms0% of sites
Classic-script87ms0% of sites
Event-listener88ms0% of sites
VariantShare of requestsMedian
0
0%
Invoker
0%
SourceFunctionName
0%
SourceURL
0%
PauseDuration
0%
ForcedStyleAndLayoutDuration
0%
ExecutionStart
0%
WindowAttribution
0%
InvokerType
0%
Duration
0%
1
0%
StartTime
0%
EntryType
0%
Name
0%
Module-script
0%
106ms
Resolve-promise
0%
107ms
User-callback
0%
91ms
Classic-script
0%
87ms
Event-listener
0%
88ms
SourceCharPosition
0%

Interaction invoker types. On the fleet: 0.0% 0, 0.0% invoker, 0.0% sourcefunctionname. 0.0% of sites use at least one 0.

0 leads by count (0.0%) and by bytes (0.0%). computed

The State of Web Vitals · Q2 2026 · 189,915 sites · all devices field datacorewebvitals.io/state-of-cwv
3

Passing INP per bucket every category and count level at once - color is the pass rate

1
2
3
4
Event-listener 0%
94
94
95
90
Classic-script 0%
96
95
95
90
User-callback 0%
95
96
97
96
Module-script 0%
92
94
83
← few of this category on the pagemany →
60%95%+ of sites passing INP Faded cells: under 100 sites

Each row is a category, each column its own count bucket (few on the left, many on the right); the cell is the share of those sites passing INP.

Classic-script swings the hardest: 96% of sites pass INP with few, 90% with many. computed

The State of Web Vitals · Q2 2026 · 189,915 sites · all devices field datacorewebvitals.io/state-of-cwv
4

Few vs many - does quantity cost INP? the pass rate with few vs many of each category

60%70%80%90%100% few → many
Classic-script 0% 96%90%
Event-listener 0% 94%90%
User-callback 0% 95%96%
Module-script 0% 92%94%
% of sites passing INP · hollow ring = pages with few, solid dot = pages with many

Per category: the pass rate among pages with FEW of it (hollow ring) against pages with MANY (solid dot), worst trend first. Thin buckets are excluded from the endpoints.

More Classic-script costs the most: the INP pass rate falls from 96% with few to 90% with many. computed

The State of Web Vitals · Q2 2026 · 189,915 sites · all devices field datacorewebvitals.io/state-of-cwv
5

Why this matters for the Core Web Vitals, and where to start fixing it

When an interaction lags, some piece of JavaScript held the main thread. This metric names the kind. An event listener means the click handler itself did too much. A timer means scheduled work got in the way, often a third-party script polling on setTimeout. A promise reaction means async work came back and ran in one long chunk.

The kind points at the owner. Slow event listeners are your code and your framework. Timer churn is usually the tag pile. Promise reactions are awaited work that needed breaking up. Identify the kind first, because the fix differs per kind.

How does this affect the Core Web Vitals?

Interaction invoker types correlate with the INP. With Classic-script, 96% of sites pass the INP. With Resolve-promise, 88% do.

The split is bigger on CLS. With Classic-script, 88% of sites pass it. With Resolve-promise, 73% do.

Related signals INP phase breakdown → Yielding strategy → Blocking frame breakdown → Scheduling API use → Chrome field data from 189,915 sites, representing millions of real page loads · How we measured