Methodology & disclosure
This site publishes three kinds of data, each with its own method. They are documented separately below because they answer different questions.
1. AI recommendation guides
Our local recommendation guides are ranked by one criterion: the frequency with which a provider was named across our sampled AI-assistant responses for that category and area. First-pick count, platform coverage, and average position are reported as supporting metrics but do not change the primary ordering.
Sampling protocol
- Platforms tested: ChatGPT (OpenAI API with web search), Perplexity (Sonar API), Google AI Overviews (via SERP retrieval). Consumer apps layer additional retrieval and personalization on top of these APIs; we run manual in-app spot checks each cycle and report disagreement rates.
- Prompt set: a fixed matrix of consumer-style questions — service type × area × intent (best / recommended / affordable / emergency / near-me / cost / who-should-I-call / reviews). The matrix is deterministic, so every measurement cycle asks the same questions.
- Responses per prompt: each prompt is sampled 3 times per platform per cycle; all metrics are computed over responses, never a single answer.
- Location context: requests carry Metro Vancouver, BC location context; language is English (en-CA).
- Session state: every API request is stateless — no chat history, no account personalization.
- Name normalization: extracted provider names are normalized (suffix stripping, fuzzy matching) and merged into a provider master list; obvious duplicates are merged manually when fuzzy matching misses them.
- Geographic validation: provider locations are checked against public listings; entities that resolve to businesses outside British Columbia (e.g. Vancouver, Washington) are excluded from BC guides.
- Ties & thresholds: providers need at least 3 mentions to be listed; ties on mention count are ordered by better average position; guides publish only where a cycle produced at least 40 sampled responses for the area.
- Failed responses: API errors are recorded and excluded from denominators; empty answers (common for AI Overviews) count as sampled responses with no mentions.
- Reproducibility: raw responses are archived with timestamps; every published figure can be recomputed from them. We do not publish the full prompt bank.
2. Provider verification (context, not ranking)
Separate from ranking order, we verify contextual provider information: business identity and location, official website, phone, service categories, and public review counts — sourced from public listings with the retrieval date recorded, and corrected on request with documentation. These fields are verification context. They are not ranking factors and do not affect order.
3. Cost guide methodology
Cost pages price one fixed, identical scenario (home size, equipment age, job scope) and are compiled entirely from public sources — we do not cold-call companies or solicit quotes. Two kinds of figures are shown, always separately and never blended: (1) published pricing that Metro Vancouver companies post on their own websites for that kind of job, and (2) homeowner-reported figures from public forums, labelled as self-reported. Every figure links to its source so you can verify it, and the headline range is drawn only from the published-pricing sources. We show the number of sources and the month compiled, and never present a range without its underlying links.
Editorial independence & paid relationships
Rankings cannot be bought. Businesses may pay for enhanced display — verified badges, expanded profiles — and any such relationship is labelled on the page. Paid features never change ranking order or ranking criteria. Measurement services we sell to businesses report the same numbers we publish; buying a report does not affect any guide.
Corrections
If you represent a listed business and believe any data point is wrong, email [email protected] with documentation and we will verify and correct it promptly.