# Endpoint specifications

AlphaCitation Research Series, Paper No. 01 · Does New Medical Evidence Change AI Treatment Answers? · Public evidence package v1.0.2

This file gathers, in one place, every rule that defines an endpoint of the study. Nothing here is newly written policy: each block is copied by the build script from the public file named above it, so it can be checked against that file. Registered text comes first; readings and coding decisions fixed later are labelled with their deviation number.

## 1. Registration status of every endpoint, analysis and readout

| Endpoint, analysis or readout | Status | Public file carrying the result |
|---|---|---|
| E1 per-engine, per-cycle count of qualifying answers (source route and text route), UAE and Singapore | Registered (§4) | `e1/easd-2026-e1.json` perEngineCycle |
| E1 latency for the seven registered readouts, own series | Registered (§4); right-censored | `e1/easd-2026-e1.json` latency |
| E1 latency for OCTANE | Post-registration (D3); exploratory | `e1/easd-2026-e1.json` latency |
| E1 latency for other EASD 2026 data (classes c and d outside the readout set) | Post-registration label; qualification itself is registered E1 | `e1/easd-2026-e1.json` latency |
| E1 readout reaching another series | Post-registration (D18) | `e1/easd-2026-e1.json` crossArm |
| E1 unverified at citation | Post-registration (D19); never counted, never negative | `e1/easd-2026-e1-ledger.json` readoutsUnverifiedAtCitation |
| E1 inspection coverage and unreadable domains | Post-registration reporting (D16) | `e1/easd-2026-e1.json` inspectionCoverage |
| E2 UAE movement against the bridged band, per engine and four engines combined | Registered rule (§4); readings I1–I3 (D16) | `analysis/easd-2026-analysis.json` e2 |
| E2 magnitude label | Registered scale; reading I2 (D16) | `analysis/easd-2026-analysis.json` e2[].magnitudeLabel |
| E2 attribution | Registered rule; reading I3 (D16) | `analysis/easd-2026-analysis.json` e2[].attribution |
| E2 Singapore average rank and competitor mention rates | Registered as descriptive (§4); reading I4 | `analysis/easd-2026-analysis.json` singaporePositioning |
| E2 Saudi Arabia | Post-registration (D10, I5); exploratory | `analysis/easd-2026-analysis.json` e2 (series saudi-t1d) |
| E2 full-precision distances and exact-cycle band | Robustness (D19); never reverses a verdict | `analysis/easd-2026-analysis.json` e2[].precision |
| E2 question-clustered 95% intervals | Robustness (D16) | `analysis/easd-2026-analysis.json` e2[].after.clusterCI95 |
| E3 UAE (registered) and Singapore (secondary) | Registered (§4); scheme decisions S1–S4 | `analysis/easd-2026-analysis.json` e3; `coding/final/easd-2026-final-coding.json` e3 |
| E3 strict sensitivity | Robustness (D16) | `analysis/easd-2026-analysis.json` e3.strictSensitivity |
| E4 UAE | Registered endpoint; quarantined (D17) | `e4/easd-2026-e4-label-audit.json`; hand-checked counts in `coding/final/easd-2026-final-coding.json` |
| E5 Singapore protocol first-line count | Registered (§4) | `analysis/easd-2026-analysis.json` e5 |
| E5 first-line with metformin | Post-registration, reported not counted (D2) | `analysis/easd-2026-analysis.json` e5[].byCode |
| E5 strict sensitivity | Robustness (D16) | `analysis/easd-2026-analysis.json` e5[].protocolFirstLineStrict |
| Saudi E3 (ten-agent set) | Post-registration (D10, D12); every code provisional | `analysis/easd-2026-analysis.json` saudi.e3NamingsByWindow |
| Saudi E3 opportunity denominator | Robustness (D16) | `analysis/easd-2026-analysis.json` saudi.opportunity |
| Saudi E3-i | Post-registration, exploratory (D12); denominator (D16) | `analysis/easd-2026-analysis.json` saudi.e3iExploratory |
| Blind second coding pass | Robustness (D16); same model family, not external validation | `second-pass/easd-2026-second-pass.json` |
| Bridge offsets and negative control | Registered design (§6); execution D11, D15 | `bridge/easd-2026-bridge.json` |
| Bridge self-check | Registered in §6; reported under D23; shown, not scored | `analysis/easd-2026-analysis.json` bridgeSelfCheck |
| Registered §5 descriptive source analyses (a)–(c) | Registered (§5); never run until D24; reported late, post-registration | `robustness/easd-2026-robustness.json` item1 |
| E2 under three readings of the band rule; cycle-level change; per-cycle view; corrected self-check | Post-registration robustness (D24) | `robustness/easd-2026-robustness.json` items 2–5; `figures/fig12-e2-band-readings.csv` |
| Brand-only naming; search rate; attribution sensitivity | Post-registration robustness (D24) | `robustness/easd-2026-robustness.json` items 6–8 |
| Saudi E3-i use context (model-coded) | Post-registration robustness (D24); same model family, not validation | `robustness/easd-2026-saudi-e3i-use-context.json`; item 9 |
| Per-answer outcome table | Post-registration robustness (D24) | `robustness/easd-2026-per-answer-outcomes.csv`; item 10 |
| E1 corrections (latency intervals, text-route miss, Singapore E3) | Post-registration robustness (D24) | `robustness/easd-2026-robustness.json` item 11 |
| Page P61 behind Claude's UAE rise | Post-registration, descriptive and post hoc (D24); not a causal estimate | `robustness/easd-2026-robustness.json` item 12; `figures/fig11-claude-cited-page.csv` |
| Human validation | Optional QA check (validation policy); not an endpoint; Part B by a single reader, the author | `validation/human-validation-protocol.md`; `validation/human-validation-results.md` |

