# Changelog

## v1.2 (2026-10-12)

**Field data correction.** The stores, the lab data and the row counts are the same as in v1.1. This release fixes how the CrUX field data was described and used, and adds whole-store field data for mobile and desktop.

### What v1.1 got wrong
- The `crux_*` columns were documented as origin-level, meaning the whole store. They are the field data PageSpeed Insights (PSI) returned with the desktop homepage test: homepage URL data for 1,065 stores, and whole-store fallback data for the other 468.
- The README's "All 3 Good" figure counted stores whose PSI overall category was FAST. That category is the worst of five metrics, First Contentful Paint and Time to First Byte included, so it is not Google's Core Web Vitals assessment. On the desktop homepage data it gave 68% of stores. Google's rule on the same data gives 71% (1,094 of 1,533).
- The per-metric rates computed from the v1.1 columns (LCP 86%, CLS 85%, INP 98%, with 11% of stores lacking INP) were desktop homepage figures. Our articles set the LCP and CLS rates against mobile lab results, for example 1% passing LCP in the mobile lab against 86% in the field. Lab and field comparisons now use the same device.

### Changes
- Renamed the five v1.1 field data columns:
  - `crux_available` to `crux_homepage_desktop_available`
  - `crux_overall_category` to `crux_homepage_desktop_overall_category`
  - `crux_lcp_p75_ms` to `crux_homepage_desktop_lcp_p75_ms`
  - `crux_cls_p75` to `crux_homepage_desktop_cls_p75`
  - `crux_inp_p75_ms` to `crux_homepage_desktop_inp_p75_ms`
- Added `crux_homepage_desktop_origin_fallback`, true for the 468 stores where PSI returned whole-store data in place of homepage data
- Added whole-store field data per device from PSI `originLoadingExperience`: `crux_origin_mobile_available`, `crux_origin_mobile_lcp_p75_ms`, `crux_origin_mobile_cls_p75`, `crux_origin_mobile_inp_p75_ms`, and the same four columns for desktop
- Added `crux_origin_mobile_cwv_pass` and `crux_origin_desktop_cwv_pass`, computed with Google's rule: p75 LCP ≤ 2,500 ms, INP ≤ 200 ms and CLS ≤ 0.1, all inclusive. Without an INP value, LCP and CLS decide. Without an LCP or CLS value, or without whole-store data, the cell is blank (not assessable)
- The new columns sit with the renamed ones, after `crux_homepage_desktop_inp_p75_ms`, in the summary and run-level files (public and internal)
- `benchmark_version` is 1.2 in every file, and `benchmark_release_date` is 2026-10-12 in the summary and run-level files. Every other value is identical to v1.1
- Added `run_number` to the data dictionary, where it was missing
- Rewrote the CrUX sections of the README, data dictionary and metadata

### New Core Web Vitals figures (whole store)
- Passing Core Web Vitals: 81% of stores on mobile (1,242 of 1,533) and 77% on desktop (1,186 of 1,533)
- LCP good: 91% on mobile, 94% on desktop
- CLS good: 91% on mobile, 82% on desktop
- INP good: 95% on mobile, 99% on desktop
- About 7% of stores have no INP value on each device (107 on mobile, 101 on desktop)
- These replace 68% (all three good), 86% (LCP), 85% (CLS), 98% (INP) and 11% (no INP)

The v1.1 files stay available at their original URLs.

## v1.1 (2026-04-04)

**Data enrichment release.** All metrics recalculated using median of 3 Lighthouse runs per store (v1.0 used single run). Differences are minor (under 2%) and do not affect conclusions.

- Added new **entity-level CSV** (`shopify-speed-benchmark-2026-entities-{public|internal}-v1.1.csv`) with per-store, per-page, per-strategy, per-entity third-party blocking data
  - Columns: store_id, industry, page_type, strategy, entity_name, entity_category, main_thread_time_ms, transfer_size_bytes
  - Enables reproduction of all per-service blocking time claims (GTM, Signifyd, etc.) and entity category breakdowns from companion articles
- Added `third_party_transfer_kb` column to summary and run-level datasets (third-party transfer size in KB from Lighthouse resource-summary audit)
- Added `product_count` column to summary and run-level datasets (number of products from Shopify store metadata)
- Added `third_party_main_thread_ms` column to summary and run-level datasets (total main thread time from all third-party entities, from Lighthouse third-parties-insight audit)
- Added `render_blocking_wasted_ms` column to summary and run-level datasets (total wasted time from render-blocking resources, from Lighthouse render-blocking-insight audit)
- Updated data dictionary, README, and metadata with new fields and files

## v1.0 (2026-03-24)

**Initial release.**

- 1533 stores across 9 industries
- Summary dataset (store + page_type + strategy grain)
- Run-level dataset (individual PSI test runs)
- Public (anonymized) and internal variants
- CrUX field data, Lighthouse lab metrics, theme and third-party detection
- Data collection period: March 19-24, 2026
