{
  "experiment": "A: representation equivalence (study 3 extension)",
  "frozen_before_collection": "2026-09-28",
  "seed": 20260928,
  "sample": "The 191 domains whose homepage returned Content-Type text/markdown to the study-3 crawl of 2026-09-26 (filter identical to pipeline/md_compare.py). One page (the homepage) per domain.",
  "requests_per_domain": "Four sequential GETs of https://<domain>/: two asking for HTML (H1, H2) and two asking for Markdown (M1, M2). The order is H,M,H,M or M,H,M,H, chosen per domain by a seeded coin flip, so time-of-fetch is balanced between representations.",
  "user_agent": "UnderneathResearch/1.0 (+https://underneath.agency/research; hello@underneath.agency)",
  "accept_markdown": "text/markdown, text/html;q=0.9, */*;q=0.8",
  "accept_html": "text/html,application/xhtml+xml;q=0.9,*/*;q=0.8",
  "body_cap_bytes": 8000000,
  "representations": {
    "C0": "HTML as served, with every <script type=application/ld+json> block removed",
    "C1": "Markdown as served",
    "C2": "HTML as served, including its own JSON-LD (identical to C0 when the page has none)",
    "C3": "Markdown as served, followed by the page's own JSON-LD blocks in a fenced block labelled application/ld+json. There is no standard for JSON-LD in Markdown; this is a construction for the experiment, not a format engines are known to read."
  },
  "categories": {
    "numbers": "numeric tokens in body text, commas removed",
    "dates": "ISO dates, 'Month D, YYYY', 'D Month YYYY', 'Month YYYY', numeric M/D/YYYY",
    "prices_specs": "currency amounts and number+unit tokens (%, GB, MB, TB, GHz, ms, k, M, B, x, km, kg, lb)",
    "headings": "heading texts (HTML h1-h6; Markdown ATX and setext headings)",
    "sections": "the sequence of heading levels",
    "links": "absolute link targets, normalized with common.norm_url",
    "entities": "PROXY, not NER: capitalized multi-word phrases and all-caps acronyms of 2+ letters, plus JSON-LD Organization/Brand names",
    "claims": "PROXY, not semantic verification: body sentences of 8+ words; a sentence is kept when at least 90% of its word trigrams occur in the other representation"
  },
  "comparison_text": "HTML body = visible text of <body> after removing script, style, noscript, template, svg and iframe. Markdown body = Markdown without its front matter, with link, image and emphasis syntax reduced to text. Head metadata (HTML title and meta description vs Markdown front matter) is compared separately.",
  "stable_items": "Primary analysis compares only stable items: an HTML item counts if it is present in both H1 and H2, a Markdown item if it is present in both M1 and M2. Items that change between two requests of the same representation are dynamic content, not a representation effect. The raw (H1 vs M1) comparison is reported as a sensitivity check.",
  "coverage": "For each category and direction, coverage = share of stable items of one representation found in the other representation's normalized text (HTML->Markdown = loss; Markdown->HTML = addition).",
  "equivalence_rule": "A pair is EQUIVALENT only if, in both directions, coverage is 100% for numbers, dates, prices_specs, headings, links and entities, and at least 95% for claims (lexical-proxy tolerance). Categories with no items on either side pass. Anything less is NOT EQUIVALENT and is reported with the missing items.",
  "noise_floor": "The same checks run on H1 vs H2 and M1 vs M2 (raw items) to show how much a page differs from itself between requests.",
  "jsonld_neutrality": "For C2/C3: share of JSON-LD leaf values (strings of 3+ characters that are not URLs, and numbers) that do not occur in the HTML body text. A non-zero share means adding JSON-LD adds information, so +/- JSON-LD is not content-neutral for that page.",
  "exclusions": "A domain is excluded (and counted) if any of the four requests fails or returns 400+, if M1 or M2 is no longer text/markdown, or if H1 or H2 is not HTML.",
  "statistics": "Unit = domain (one page each). Proportions with Wilson 95% intervals; medians with percentile bootstrap 95% intervals (10,000 resamples of domains, seed above). Markdown is produced by the serving platform, so results are also reported by platform (Server header); platforms are few, so no platform-clustered interval is attempted."
}