## 2. Registered rules (protocol §2–§6 and §8, verbatim from the public protocol copy)

Source: `protocol/easd-2026-evidence-to-answer-prereg.md`. Sections 1–10 are byte-identical to the registration commit `8ee24e19` in the repository; the public copy differs only where the redaction log says so.

### Protocol §2. Series and instrument

| Series | Market frame | Prompts | Answers / engine / cycle | Cadence |
|---|---|---|---|---|
| A GLP-1 medicine (UAE) | UAE, persona `general` | 60 | ~54 scored | 4 days (cron 14:00 UTC) |
| An SGLT2 inhibitor (Singapore) | Singapore, persona `general` | 26 | ~19 scored | 4 days |

Engines and models, fixed: ChatGPT (gpt-4o-mini) · Claude (claude-haiku-4-5) · Gemini
(gemini-2.5-flash) · Perplexity (sonar). **A cycle is admitted only if:** same four models;
captures exist for ≥ 95% of its prompts; prompt set matches the series' first cycle at the rate
already recorded (UAE 57–60/60, Singapore 26/26); zero cache hits. A cycle failing any of these is
reported and excluded, never repaired.

**The instrument changed on 27 Sep (ENGINE_VERSION 4 → 5).** Sampling was pinned to a fixed
setting on three of four engines; the fourth was already pinned. Models, questions and scoring did
not change. This protocol treats the change as a measured quantity (§6), not a footnote. No
during- or after-window cycle is ever compared with a v4 figure except through §6.

### Protocol §3. Windows (UTC; the congress ran in CEST, UTC+2)

| Window | Definition | Expected cycles |
|---|---|---|
| Before, v4 | Note 04's series through the last v4 cycle | UAE 13 (22 Aug – 25 Sep) · SG 15 (22 Aug – 26 Sep) |
| Before, v5 | v5 cycles completing before 28 Sep 06:00 | UAE 27 Sep · SG 27 Sep (**excluded**: 17/26 captured) |
| During | 28 Sep 06:00 – 2 Oct 22:00 | UAE 29 Sep · SG 2 Oct |
| **After** | cycles starting after 2 Oct 22:00 and completing by **11 Oct 23:59** | UAE 4, 8 Oct · SG 6, 10 Oct (more if §7 cadence is approved) |

