# Consumer citation pilot — 9 September 2026 The owner replaced the proposed API study with existing ChatGPT and Claude subscriptions before any API collection. API spend: $0. Subscription fees and ordinary website hosting are not counted as zero-cost infrastructure. ## Scope and collection Twelve fixed unbranded buying questions, two per category (apparel, home, beauty, supplements, pet, food), two fresh conversations per platform: 48 retained answers. Exact questions and the US-English/web-search suffix are in `consumer-protocol.json`; its prompt hash was saved before submission. ChatGPT used temporary chats with High effort (underlying model not exposed); Claude used incognito chats with displayed Opus 5 / High. Both were accessed through the owner's existing browser subscriptions. Search was requested; visible links are the measured output, not a verified log of retrieval calls. Account, IP location, platform changes and personalization were not controlled. The browser restarted during collection. Five confirmed first-pass ChatGPT answers had not been archived and were lost; the same five questions were resubmitted. One additional Claude submission before the restart could not be confirmed. These are additional attempts outside the 48 retained records, not zero-link answers. No answer was selected for favorable citation results. Collection proceeded in two passes with both platforms interleaved by category; this was not a randomized experiment. A single Citelift-operated observer collected and processed the records; there was no independent double coding. ## Visible URL analysis `scripts/research/consumer_citations.py` runs entirely offline. It reads saved answer text and visible text-anchor destinations from the conversation's main content. It excludes blank/image-only anchors and platform help/privacy links. Collapsed `+N` citation groups are not expanded. We therefore describe these as **visible text-link URLs**, not all citations or exhaustive sources. Normalization removes fragments and utm_*, gclid and fbclid query parameters, then deduplicates URLs within each answer. Other paths/query parameters and http/https variants remain distinct. Domain counts remove www. but preserve other subdomains; they are host counts, not registrable-domain or business counts. One URL appearing in two answers produces two answer–URL occurrences. For each prompt/platform pair, Jaccard overlap = shared URL count / combined unique URL count. Zero means no shared observed URLs; one means identical observed URL sets. The reported mean gives equal weight to each of twelve prompt pairs per platform. It is not a percent of sources retained, a citation accuracy measure, or evidence that one platform is better. Different interface citation grouping limits comparisons between platforms. Public files contain exact prompts, run timestamps and archive hashes, observed URLs/labels, per-prompt overlap and aggregate counts. Raw answer text remains private to avoid republishing full third-party/model passages; hashes identify archives but do not make the raw collection independently reproducible. A new run can produce different answers. Link destinations and nearby claims were not systematically audited; a selected Sunspel product-page example was opened and checked for its linen composition and product details. Observed links must not be interpreted as endorsements or verified claims. ## Interpretation and disclosure This is a small exploratory convenience sample funded and published by Citelift, which sells content and visibility software. Automated browser collection and deterministic analysis were assisted by Codex. It does not test Citelift's effects, sales, rankings, citation uplift or platform market share. There is no completed Shopify store cohort: the separate 36-store candidate list remains unqualified. No source-type distribution, universal benchmark or causal conclusion is supported. No outreach has been sent. Rebuild from authorized private archives, from the repository root: ```sh python3 scripts/research/consumer_citations.py \ --raw-dir /path/to/private/consumer-2026-09-09 \ --output app/public/resources/consumer-citation-pilot-2026-09-09 \ --require-complete ```