{
  "standard": "Instrument Disclosure Standard",
  "version": "instrument-1.1.0",
  "corpusVersion": "corpus-1.0.0",
  "metricsVersion": "citation-1.0.0",
  "reviewed": "2026-08-03",
  "note": "A fixed set of questions about how a measurement is produced. Every answer here is read from the constant that governs the behaviour, not transcribed. The form is deliberately reusable: any vendor measuring AI visibility can publish the same fields about themselves, and a field that cannot be answered with a number or a named method should be answered NOT DISCLOSED rather than with prose.",
  "sections": [
    {
      "title": "What was sampled",
      "fields": [
        {
          "question": "Which engines are sampled, by name?",
          "answer": "4: OpenAI, Anthropic, Perplexity, Google AI Mode",
          "enforcedIn": "apps/web/lib/analysis-deps.ts",
          "whyItMatters": "Counting a single vendor's several answer formats as several engines inflates coverage without adding a model. Naming them individually makes that impossible to do quietly. Google AI Mode is read through a SERP vendor rather than a model API, because Google exposes none, and that is said here rather than hidden behind a logo."
        },
        {
          "question": "How many prompts run per measurement?",
          "answer": "Up to 25, customer-editable, versioned and fingerprinted",
          "enforcedIn": "packages/providers/src/citation-budget.ts",
          "whyItMatters": "A prompt set nobody can see is a scoreboard the vendor controls. Ours is editable by the customer and fingerprinted, so a change to it is visible as a change rather than as movement."
        },
        {
          "question": "How many samples per prompt?",
          "answer": "Up to 5, with each prompt reduced to one outcome by majority",
          "enforcedIn": "packages/providers/src/citation-budget.ts",
          "whyItMatters": "Engines answer the same question differently on consecutive calls. One sample per prompt is a coin flip reported as a measurement."
        },
        {
          "question": "Is the raw answer kept?",
          "answer": "Yes. Every answer is stored verbatim as an immutable artifact and can be re-read",
          "enforcedIn": "packages/worker/src/citation-cache.ts",
          "whyItMatters": "A vendor who discards the answers cannot show you the sentence behind a number, and cannot re-derive a figure when its own rules improve. It has to ask you to trust the score."
        }
      ]
    },
    {
      "title": "How uncertainty is reported",
      "fields": [
        {
          "question": "What interval is published on a reported share, and by what method?",
          "answer": "95% Wilson score interval, on every reported share, over the prompt count",
          "enforcedIn": "packages/providers/src/citation-extract.ts",
          "whyItMatters": "A share with no interval cannot be distinguished from noise by the person reading it. Naming the method matters as much as showing the band: an unnamed interval is not checkable."
        },
        {
          "question": "Is significance tested before a change is called a change?",
          "answer": "Yes. Fisher's exact test at 95% on every before-and-after verdict",
          "enforcedIn": "packages/core/src/measured-delta.ts",
          "whyItMatters": "Without a test, every scan produces a story. A change inside the interval is reported as no measured change rather than as a small win."
        },
        {
          "question": "What is the smallest change reported on the composite score?",
          "answer": "3 points. Anything smaller is reported as no change",
          "enforcedIn": "packages/core/src/score-delta.ts",
          "whyItMatters": "A composite built from sampled parts wobbles between scans with nothing having happened. A vendor with no floor will sell you that wobble as progress."
        }
      ]
    },
    {
      "title": "What happens below the floor",
      "fields": [
        {
          "question": "What does the product do when the sample is too thin to report?",
          "answer": "It holds. No number is persisted and the surface renders NOT MEASURED with the reason",
          "enforcedIn": "packages/worker/src/citation-cache.ts",
          "whyItMatters": "This is the field that separates the category. Almost every tool renders a zero or an estimate, and a zero is indistinguishable from a finding. Holding costs a vendor the thing they most want to show."
        },
        {
          "question": "What is the minimum sample before a rate is quoted?",
          "answer": "3 answers of a kind, and 3 answers naming the brand before any framing breakdown",
          "enforcedIn": "packages/core/src/branded-share.ts, packages/core/src/answer-framing.ts",
          "whyItMatters": "A rate over two answers moves fifty points on one word, and a rate is the thing people screenshot."
        },
        {
          "question": "Is a measured zero distinguished from an absence?",
          "answer": "Yes. A measured zero renders as a solid finding; an absence renders dashed with a stated reason",
          "enforcedIn": "packages/core/src/branded-share.ts",
          "whyItMatters": "'Nobody cited you' and 'we did not look' are opposite findings that most dashboards draw identically."
        },
        {
          "question": "Is a composite ever published from partial inputs?",
          "answer": "No. Held below 5 of 7 pillars measured; the coverage ratio is shown instead",
          "enforcedIn": "packages/scoring",
          "whyItMatters": "A composite from two available pillars measures what happened to be available, not visibility."
        }
      ]
    },
    {
      "title": "Where judgment enters, and how it is bounded",
      "fields": [
        {
          "question": "Does a model judge tone, sentiment, or quality anywhere in the score?",
          "answer": "No. No reported number is produced by a model's judgment of an answer",
          "enforcedIn": "packages/core/src/answer-framing.ts",
          "whyItMatters": "A sentiment score has no denominator you can check, no span you can read, and no way to be visibly wrong. It is the easiest impressive number in this category to produce and the hardest to falsify."
        },
        {
          "question": "How is 'how you were described' decided, if not by a model?",
          "answer": "Deterministic rules over the sentence naming the brand, from 55 published terms, with the matched sentence carried on every label",
          "enforcedIn": "packages/core/src/answer-framing.ts",
          "whyItMatters": "A word list is still a judgment. The difference is that it is versioned, inspectable, and reproduces the same label on the same answer every time, and we publish the words rather than asking for trust."
        },
        {
          "question": "How is factual accuracy assessed?",
          "answer": "Against facts the OWNER supplies, never against our reading. Unchecked when no facts exist",
          "enforcedIn": "packages/providers/src/answer-accuracy.ts",
          "whyItMatters": "A vendor grading accuracy by its own judgment is marking the homework it set. Anchoring to owner ground truth means we can be shown to be wrong."
        },
        {
          "question": "Can the vendor's own URL be injected into a citation count?",
          "answer": "No. Every counted citation must trace to a source the engine returned, asserted at runtime",
          "enforcedIn": "packages/providers/src/measurement-integrity.ts",
          "whyItMatters": "This is the cheapest way to inflate a customer's headline number and the hardest for a customer to detect."
        }
      ]
    },
    {
      "title": "Whether the instrument itself is checked",
      "fields": [
        {
          "question": "Is the detector benchmarked against a labelled corpus?",
          "answer": "Yes. A labelled corpus with every fixed defect retained as a permanent regression case",
          "enforcedIn": "packages/providers/src/detector-corpus.ts",
          "whyItMatters": "A detector nobody benchmarked has an unknown error rate, and its errors run in whichever direction flatters the customer. Ours found three of its own defects before any customer did."
        },
        {
          "question": "Are the thresholds published with the file that enforces them?",
          "answer": "Yes. 16 thresholds across 4 sections, of which 2 are marked provisional",
          "enforcedIn": "packages/core/src/methodology-corpus.ts",
          "whyItMatters": "Publishing a threshold without its enforcing file is a claim. Publishing both is a commitment a reader can hold you to."
        },
        {
          "question": "What is the known error rate of your own labelling rules?",
          "answer": "5 of 6 \"hedged\" labels were wrong when read on 2026-08-10. Rules narrowed since, not re-audited. Counts, not a rate",
          "enforcedIn": "packages/core/src/answer-framing.ts",
          "whyItMatters": "This is the field a vendor has to answer against itself, and the reason most will leave it blank. A rule set with no audit does not have a low error rate, it has an unknown one. The figure is the last MEASURED one: the rules were narrowed in response to it, so treat it as an upper bound rather than a current rate, and the next audit has not happened yet."
        },
        {
          "question": "Is a provisional number labelled as provisional?",
          "answer": "Yes, in the same sentence as the value, with what would replace it",
          "enforcedIn": "packages/core/src/methodology-corpus.ts",
          "whyItMatters": "Every instrument has placeholders. The disclosure question is whether they are marked or quietly presented as measured."
        },
        {
          "question": "Does the vendor sell the remediation it grades?",
          "answer": "No. We sell measurement only, and no scan outcome is priced",
          "enforcedIn": "apps/web/lib/no-guarantees.test.ts",
          "whyItMatters": "A vendor paid to fix what it measures has no version of its scan that recommends doing nothing. This is a conflict a buyer can check on a pricing page in ten seconds."
        }
      ]
    }
  ]
}