The analysis is run once, on 12 Oct, over every admitted cycle in the windows above. No cycle after
the cutoff is added to the published reading; a later cycle can only appear in a later note.

**Verified presentation times** (EASD 2026 Final Programme, fetched 2 Oct; CEST): REIMAGINE 1, LBA
11/12 (CagriSema) — Tue 29 Sep 14:45 · TRIUMPH-2 (retatrutide) — Wed 30 Sep 08:30 · CagriSema
appetite, abstract 122 — Wed 30 Sep 14:30 · ACHIEVE programme (orforglipron) — Thu 1 Oct 08:30 ·
SMARTEST (SGLT2 inhibition vs metformin, first line) — Thu 1 Oct 09:30 · ACHIEVE-4 kidney
outcomes, LBA 25 — Thu 1 Oct 15:30 · tirzepatide vs semaglutide proteomics, LBA 29 — Thu 1 Oct
15:30. **This list is the readout set.** A readout verified later is added under §9 and flagged as
post-registration in every table that uses it.

### Protocol §4. Endpoints

#### E1 — Congress penetration and latency (primary, both series)

Per engine, per cycle: the number of answers (of answers captured) that **cite** a
congress-derived source, or whose **text reports a result** of a readout in the readout set.

Congress-derived source, four classes, decided by reading the fetched page, never the domain alone:
(a) the congress's own pages, programme or abstracts; (b) a journal publication of a readout-set
trial; (c) a sponsor release dated 28 Sep or later reporting congress data; (d) news or medical
media dated 28 Sep or later reporting congress data. Every new URL in the window is classified and
entered in a ledger with its fetch date and the sentence that qualifies it. Gemini redirect links
are resolved by the `Location` header (read, not followed), as in the 29 Sep record.

**Latency** for each engine × readout: days from presentation to the first admitted cycle with ≥ 1
qualifying answer. No qualifying answer by the cutoff is reported as **not observed by day N**
(right-censored), never as "the engine ignores the congress".

#### E2 — Naming movement (primary, both series)

UAE: per engine, after-window pooled K/N of answers naming the medicine. Singapore: naming is at
the ceiling (98.7–100% in every v4 cycle), so the E2 measure there is the governed **average rank**
and the mention rates of the medicines named beside it.

**Decision rule.** A movement is declared for an engine only if its after-window pooled rate lies
outside that engine's **bridged band**: the v4 single-cycle range (UAE: Perplexity post-step
46.3–58.8%, Gemini 48.1–74.1%, ChatGPT 20.4–44.4%, Claude 40.7–55.6%, four-engine 41.2–51.2%)
shifted by the §6 v4→v5 offset for that engine, with each end widened by the offset's 95% interval.
Magnitude is labelled on the house scale: < 5pp SMALL · 5 – < 10 POTENTIALLY RELEVANT · 10 – < 15
DECISION-RELEVANT · ≥ 15 MAJOR. If §6 does not run, E2 is reported **descriptively only**, and the
note says so in those words.

**Attribution rule, fixed now.** A movement is called a *congress effect* only if, in the same
engine and window, E1 is non-zero **and** the answers carrying congress-derived sources name the
medicine at a rate different from that engine's other answers in the window. Every other
combination is reported as what it is: *movement without congress sources*, *congress sources
without movement*, or *neither*.

**What the study can detect** (95% half-width at p = 0.5): two after-window UAE cycles give
≈ 108 answers per engine, ± 9.4pp — only a MAJOR movement is detectable per engine. Seven daily
cycles give ≈ 378, ± 5.0pp — a DECISION-RELEVANT movement becomes detectable. Singapore per-engine
naming (≈ 19 per cycle) cannot resolve less than a MAJOR change on any plausible cycle count; that
is why its E2 is positioning, not naming.

#### E3 — Investigational-agent intrusion (primary, UAE; secondary, Singapore)

Per engine, per cycle, across the **whole series from 22 Aug** (so the pre-congress rate is the
comparator, on both instrument versions separately): answers naming an agent in the readout set
that was investigational in the market frame on the day of the cycle — retatrutide, CagriSema
(cagrilintide + semaglutide), and orforglipron in any market where it held no approval. Approval
status per agent per market is established from the regulator's own record before classification,
and recorded with its URL. Each naming answer is then read in full and coded:

