{
  "schemaVersion": 1,
  "datasetId": "cpu-performance-demo-rum-export-2026-06-06",
  "title": "CPU tier RUM export schema for the tier distribution simulator",
  "generatedAt": "2026-06-06T17:10:00Z",
  "provenance": {
    "sourceKind": "checked-in first-party RUM export example",
    "source": "An anonymized export in the same aggregate shape a site would produce from first-party cpu_tier beacons. It is checked in so every preset used by the demo is inspectable and citeable.",
    "query": "SELECT audience_segment, cpu_tier, COUNT(*) AS visits FROM app.rum_cpu_tier_beacons WHERE event_date BETWEEN @start_date AND @end_date AND cpu_tier BETWEEN 0 AND 4 GROUP BY audience_segment, cpu_tier ORDER BY audience_segment, cpu_tier;",
    "limitations": [
      "Chrome UX Report BigQuery documents public RUM aggregation patterns, but it does not currently publish navigator.cpuPerformance tier histograms.",
      "Do not treat this bundled export as Chrome-wide market share. Replace it with your own first-party export before making product rollout decisions.",
      "Rows are aggregate counts only; no raw device model, CPU model, or user identifier is retained."
    ],
    "citedSources": [
      {
        "label": "CPU Performance API draft",
        "url": "https://wicg.github.io/cpu-performance/",
        "note": "Defines navigator.cpuPerformance as a secure-context unsigned short tier, with 0 for unknown and 1-4 for current tiers."
      },
      {
        "label": "Chrome UX Report BigQuery documentation",
        "url": "https://developer.chrome.com/docs/crux/bigquery/",
        "note": "Documents public RUM aggregation, monthly exports, country/device dimensions, and materialized summary tables."
      },
      {
        "label": "Device Memory API bucketing background",
        "url": "https://developer.chrome.com/blog/device-memory",
        "note": "Explains the privacy model for coarse device capability buckets."
      }
    ]
  },
  "exports": [
    {
      "id": "demo-global",
      "label": "Sample RUM export: global app",
      "description": "A balanced demo-app export for showing how audience histograms drive default bundle decisions.",
      "startDate": "2026-05-01",
      "endDate": "2026-05-31",
      "sampleSize": 240000,
      "rows": [
        { "tier": 0, "count": 9600 },
        { "tier": 1, "count": 28800 },
        { "tier": 2, "count": 76800 },
        { "tier": 3, "count": 76800 },
        { "tier": 4, "count": 48000 }
      ]
    },
    {
      "id": "demo-mobile-heavy",
      "label": "Sample RUM export: mobile-heavy app",
      "description": "A lower-end demo export that keeps heavy features gated until an explicit high-quality action.",
      "startDate": "2026-05-01",
      "endDate": "2026-05-31",
      "sampleSize": 180000,
      "rows": [
        { "tier": 0, "count": 32400 },
        { "tier": 1, "count": 55800 },
        { "tier": 2, "count": 55800 },
        { "tier": 3, "count": 27000 },
        { "tier": 4, "count": 9000 }
      ]
    },
    {
      "id": "demo-enterprise",
      "label": "Sample RUM export: managed fleet",
      "description": "A managed-device demo export where balanced and heavy code paths cover most sessions.",
      "startDate": "2026-05-01",
      "endDate": "2026-05-31",
      "sampleSize": 125000,
      "rows": [
        { "tier": 0, "count": 2500 },
        { "tier": 1, "count": 10000 },
        { "tier": 2, "count": 37500 },
        { "tier": 3, "count": 50000 },
        { "tier": 4, "count": 25000 }
      ]
    },
    {
      "id": "demo-kiosk",
      "label": "Sample RUM export: kiosk / POS",
      "description": "A locked-down-device demo export where low-end tiers dominate and the heavy path should stay opt-in.",
      "startDate": "2026-05-01",
      "endDate": "2026-05-31",
      "sampleSize": 60000,
      "rows": [
        { "tier": 0, "count": 24000 },
        { "tier": 1, "count": 24000 },
        { "tier": 2, "count": 9000 },
        { "tier": 3, "count": 2400 },
        { "tier": 4, "count": 600 }
      ]
    }
  ]
}
