{
  "agent_taxonomy": [
    {
      "category": "search",
      "interpretation": "Closest OpenAI signal for future ChatGPT Search discoverability.",
      "measures": "Whether a page is being fetched for OpenAI's search index and citation-surfacing systems.",
      "name": "OAI-SearchBot",
      "role": "Search indexing crawler",
      "starts_at": "2026-04-18T00:00:00.000Z"
    },
    {
      "category": "interaction",
      "interpretation": "A conversation-time demand signal, not an automatic search crawler.",
      "measures": "Whether ChatGPT opened a public page during a user-triggered retrieval action.",
      "name": "ChatGPT-User",
      "role": "Live retrieval fetcher",
      "starts_at": "2026-05-06T09:00:00.000Z"
    },
    {
      "category": "training",
      "interpretation": "Useful for crawl behavior, but not evidence that the page was retrieved for a live citation.",
      "measures": "Whether OpenAI's training crawler requested the page.",
      "name": "GPTBot",
      "role": "Training crawler",
      "starts_at": "2026-04-18T00:00:00.000Z"
    }
  ],
  "experiment_results": [
    {
      "bot_category": "interaction",
      "bot_name": "ChatGPT-User",
      "diff_pp": -0.35,
      "html_coverage_pct": 82.83,
      "html_events": 18175,
      "html_pages_seen": 936,
      "html_pages_total": 1130,
      "interpretation": "ChatGPT-User is directionally HTML-skewed on best-for pages.",
      "markdown_coverage_pct": 82.48,
      "markdown_events": 20439,
      "markdown_pages_seen": 923,
      "markdown_pages_total": 1119,
      "p_value": 0.8277,
      "page_slice": "ai-search-best-for",
      "significance": "not significant"
    },
    {
      "bot_category": "search",
      "bot_name": "OAI-SearchBot",
      "diff_pp": 0.48,
      "html_coverage_pct": 85.58,
      "html_events": 5936,
      "html_pages_seen": 967,
      "html_pages_total": 1130,
      "interpretation": "The search crawler is slightly more likely to cover Markdown-assigned best-for pages so far, but the difference is not strong enough to call.",
      "markdown_coverage_pct": 86.06,
      "markdown_events": 4640,
      "markdown_pages_seen": 963,
      "markdown_pages_total": 1119,
      "p_value": 0.7423,
      "page_slice": "ai-search-best-for",
      "significance": "not significant"
    },
    {
      "bot_category": "search",
      "bot_name": "PerplexityBot",
      "diff_pp": -0.61,
      "html_coverage_pct": 19.47,
      "html_events": 712,
      "html_pages_seen": 220,
      "html_pages_total": 1130,
      "interpretation": "PerplexityBot is directionally HTML-skewed on best-for pages.",
      "markdown_coverage_pct": 18.86,
      "markdown_events": 499,
      "markdown_pages_seen": 211,
      "markdown_pages_total": 1119,
      "p_value": 0.712,
      "page_slice": "ai-search-best-for",
      "significance": "not significant"
    },
    {
      "bot_category": "training",
      "bot_name": "ClaudeBot",
      "diff_pp": -0.09,
      "html_coverage_pct": 100.0,
      "html_events": 2160,
      "html_pages_seen": 1130,
      "html_pages_total": 1130,
      "interpretation": "ClaudeBot is directionally HTML-skewed on best-for pages.",
      "markdown_coverage_pct": 99.91,
      "markdown_events": 2118,
      "markdown_pages_seen": 1118,
      "markdown_pages_total": 1119,
      "p_value": 0.3148,
      "page_slice": "ai-search-best-for",
      "significance": "not significant"
    },
    {
      "bot_category": "training",
      "bot_name": "GPTBot",
      "diff_pp": -62.08,
      "html_coverage_pct": 67.08,
      "html_events": 1167,
      "html_pages_seen": 758,
      "html_pages_total": 1130,
      "interpretation": "GPTBot is behaving unlike the search crawler; the study reports it as a training-crawler anomaly rather than a live citation signal.",
      "markdown_coverage_pct": 5.0,
      "markdown_events": 288,
      "markdown_pages_seen": 56,
      "markdown_pages_total": 1119,
      "p_value": 0.0,
      "page_slice": "ai-search-best-for",
      "significance": "significant crawler skew"
    },
    {
      "bot_category": "interaction",
      "bot_name": "ChatGPT-User",
      "diff_pp": 0.01,
      "html_coverage_pct": 50.28,
      "html_events": 44188,
      "html_pages_seen": 2271,
      "html_pages_total": 4517,
      "interpretation": "ChatGPT-User is directionally Markdown-skewed on eligible pages.",
      "markdown_coverage_pct": 50.29,
      "markdown_events": 47370,
      "markdown_pages_seen": 2271,
      "markdown_pages_total": 4516,
      "p_value": 0.9916,
      "page_slice": "all",
      "significance": "not significant"
    },
    {
      "bot_category": "search",
      "bot_name": "OAI-SearchBot",
      "diff_pp": -0.5,
      "html_coverage_pct": 60.77,
      "html_events": 11469,
      "html_pages_seen": 2745,
      "html_pages_total": 4517,
      "interpretation": "OAI-SearchBot is directionally HTML-skewed on eligible pages.",
      "markdown_coverage_pct": 60.27,
      "markdown_events": 9110,
      "markdown_pages_seen": 2722,
      "markdown_pages_total": 4516,
      "p_value": 0.6298,
      "page_slice": "all",
      "significance": "not significant"
    },
    {
      "bot_category": "search",
      "bot_name": "PerplexityBot",
      "diff_pp": 0.71,
      "html_coverage_pct": 25.97,
      "html_events": 4790,
      "html_pages_seen": 1173,
      "html_pages_total": 4517,
      "interpretation": "PerplexityBot is directionally Markdown-skewed on eligible pages.",
      "markdown_coverage_pct": 26.68,
      "markdown_events": 4266,
      "markdown_pages_seen": 1205,
      "markdown_pages_total": 4516,
      "p_value": 0.4408,
      "page_slice": "all",
      "significance": "not significant"
    },
    {
      "bot_category": "training",
      "bot_name": "ClaudeBot",
      "diff_pp": 1.32,
      "html_coverage_pct": 72.17,
      "html_events": 14124,
      "html_pages_seen": 3260,
      "html_pages_total": 4517,
      "interpretation": "ClaudeBot is directionally Markdown-skewed on eligible pages.",
      "markdown_coverage_pct": 73.49,
      "markdown_events": 14420,
      "markdown_pages_seen": 3319,
      "markdown_pages_total": 4516,
      "p_value": 0.1577,
      "page_slice": "all",
      "significance": "directional, not significant"
    },
    {
      "bot_category": "training",
      "bot_name": "GPTBot",
      "diff_pp": -16.7,
      "html_coverage_pct": 61.37,
      "html_events": 13274,
      "html_pages_seen": 2772,
      "html_pages_total": 4517,
      "interpretation": "GPTBot is behaving unlike the search crawler; the study reports it as a training-crawler anomaly rather than a live citation signal.",
      "markdown_coverage_pct": 44.66,
      "markdown_events": 12771,
      "markdown_pages_seen": 2017,
      "markdown_pages_total": 4516,
      "p_value": 0.0,
      "page_slice": "all",
      "significance": "significant crawler skew"
    }
  ],
  "headline_metrics": {
    "best_for_html_pages": 1130,
    "best_for_markdown_pages": 1119,
    "best_for_pages": 2249,
    "chatgpt_user_live_events": 2658703,
    "chatgpt_user_live_paths": 762675,
    "eligible_events": 175786,
    "estimated_eligible_byte_savings_pct": 32.7,
    "html_events": 265142,
    "markdown_events": 87939,
    "median_markdown_smaller_pct": 75.9,
    "total_events": 353081
  },
  "legacy_routes": [
    {
      "bot_name": "ChatGPT-User",
      "events": 298,
      "path": "/ai-recommends/best-screen-sharing-software",
      "status_code": 301
    },
    {
      "bot_name": "ChatGPT-User",
      "events": 238,
      "path": "/ai-recommends/best-influencer-marketing-platform",
      "status_code": 200
    },
    {
      "bot_name": "ChatGPT-User",
      "events": 207,
      "path": "/ai-recommends/best-to-do-list-app",
      "status_code": 200
    },
    {
      "bot_name": "ChatGPT-User",
      "events": 193,
      "path": "/ai-recommends/best-note-taking-app",
      "status_code": 301
    },
    {
      "bot_name": "ChatGPT-User",
      "events": 177,
      "path": "/ai-recommends/best-note-taking-app",
      "status_code": 200
    },
    {
      "bot_name": "ChatGPT-User",
      "events": 155,
      "path": "/ai-recommends/best-website-builder-for-portfolios",
      "status_code": 200
    },
    {
      "bot_name": "ChatGPT-User",
      "events": 139,
      "path": "/ai-recommends/best-calendar-app",
      "status_code": 200
    },
    {
      "bot_name": "ChatGPT-User",
      "events": 135,
      "path": "/ai-recommends/best-website-builder-for-restaurants",
      "status_code": 301
    },
    {
      "bot_name": "ChatGPT-User",
      "events": 94,
      "path": "/ai-recommends/best-gantt-chart-software",
      "status_code": 200
    },
    {
      "bot_name": "ChatGPT-User",
      "events": 90,
      "path": "/ai-recommends/best-ai-website-builder",
      "status_code": 200
    },
    {
      "bot_name": "ChatGPT-User",
      "events": 90,
      "path": "/ai-recommends/best-screen-sharing-software",
      "status_code": 200
    },
    {
      "bot_name": "ChatGPT-User",
      "events": 84,
      "path": "/ai-recommends/best-e-commerce-platform-for-jewelry",
      "status_code": 200
    }
  ],
  "limitations": [
    "The baseline event table currently reports all bot identity as user-agent-only rather than Cloudflare verified-bot enriched.",
    "The first window did not serve ChatGPT-User as its own experiment cohort; it is shown as historical live-retrieval demand until the public launch.",
    "The experiment measures crawl and retrieval behavior, not whether a downstream AI answer ultimately cited the page.",
    "Legacy recommendation URLs are aggregated as public retrieval demand and are not presented as active experiment treatment pages."
  ],
  "live_retrieval": {
    "chatgpt_user_events": 2658703,
    "chatgpt_user_paths": 762675,
    "html_label_coverage_pct": 0.0,
    "label_balance_p_value": 1.0,
    "markdown_label_coverage_pct": 0.0,
    "top_categories": [
      {
        "category": "vpn",
        "events": 6328
      },
      {
        "category": "ai-transcription",
        "events": 6182
      },
      {
        "category": "payment-processing",
        "events": 5457
      },
      {
        "category": "ai-image",
        "events": 5062
      },
      {
        "category": "automation",
        "events": 4706
      },
      {
        "category": "expense-management",
        "events": 4694
      },
      {
        "category": "design-tools",
        "events": 4484
      },
      {
        "category": "cloud-storage",
        "events": 4245
      }
    ],
    "top_paths": [
      {
        "assignment_label": "html",
        "chatgpt_user_events": 1726,
        "gptbot_events": 9,
        "oai_searchbot_events": 4,
        "path": "/ai-recommends/ai-transcription/nonprofits"
      },
      {
        "assignment_label": "html",
        "chatgpt_user_events": 1684,
        "gptbot_events": 4,
        "oai_searchbot_events": 19,
        "path": "/ai-recommends/design-tools/restaurants"
      },
      {
        "assignment_label": "html",
        "chatgpt_user_events": 1213,
        "gptbot_events": 3,
        "oai_searchbot_events": 15,
        "path": "/ai-recommends/ai-transcription/creators"
      },
      {
        "assignment_label": "html",
        "chatgpt_user_events": 1141,
        "gptbot_events": 9,
        "oai_searchbot_events": 27,
        "path": "/ai-recommends/expense-management/startups"
      },
      {
        "assignment_label": "html",
        "chatgpt_user_events": 990,
        "gptbot_events": 0,
        "oai_searchbot_events": 16,
        "path": "/ai-recommends/payment-processing/saas-companies"
      },
      {
        "assignment_label": "html",
        "chatgpt_user_events": 896,
        "gptbot_events": 5,
        "oai_searchbot_events": 33,
        "path": "/ai-recommends/cloud-storage/creators"
      },
      {
        "assignment_label": "html",
        "chatgpt_user_events": 844,
        "gptbot_events": 3,
        "oai_searchbot_events": 23,
        "path": "/ai-recommends/expense-management/accountants"
      },
      {
        "assignment_label": "html",
        "chatgpt_user_events": 831,
        "gptbot_events": 0,
        "oai_searchbot_events": 20,
        "path": "/ai-recommends/vpn/enterprise"
      },
      {
        "assignment_label": "html",
        "chatgpt_user_events": 769,
        "gptbot_events": 1,
        "oai_searchbot_events": 23,
        "path": "/ai-recommends/payment-processing/developers"
      },
      {
        "assignment_label": "html",
        "chatgpt_user_events": 769,
        "gptbot_events": 0,
        "oai_searchbot_events": 22,
        "path": "/ai-recommends/analytics/retail"
      }
    ]
  },
  "metadata": {
    "assignment": {
      "html_pages": 4517,
      "markdown_pages": 4516,
      "markdown_percent": 49.99
    },
    "caveats": [
      "Bot identity in this baseline window is user-agent based; Cloudflare verified-bot enrichment has not yet appeared in the experiment rows.",
      "ChatGPT-User was measured as historical live-retrieval demand in the baseline and becomes a first-class interaction cohort from 2026-05-06T09:00:00Z.",
      "Coverage is page-level and randomized by canonical path, so raw request volume is reported as a secondary signal."
    ],
    "eligible_page_count": 9033,
    "experiment_id": "markdown-crawler-bots-2026-04-18",
    "generated_at": "2026-08-05T16:19:14.167723Z",
    "publish_at": "2026-05-06T09:00:00.000Z",
    "source_tables": [
      "trakkr-ai.trakkr_analytics.markdown_crawler_experiment_events",
      "trakkr-ai.trakkr_analytics.bot_visits_full",
      "https://trakkr.ai/_trakkr/md-exp/v1/manifest.json"
    ],
    "study_id": "010",
    "weekly_cadence": "Reviewed snapshots",
    "window_end": "2026-08-05T16:19:14.167723Z",
    "window_start": "2026-04-18T00:00:00.000Z"
  },
  "methodology": [
    "Eligible pages are assigned to Markdown or HTML with a deterministic hash of experiment ID and canonical path.",
    "The primary endpoint is page-level coverage: the share of assigned pages each bot reached at least once.",
    "Request counts, revisits, and transferred bytes are secondary outcomes because a small number of popular URLs can dominate raw volume.",
    "Variant comparisons use two-proportion z-tests and are reported as percentage-point differences with p-values.",
    "ChatGPT-User is separated from OAI-SearchBot because it represents user-triggered live retrieval rather than search indexing."
  ],
  "weekly_snapshots": [
    {
      "chatgpt_user_live_events": 2240653,
      "eligible_events": 169645,
      "generated_at": "2026-07-20T08:02:27.630362Z",
      "html_events": 250201,
      "markdown_events": 85122,
      "note": "Reviewed snapshot.",
      "oai_searchbot_best_for_diff_pp": 0.57,
      "week_start": "2026-07-20"
    },
    {
      "chatgpt_user_live_events": 2394121,
      "eligible_events": 174729,
      "generated_at": "2026-07-27T08:00:59.475673Z",
      "html_events": 264333,
      "markdown_events": 87406,
      "note": "Automated weekly snapshot.",
      "oai_searchbot_best_for_diff_pp": 0.48,
      "week_start": "2026-07-27"
    },
    {
      "chatgpt_user_live_events": 2585640,
      "eligible_events": 175786,
      "generated_at": "2026-08-03T08:02:30.225560Z",
      "html_events": 265133,
      "markdown_events": 87939,
      "note": "Automated weekly snapshot.",
      "oai_searchbot_best_for_diff_pp": 0.48,
      "week_start": "2026-08-03"
    },
    {
      "chatgpt_user_live_events": 2658703,
      "eligible_events": 175786,
      "generated_at": "2026-08-05T16:19:14.167723Z",
      "html_events": 265142,
      "markdown_events": 87939,
      "note": "Reviewed snapshot.",
      "oai_searchbot_best_for_diff_pp": 0.48,
      "week_start": "2026-08-05"
    }
  ]
}
