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: 33.3 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: 323.2 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: 259.6 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".lcp, 0.5) AS median,
            COUNT(*) FILTER (WHERE crux."all".lcp IS NOT NULL AND crux."all".lcp <= 2500) * 1.0 / NULLIF(COUNT(*) FILTER (WHERE crux."all".lcp 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.61 ms
20260625/loaf-scripts.json 2.40 ms
20260625/menu.json 0.22 ms