{
  "version": "2026.06",
  "total_points": 100,
  "categories": {
    "discoverable": {
      "points": 25,
      "description": "Can search and AI-retrieval systems access and include the page?",
      "criteria": [
        {"id": "http_crawlable_html", "points": 4, "pass_condition": "Core pages return 200 and meaningful HTML."},
        {"id": "bot_access", "points": 5, "pass_condition": "Googlebot, Bingbot, OAI-SearchBot, Claude-SearchBot or Claude-User, and PerplexityBot are not blocked where visibility is desired."},
        {"id": "index_snippet_eligibility", "points": 5, "pass_condition": "No noindex, no nosnippet, no max-snippet:0, and no core data-nosnippet."},
        {"id": "sitemap_internal_links", "points": 4, "pass_condition": "Core pages are in sitemap and have contextual internal inlinks."},
        {"id": "canonical_clarity", "points": 3, "pass_condition": "Core pages self-canonicalize or intentionally canonicalize to a stronger equivalent."},
        {"id": "rendered_core_text", "points": 2, "pass_condition": "Main content is visible without login, CAPTCHA, or image/PDF-only dependency."},
        {"id": "freshness_signals", "points": 2, "pass_condition": "Lastmod, visible modified date, or version signal exists where relevant."}
      ]
    },
    "understandable": {
      "points": 25,
      "description": "Can systems identify the entity, topic, page role, and context?",
      "criteria": [
        {"id": "title_meta_h1_alignment", "points": 4, "pass_condition": "Title, meta description, and H1 describe the same primary topic."},
        {"id": "entity_naming_stability", "points": 5, "pass_condition": "Organization, service, model, and page topic use consistent names."},
        {"id": "page_role_clarity", "points": 5, "pass_condition": "Page clearly signals whether it is a service page, benchmark, article, methodology, dataset, or template."},
        {"id": "semantic_structure", "points": 4, "pass_condition": "H2/H3 headings function as section labels; important sections have anchors."},
        {"id": "schema_entity_support", "points": 4, "pass_condition": "JSON-LD matches visible content and supports page/entity understanding."},
        {"id": "audience_location_context", "points": 3, "pass_condition": "Target audience and service/geographic context are explicit."}
      ]
    },
    "citable": {
      "points": 30,
      "description": "Is the page strong enough to quote, cite, or reuse as a source?",
      "criteria": [
        {"id": "original_data_or_method", "points": 8, "pass_condition": "Page provides first-party data, a reproducible methodology, named rubric, or original examples."},
        {"id": "claim_support", "points": 5, "pass_condition": "Important claims cite official/platform sources, dataset rows, or visible proof."},
        {"id": "self_contained_answer_blocks", "points": 5, "pass_condition": "Sections can be quoted without surrounding context."},
        {"id": "tables_charts_downloads", "points": 5, "pass_condition": "Findings are presented in HTML tables and downloadable files."},
        {"id": "author_date_version_limitations", "points": 4, "pass_condition": "Source identity, update date, version, and limitations are visible."},
        {"id": "credibility_restraint", "points": 3, "pass_condition": "No fake statistics, no guaranteed citation claims, no unsupported AI hacks."}
      ]
    },
    "routable": {
      "points": 20,
      "description": "Does the page guide users and crawlers to the right next page?",
      "criteria": [
        {"id": "clear_next_step", "points": 4, "pass_condition": "Page provides a relevant CTA without interrupting source usefulness."},
        {"id": "internal_link_routing", "points": 5, "pass_condition": "Support pages route to benchmark and Search + AI Visibility service page."},
        {"id": "breadcrumb_hub_spoke_clarity", "points": 3, "pass_condition": "Breadcrumbs and hub links clarify information architecture."},
        {"id": "proof_to_cta_placement", "points": 3, "pass_condition": "CTA appears after evidence sections, not before the page delivers value."},
        {"id": "contact_local_entity_routes", "points": 3, "pass_condition": "Contact, about, service, and location routes are visible where relevant."},
        {"id": "analytics_tracking_hooks", "points": 2, "pass_condition": "UTM/event/log tracking supports monthly measurement."}
      ]
    }
  },
  "critical_blockers": [
    {"id": "benchmark_noindex", "condition": "Core benchmark page is noindex", "rule": "Total score capped at 40."},
    {"id": "benchmark_nosnippet", "condition": "Core benchmark page is nosnippet or max-snippet:0", "rule": "Total score capped at 55."},
    {"id": "blocked_google_or_bing", "condition": "Core page blocked to Googlebot or Bingbot", "rule": "Discoverable capped at 8; total capped at 60."},
    {"id": "blocked_ai_search_bots", "condition": "Core page blocked to OAI-SearchBot, Claude-SearchBot, or PerplexityBot while claiming AI-search readiness", "rule": "Bot-access subscore is 0; total capped at 70."},
    {"id": "unsupported_benchmark_stats", "condition": "Benchmark publishes statistics with no dataset support", "rule": "Citable capped at 10; page fails publication acceptance."},
    {"id": "fake_claims", "condition": "Fake stats, fake citations, fake reviews, or unverifiable AI citation claims", "rule": "Page fails credibility review."},
    {"id": "dataset_schema_without_download", "condition": "Dataset schema exists but no dataset download exists", "rule": "Dataset schema removed; Citable loses dataset/download points."},
    {"id": "findings_hidden", "condition": "Core findings only in PDF, image, or hidden tab", "rule": "Structure-related Citable points unavailable."},
    {"id": "schema_invisible_content", "condition": "Schema describes hidden or non-existent content", "rule": "Schema fails visible-content-match check."}
  ]
}