- **Status correct** — states the agent is investigational, in trials, or not approved in the market;
- **Status absent** — names it without stating status;
- **Status wrong** — presents it as available, prescribable or approved where it is not.

The clinically material count is *status absent + status wrong in answers to a "which medicine"
question*. It is reported however small, including zero.

#### E4 — Clinical currency of efficacy claims (secondary, UAE)

Every answer that states a numeric weight-loss or glycaemic effect for the measured medicine is
coded to its trial of origin. The reference values are taken from the medicine's label and the
primary publications, fetched and recorded **before** any answer is coded, with URLs. Outcome per
answer: *matches a labelled figure* · *matches a published trial figure not on the label* ·
*matches no identifiable source* · *matches a congress-window figure*. Reported per engine per
window. This is a description of what the answers tell patients, not a judgment of any engine.

#### E5 — First-line framing (secondary, Singapore; the SMARTEST readout)

Per engine, per cycle: answers describing SGLT2 inhibition (or the measured medicine) as a
first-line option in type 2 diabetes, alternative to or ahead of metformin, coded by reading each
candidate answer in full (candidate selection by text search for *first-line / first line /
initial / instead of metformin*, then manual review). Before vs after, per engine. A rise with
SMARTEST among the sources is reportable as such; a rise without it falls under the E2 attribution
rule's wording.

### Protocol §5. Secondary, descriptive

- The Dubai clinic page (Note 04's source): Perplexity citations per cycle, continued.
- New local or regional pages drawing ≥ 10% of one engine's answers in a cycle (the 29 Sep and
  26 Sep entries continue to be tracked).
- Source-class mix per engine per window: regulator · journal · congress · sponsor · news/medical
  media · clinic · consumer/retail. Domain churn is normal (Perplexity 11–46 and Gemini 53–215 new
  domains per v4 cycle), so a new domain alone is never a finding.

### Protocol §6. The instrument bridge (requires founder approval of spend; see §7)

