# SingRank AI citation study 2026: method notes and deviations

Collected 2 October 2026. Companion to https://singrank.com/blog/ai-answer-sources-singapore-2026/ and https://singrank.com/data/singrank-ai-citation-study-2026.csv. No business is named in this file or in the CSV.

## Plan (written before the first prompt was run)

- 30 fixed English prompts in 4 groups: hiring 10, price 5, how-to 10, data 5. Perplexity runs all 30; ChatGPT runs a pre-chosen 10. One run per prompt per engine.
- Citation = an external link the engine shows as a source for the answer, with query strings and #fragments removed and the engine's own domains excluded.
- Each cited website is assigned one of nine source types by its address and page path: agency site; agency-written "best agencies" list; directory or listing site; press release republished on a news site; news and trade media; Reddit and forums; official and platform documentation; LinkedIn, YouTube and other social posts; other (software vendors, statistics publishers).

## Deviations

1. **Perplexity ran in a logged-in Pro account**, not logged out. The engine chose its own mode. Account personalisation appears to have been on: 5 of 30 answers came back in Indonesian, and some answers used examples that were not in the prompt. Settings were not changed. Perplexity never named SingRank.
2. **Perplexity citation unit = the answer's full sources panel** (the "Links" tab), not only the visible inline chips. Most panels held 10 sources; one held 9 and one 20.
3. **Tab throttling.** Background tabs stopped rendering, so each finished thread was reloaded and captured in full. Content unchanged; only the capture time moved.
4. **ChatGPT ran in Temporary chat.** The first run of the first prompt was personalised (memory on) and named SingRank; that answer mentioned "dedicated searches for SingRank". It is kept in the CSV with in_main_tally=n and excluded from every count. Every later ChatGPT run used the "Unpersonalized" option, and the first prompt was re-run that way.
5. **ChatGPT citation unit = the first link of each visible citation chip**, plus inline link cards. Hidden "+N" sources were not opened, so ChatGPT counts are a lower bound. Place cards (business name and rating) are not counted as sources; agency names in place cards are counted as named agencies.
6. **ChatGPT input.** Typed input was often dropped, so from the 11th prompt on, the prompt was inserted by script and the engine's own Send button clicked. Work mode was never used.
7. One ChatGPT prompt returned only a clarifying question (no search, no citations) and was not followed up. One ChatGPT prompt was answered without a search.
8. **Classification.** An agency page whose path reads like a best/top/leading agencies ranking counts as an agency-written list. Independent best-of listing sites count as directories. Software and SEO-tool vendors' blogs and statistics publishers count as other. LinkedIn counts as social. The hand-check used the address and path only; cited pages were not opened.
9. **SingRank's off-site posts.** Two price answers on Perplexity listed LinkedIn posts from a SingRank account in their sources. They are counted as social, not as singrank.com.
10. **Run times.** The capture machine runs on UTC+7; time labels in the raw notes may be UTC+7 rather than Singapore time. All runs fall on 2 October 2026 either way.
11. Every answer recorded as naming SingRank was hand-checked against the saved answer text.

## Public file rules

- One row per citation; runs with no citation have one row with citation_no 0.
- Agency addresses are replaced by agency_site_#n, directory addresses by directory_site_#n and other addresses by other_site_#n, numbered by first appearance. Platform, media, press-syndication, documentation, forum and social addresses are kept. No page paths.
- Agency names in answers are counted (n_agencies_named), not published.

## Reproduce the headline figures from the CSV

Filter in_main_tally = y and citation_no > 0: 341 rows. Rows with source_type agency_own_site or listicle_by_agency: 194. Rows where answer_names_agencies = y: 119.
