Script coverage (used vs unused)

Field data PhoneDesktopAll Scope All sites Q2 2026 edition · All devices field outcomes
Metric LCP INP CLS
No data for Script coverage (used vs unused) this edition.
Related signals Image source mix → Page weight & requests → DOM depth → Scripts per page → Chrome field data from 189,915 sites, representing millions of real page loads · How we measured
Live queries (3) — admin only
Query #1: 31.5 ms
SELECT COUNT(*) AS count,
            quantile_disc(m.scripts.coverage.used_kb, 0.10) AS p10,
            quantile_disc(m.scripts.coverage.used_kb, 0.25) AS p25,
            quantile_disc(m.scripts.coverage.used_kb, 0.50) AS p50,
            quantile_disc(m.scripts.coverage.used_kb, 0.75) AS p75,
            quantile_disc(m.scripts.coverage.used_kb, 0.90) AS p90,
            quantile_disc(m.scripts.coverage.used_kb, 0.99) AS p99
            FROM sites WHERE m.scripts.coverage.used_kb IS NOT NULL;
Query #2: 367.0 ms
SELECT COUNT(*) AS count,
            quantile_disc(m.scripts.coverage.unused_kb, 0.10) AS p10,
            quantile_disc(m.scripts.coverage.unused_kb, 0.25) AS p25,
            quantile_disc(m.scripts.coverage.unused_kb, 0.50) AS p50,
            quantile_disc(m.scripts.coverage.unused_kb, 0.75) AS p75,
            quantile_disc(m.scripts.coverage.unused_kb, 0.90) AS p90,
            quantile_disc(m.scripts.coverage.unused_kb, 0.99) AS p99
            FROM sites WHERE m.scripts.coverage.unused_kb IS NOT NULL;
Query #3: 299.5 ms
SELECT CASE WHEN m.scripts.coverage.unused_kb >= 0 AND m.scripts.coverage.unused_kb < 500 THEN 0 WHEN m.scripts.coverage.unused_kb >= 500 AND m.scripts.coverage.unused_kb < 1000 THEN 1 WHEN m.scripts.coverage.unused_kb >= 1000 AND m.scripts.coverage.unused_kb < 1500 THEN 2 WHEN m.scripts.coverage.unused_kb >= 1500 AND m.scripts.coverage.unused_kb < 2000 THEN 3 WHEN m.scripts.coverage.unused_kb >= 2000 AND m.scripts.coverage.unused_kb < 2500 THEN 4 WHEN m.scripts.coverage.unused_kb >= 2500 THEN 5 END AS bucket_idx, COUNT(*) AS n,
            quantile_disc(crux."all".inp, 0.5) AS median,
            COUNT(*) FILTER (WHERE crux."all".inp IS NOT NULL AND crux."all".inp <= 200) * 1.0 / NULLIF(COUNT(*) FILTER (WHERE crux."all".inp IS NOT NULL), 0) AS good_pct
            FROM sites WHERE m.scripts.coverage.unused_kb IS NOT NULL GROUP BY bucket_idx;
JSON file lookups (4)
20260625/meta.json 0.04 ms
20260625/types.json 0.85 ms
20260625/loaf-scripts.json 0.49 ms
20260625/menu.json 0.18 ms