**Purpose:** convert the v4 band into v5 terms, so that Note 04's band can still judge the after
window. **Design:** for each series, the stored battery (the exact prompt texts of the most recent
admitted cycle), run on the same four models in **interleaved** replicates on one day: R = 3 at the
v4 setting (each engine's vendor default, exactly as the v4 request paths sent it) and R = 3 at the
v5 setting. Scored by the production scorer, unmodified.

**Estimand:** per engine, the v5 − v4 difference in naming rate, paired by prompt and pooled over
replicates, with a bootstrap 95% interval over prompts. Also reported: v4-setting run-to-run spread
(which should reproduce the v4 band's width, a check on the bridge itself) and v5 run-to-run spread.
ChatGPT's path did not change, so its offset is expected to be ≈ 0; **a ChatGPT offset whose
interval excludes 0 means the bridge measured something other than the instrument, and the bridge
is then reported as failed and not applied.** That is the bridge's built-in negative control.

The bridge is run once, between 3 and 9 Oct, and never re-run to obtain a different offset.

### Protocol §8. What is reportable as a result

All of the following are findings, decided now, so none can be dressed up or suppressed later:
congress evidence reached the answers in some engines and not others · it reached none of them by
day N · naming moved without congress sources · congress sources arrived without moving naming ·
investigational agents appeared as options, with or without their status · answers' efficacy
figures predate the congress, or match no source. **"Nothing moved, and nothing from the congress
arrived" is a complete result and will be published as one.**

## 3. Readings of the analysis rules (D16), verbatim from the analysis output

Source: `analysis/easd-2026-analysis.json` interpretations. Written before the analysis was first run, after preliminary results were visible (D16).

- **I1.** Bridged band (§4 E2): lower end = registered v4 low + the lower bound of the engine's v5−v4 offset interval; upper end = registered v4 high + the upper bound. A movement is declared when the after-window pooled rate lies outside it.
- **I2.** Magnitude (§4 E2, house scale): the after-window pooled rate minus the bridged pre-congress reference, which is the v4 pooled rate over the cycles that define the registered band (UAE Perplexity: the post-step cycles from 9 Sep, as in Note 04; every other engine: all admitted v4 cycles) plus the engine's offset. Labelled SMALL < 5pp, POTENTIALLY RELEVANT 5–<10, DECISION-RELEVANT 10–<15, MAJOR ≥ 15. The distance beyond the nearer band edge is reported beside it.
- **I3.** Attribution (§4 E2): 'name the medicine at a rate different' is tested with Fisher's exact test, two-sided, α = 0.05, on the after-window answers of that engine, split by whether the answer qualifies under E1. A congress effect requires a declared movement, E1 > 0 in that engine and window, and p < 0.05. It is a protocol-defined congress-linked movement, not a causal proof.
- **I4.** Singapore E2 (§4): no offset exists for average rank (the bridge measures naming, which is at ceiling), so Singapore positioning is descriptive only, as §4 prescribes when a bridge does not apply.
- **I5.** Saudi E2 (D10): the band is the arm's own v4 single-cycle range per engine over its 11 admitted pre-congress cycles, bridged with the Saudi offsets under I1.

## 4. Coding-scheme decisions, registered arms (S1–S11)

Source: `coding/final/easd-2026-final-coding.json` schemeDecisions. Fixed before any after-window cycle was coded (D0).

- **S1.** E3 scope follows protocol §4 exactly: an agent is in scope for a cycle only if it held no approval in the SERIES' market on the cycle date (UAE series → UAE; Singapore series → Singapore). Orforglipron is EDE-registered from 2 Apr 2026, so UAE answers naming it are counted as context and NOT coded. Status in the US or EU stated inside an answer is not scored.
- **S2.** Approval status comes only from the regulator snapshot. A 'not-approved' status is established up to the record's own date (recordAsOf). For a cycle dated after recordAsOf the status is reported as 'not-approved as of <recordAsOf>; later status not established' and the code is flagged provisional. This applies to Singapore (HSA listing of 7 Aug 2026) for every cycle.
- **S3.** E3 'status correct' requires an explicit statement in the answer that the agent is investigational, in trials, under investigation, not approved, not registered, or not authorised in the market (or generally). 'Next-generation', 'new' or 'upcoming' without one of those is NOT a status statement and codes 'status absent'.
- **S4.** A 'which medicine' question is classified from the question text by one fixed rule (lib.ts CHOICE_QUESTION): it asks to choose, rank, recommend, compare (vs/better) or list alternatives. prompt_id is never used to classify, because a prompt_id is a slot.
- **S5.** E4 codes MEAN effect figures only: a % or kg/lb change in body weight (or BMI for adolescents) and an HbA1c change in percentage points attributed to the UAE medicine. Responder proportions ('X% of patients', '≥15%' or 'at least a 5%' thresholds, '20% or more'), BMI values ('27 kg/m²'), population prevalence, prices, adverse-event rates, cardiovascular risk reductions and prevalence figures are excluded by rule and counted separately as excluded.
- **S6.** E4 attribution: a figure belongs to the nearest preceding product mention in its sentence; a product named straight after it ('20.2% with tirzepatide', '12.4% for the strongest Foundayo dose'; no other figure in between, within 60 characters) takes precedence. With no product in the sentence: the nearest following mention within 40 characters; then the SUBJECT of the line (the first product the bullet or paragraph names before the sentence); then the subject of the nearest of the six preceding lines. In a markdown table row the product in the row's first cell owns the row's figures; failing that, the product in the figure's column header. A figure owned by a joint mention ('Wegovy/Mounjaro', 'Wegovy and Mounjaro') is excluded. 'Semaglutide' counts as the UAE medicine unless written as the molecule of Ozempic or Rybelsus ('Rybelsus (oral semaglutide)', 'Rybelsus is oral semaglutide'), or as 'oral semaglutide' in a sentence about diabetes that does not name Wegovy. Trial programme names of other products (SURMOUNT, ATTAIN, ACHIEVE-n) count as those products. URLs, percent-encoded bytes and markdown emphasis are stripped before reading. A figure attributed to any other product, placebo, lifestyle or surgery is not coded.
- **S7.** E4 matching: a stated figure matches a reference value when the reference, rounded to the stated precision, equals it (14.9 → '15%', '14.9%'; not '14%'). Pounds are converted to kg and match within 0.5 kg. A range is coded endpoint by endpoint. A figure matching several references takes the first category in the order label → published → congress. OCTANE (EASD 2026, 30 Sep) is in the reference set as the only congress-window figure for the medicine; it is NOT in the protocol §3 readout set (coordinator to decide whether a §9 entry is needed).
- **S8.** E4 answer-level outcome, when an answer carries figures in more than one category: congress-window > matches no identifiable source > published not on label > labelled. Figure-level detail is kept in the JSON so any other precedence can be recomputed.
- **S9.** E4 caveat fixed in advance: an integer figure (e.g. '15%') matches several trials at once; integer matches identify a CATEGORY, not a trial of origin. Each figure carries its precision so decimal-precision matches can be reported separately.
- **S10.** E5 codes. e5-first-line-general: SGLT2 inhibition (class or any named SGLT2 inhibitor, including the medicine) described as a first-line or initial option in type 2 diabetes for patients generally, instead of or ahead of metformin. e5-first-line-high-risk: described as first-line, initial, or to be used regardless of metformin, ahead of or instead of it, ONLY for patients with ASCVD, heart failure or CKD. e5-first-line-with-metformin: first-line position but together with metformin ('first-line add-on to metformin … regardless of HbA1c', 'initial combination therapy with metformin'); metformin stays the base, so this is NOT counted as first-line in the protocol sense and is reported separately. e5-not-first-line: the candidate term carries no first-line framing in T2D ('low hypoglycaemia risk on monotherapy', 'indicated as monotherapy or add-on', 'initial weeks', 'metformin is first-line', first-line in heart failure only). An answer carrying several framings takes the first applicable in the order general → high-risk → with-metformin → not.
- **S11.** E5 reading unit: every paragraph of the answer that contains a candidate term was read in full, together with the answer's headings; the whole answer was opened where a paragraph left the framing unclear. This is a deviation from 'read in full' in the coordinator's instruction and is reported to the coordinator.

## 5. Coding-scheme decisions, Saudi arm (T1–T9; post-registration, D10, D12, D13)

Source: `coding/final/easd-2026-saudi-final-coding.json` schemeDecisions.

- **T1.** This arm was added after registration (prereg §9 D10). It is coded by the same scripts and rules as the registered arms but written to its own files, labelled post-registration, and never pooled with a registered figure. The registered outputs iterate the registered series only and are byte-identical whether or not this arm is coded.
- **T2.** E3 agent set (lib.ts T1D_AGENTS): every named molecule or product presented at EASD 2026 in a type 1 or autoimmune diabetes context, clinical or translational, that holds no marketing authorisation from FDA or EMA for any indication. Sources (EASD Final Programme session and abstract numbers) and each regulator's record: docs/evidence/easd-2026-t1d-agent-set.md, committed before any answer of this arm is coded. Teplizumab is the measured medicine and is never in the set.
- **T3.** Saudi status. The SFDA register that can be searched (the drugs list) is a POST form behind reCAPTCHA and is not submitted; the Saudi Drug Information site did not complete a TLS handshake. The SFDA list that answers a plain GET (New SFDA Drug Approvals) covers approvals from 1 Feb 2025 to 2 Feb 2026 only. An agent absent from it is therefore 'not-established' in Saudi Arabia, never inferred; by S2's rule a not-established status keeps the agent in scope and marks every code provisional. FDA and EMA records are shown beside it for the reader and never set the Saudi status.
- **T4.** S3 (what counts as a status statement) and S4 (the which-medicine rule, lib.ts CHOICE_QUESTION) apply unchanged. The clinically material count is the protocol's: status absent or wrong in a which-medicine answer.
- **T5.** Code 'not-the-agent' removes a term match that does not refer to the agent (e.g. 'BCG' meaning a consultancy, 'HDV' meaning hepatitis D virus, 'Diamyd' naming the company with no reference to its antigen therapy). Such rows are listed in the ledger and excluded from every count.
- **T6.** E3-i, EXPLORATORY and post-registration (lib.ts T1D_INDICATION_AGENTS): molecules authorised for another indication and presented at EASD 2026 as investigational in type 1 diabetes (sotagliflozin, tirzepatide, semaglutide, BCG, fenofibrate). Codes: indication-stated (the answer says the use in type 1 diabetes is off-label, not approved, investigational, or that the molecule is approved only for another condition); indication-absent (named as an option in type 1 diabetes with no such statement); indication-wrong (presented as approved or indicated for type 1 diabetes); not-a-t1d-use (named for its own indication or a non-type-1 population; not scored); not-the-agent. Exploratory material count: indication-absent or indication-wrong in a which-medicine answer.
- **T7.** E3-i sampling, fixed before coding: per window and per agent at most 60 naming answers are coded, the lowest ranks of sha256("20261005:<answer sha256>:<agent>"). Unsampled answers are counted as named and shown as NOT-SAMPLED; coded shares carry a Wilson 95% interval.
- **T8.** Non-programme context (lib.ts T1D_NON_PROGRAMME): type 1 diabetes agents verified ABSENT from the EASD 2026 programme text (zimislecel/VX-880, baricitinib, verapamil, golimumab, abatacept, ladarixin, frexalimab, otelixizumab, anti-thymocyte globulin). Naming answers are counted per engine per cycle, automatically, never coded, and no status is asserted; the count shows what answers name when they do not name the congress's agents.
- **T9.** E4 and E5 do not apply to this arm (D10). The baseline is capped at 26 Sep (D10, lib.ts BASELINE_CUTOFF_ISO). Prompts must match the first cycle at the rate already recorded (§2), which for this arm is 52 of 56 (D13): four persona-slot questions were reworded after the first cycle (24 Aug) and the 56 questions are identical from 27 Aug to 4 Oct. D12 had transcribed §2 as 54 of 56 (≥ 95%); that is not §2's rule, and it rejected every cycle after the first.

## 6. The E4 audit rule and reason codes (D17)

Source: `e4/easd-2026-e4-label-audit.json`. Rule: prereg D17: seeded random sample (seed 20261010) of 150 of the 1,082 E4 figures the script matched to a label or published value; bar 5%

- **P1**: different product, molecule or intervention
- **P2**: comparator effect attributed to the target product
- **P3**: joint or class-level figure without valid brand attribution
- **M1**: responder proportion mistaken for a mean effect
- **M2**: maximum, subgroup or illustrative result mistaken for a mean effect
- **S1**: incorrect congress-source association
- **O1**: other S5 exclusion (BMI value, price)
- **U1**: insufficient evidence to verify attribution

## 7. Post-registration robustness analyses (D24), verbatim from the public protocol copy

Every analysis below is **POST-REGISTRATION ROBUSTNESS (D24)**: computed after the results were seen, by the robustness script (not released: implementation proprietary), into the files in `robustness/`; none replaces a registered verdict. The three registered §5 descriptive analyses were registered but never run until D24 and are reported late. Source: `protocol/easd-2026-evidence-to-answer-prereg.md`, deviation D24.

**D24 — 2026-10-12, post-registration robustness analyses after the internal quality gate; three
registered §5 descriptive analyses reported late.** Four internal reviews (a claim check and three
perspective reviews, internal quality-assurance records (not published)) found gaps. A separate
script (`scripts/easd-2026-study/robustness.ts`) computes the analyses below into separate outputs
(`docs/evidence/easd-2026-robustness.md`, `docs/evidence/computed/easd-2026-robustness.json`, a per-answer
outcome table without question or answer text, and `docs/evidence/easd-2026-saudi-e3i-use-context.json`).
It first reproduces every registered count and verdict and stops on any mismatch. **No registered verdict
changes; every output is labelled post-registration robustness, and all of it was computed after the
results were seen.**
- **Registered §5, never run until now (an omission, not a choice):** (a) Perplexity citations of the Note
  04 clinic page per cycle; (b) new local or regional pages drawing ≥ 10% of one engine's answers in a
  cycle; (c) source-class mix per engine per window. Item (b) found a page first cited by Claude on 29 Sep
  (12/60), then in 19–24 of 60 Claude UAE answers in every after-window cycle: a local commercial blog post (UAE), August 2026, before the congress (typed from a read-only fetch on
  11 Oct; the company is withheld under §10 and D22). The answers that cite it repeat two of its sentences
  (152 of 164); no answer that does not cite it repeats them after 28 Sep. That echo corroborates the
  content at citation for those sentences. Claude's UAE naming in after-window answers citing the page:
  143/152 (94.1%); in those not citing it: 113/226 (50.0%), at the pre-congress level. Against each
  question's own before rate, the citing answers account for all of the extra naming. This is a
  descriptive, post hoc association, not a causal estimate.
- **E2 band-rule readings.** Under I1, the verdicts stand. Under "shift by the point offset, widen by the
  half-width", Perplexity UAE becomes a movement (+0.546pp). Under "widen by the full width", Claude UAE
  becomes no movement (−8.865pp). No other verdict changes.
- **Cycle-level change** (cycles as units, net of offset): Claude UAE +16.8pp (95% CI +7.2 to +26.4,
  z 3.43); Perplexity UAE +12.2pp (−3.0 to +27.4, z 1.57).
- **Per-cycle view** against the bridged band, with the 27 Sep cycle reported.
- **Corrected bridge self-check** (d2-adjusted for unequal n; between- vs within-day SD; v5 spreads):
  no excess between-day variation for UAE Claude (ratio 0.99); clear excess for UAE Gemini, UAE ChatGPT,
  Saudi Perplexity and Saudi Gemini. The 0.5 threshold was chosen after seeing the ratios.
- **Brand-only naming** beside the registered brand-or-molecule measure (Wegovy or semaglutide;
  Jardiance or empagliflozin; Tzield or teplizumab).
- **Search rate per engine and window**, and attribution among answers that searched.
- **Attribution sensitivity:** answers citing unverified pages excluded rather than counted as negative;
  the minimum attainable Fisher p per engine; E1 qualifying answers by question class.
- **Saudi E3-i use context** (model-coded by the same family): glycaemic, weight-management or
  unspecified. Restricted to glycaemic use, the no-status share was 68.2% before and 88.9% after.
- **E1 corrections:** latency read as an interval set by the cycle schedule; two Gemini answers that state
  the OCTANE result were missed by the text route (latency unchanged); Singapore E3 = 0 namings confirmed.
- The script reads the local Gemini redirect cache that the frozen E1 tally used. It is added to the
  freeze record with its sha256.

| D24 item (robustness JSON key) | Status as printed by the robustness output |
|---|---|
| `item1RegisteredSection5ReportedLate` | registered §5, reported late under D24 |
| `item2BandReadings` | POST-REGISTRATION ROBUSTNESS (D24) |
| `item3CycleLevelChange` | POST-REGISTRATION ROBUSTNESS (D24) |
| `item4PerCycleAgainstBridgedBand` | POST-REGISTRATION ROBUSTNESS (D24) |
| `item5CorrectedBridgeSelfCheck` | POST-REGISTRATION ROBUSTNESS (D24) |
| `item6BrandOnlyNaming` | POST-REGISTRATION ROBUSTNESS (D24) |
| `item7SearchRate` | POST-REGISTRATION ROBUSTNESS (D24) |
| `item8AttributionSensitivity` | POST-REGISTRATION ROBUSTNESS (D24) |
| `item9SaudiE3iUseContext` | MODEL-CODED SENSITIVITY by a Claude model, the same model family as the study's coders; not human coding and not validation |
| `item10PerAnswerTable` | POST-REGISTRATION ROBUSTNESS (D24) |
| `item11E1Corrections` | POST-REGISTRATION ROBUSTNESS (D24) |
| `item12PageP61` | POST-REGISTRATION, descriptive and post hoc. An association between a cited page and naming, not a causal estimate. |
