# AI Visibility Measurement Contract

Use this working document to make AI-visibility observations reproducible, metrics auditable, and business claims proportionate to the available evidence.

## 1. Project control

| Field | Entry |
|---|---|
| Organization / brand | |
| Contract owner | |
| Version | |
| Effective date | |
| Review date | |
| Stable trend cohort ID | |
| Exploratory cohort ID | |
| Data location | |
| Dashboard location | |
| Approval owner | |

## 2. Decisions this measurement must support

| Decision ID | Business question | Decision owner | Decision date | Required evidence | Threshold or rule |
|---|---|---|---|---|---|
| D-01 | | | | | |
| D-02 | | | | | |
| D-03 | | | | | |

Examples: expand a topic cluster, correct entity facts, improve a source page, change distribution, continue a monitoring vendor, or stop an experiment.

## 3. Measurement-layer boundary

Define which evidence belongs at each layer. Do not infer a later layer from an earlier one.

| Layer | Observation | Data source | Owner | What may be claimed |
|---|---|---|---|---|
| Generated answer | Mention, framing, recommendation, accuracy | Repeated prompt observations | | Exposure in measured sample |
| Source selection | Owned or third-party citation | Full response and cited URLs | | Source selected in measured sample |
| Site visit | Referral session and engagement | Web analytics and server evidence | | Detectable visit from classified source |
| Business outcome | Qualified conversion, pipeline, revenue | Analytics, CRM, commerce | | Outcome under named attribution model |

## 4. Entity and competitor dictionary

### Target entity

| Type | Value | Match rule | Exclusions / false positives |
|---|---|---|---|
| Official name | | Exact / case-insensitive | |
| Abbreviation | | | |
| Product | | | |
| Former name | | | |
| Owned domain | | Hostname / subdomain policy | |
| Executive or expert | | | |

### Fixed competitor set

| Competitor ID | Official name | Accepted aliases | Owned domains | Effective date | Reason included |
|---|---|---|---|---|---|
| C-01 | | | | | |
| C-02 | | | | | |
| C-03 | | | | | |

Changing the competitor set creates a new share-of-voice baseline.

## 5. Prompt cohort

| Prompt ID | Version | Exact prompt | Topic | Family | Buyer stage | Market | Language | Weight | Positive / negative control | Active |
|---|---|---|---|---|---|---|---|---:|---|---|
| P-001 | 1 | | | Definition | Awareness | | | 1 | Positive | Yes |
| P-002 | 1 | | | Problem | Awareness | | | 1 | Positive | Yes |
| P-003 | 1 | | | Comparison | Consideration | | | 1 | Positive | Yes |
| P-004 | 1 | | | Recommendation | Decision | | | 1 | Positive | Yes |
| P-005 | 1 | | | Implementation | Validation | | | 1 | Positive | Yes |
| P-006 | 1 | | | Control | | | | 1 | Negative | Yes |

### Cohort governance

- Stable cohort objective:
- Exploratory cohort objective:
- Prompt source: customer interviews / search data / sales questions / support / other
- Weighting rationale:
- Conditions for retiring a prompt:
- Rule for adding a prompt:
- Baseline break required when:

## 6. Run conditions

| Condition | Frozen value | Permitted variation | Segmentation rule |
|---|---|---|---|
| Platform | | | |
| Product surface / mode | | | |
| Visible model label | | | |
| Search-enabled state | | | |
| Country / location | | | |
| Language | | | |
| Session state | Neutral / logged-in / personalized | | |
| Conversation state | New / follow-up | | |
| Prompt order | Fixed / randomized | | |
| Repetitions per prompt | | | |
| Collection window | | | |
| Observer / automation | | | |

## 7. Response validity

Mark each response valid or excluded before applying outcome labels.

| Condition | Valid? | Reason / handling |
|---|---|---|
| Ordinary answer with no target-brand mention | Yes | Remains in denominator |
| Ordinary answer with no citations | Yes | Remains in response-rate denominators |
| Technical timeout or server error | | |
| Empty or truncated output | | |
| Refusal | | |
| Requested search mode unavailable | | |
| Wrong language or market | | |
| Duplicate capture | | |
| Obsolete prompt | | |

Collection failures must be reported separately. Never exclude ordinary non-mentions merely because they reduce the rate.

## 8. Classification rubric

### Prominence and recommendation

| Label | Definition | Positive example | Boundary / counterexample |
|---|---|---|---|
| Recommended | Explicitly suggested for the stated use case | | |
| Included | Relevant shortlist placement without strong endorsement | | |
| Referenced | Example, comparison, or source mention | | |
| Negative | Material warning or criticism | | |
| Irrelevant | Entity match does not answer the intended question | | |

### Accuracy

| Label | Definition | Required evidence |
|---|---|---|
| Accurate | Claim matches the current authoritative source within its scope | Source URL and review date |
| Outdated | Claim was previously correct but is no longer current | Old and current source |
| Unsupported | No sufficient public evidence supports the claim | Search record and reviewer note |
| Contradictory | Claim conflicts with an authoritative source | Claim excerpt and source |
| Not evaluable | Claim is subjective or evidence is unavailable | Reason |

### Sentiment

| Label | Definition |
|---|---|
| Positive | Favorable framing material to the answer |
| Neutral | Descriptive or evidentiary without material evaluation |
| Mixed | Material positive and negative framing |
| Negative | Material unfavorable framing |

### Reviewer control

| Field | Entry |
|---|---|
| Primary reviewer | |
| Second-review sample | |
| Agreement method | |
| Disagreement resolution | |
| Rubric examples location | |

## 9. Raw observation schema

Retain the original answer and displayed source URLs. Derived labels may change; raw evidence should not.

~~~text
observation_id
collected_at
collector
platform
surface_or_mode
visible_model_label
search_enabled
country
language
session_state
conversation_state
run_number
prompt_id
prompt_version
exact_prompt
valid_response
exclusion_reason
full_response
displayed_source_urls
normalized_source_urls
brand_mentioned
prominence
recommendation
owned_url_cited
competitors_mentioned
evaluable_claims
accurate_claims
accuracy_label
sentiment_label
reviewer
reviewed_at
notes
~~~

### URL normalization rules

| Rule | Decision |
|---|---|
| Lowercase hostname | |
| Remove default port | |
| Remove fragment | |
| Remove tracking parameters | |
| Trailing slash policy | |
| HTTP to HTTPS normalization | |
| Redirect resolution | |
| Canonical URL policy | |
| One URL per response or every display | |

Keep the displayed URL as evidence even when a normalized form is used for aggregation.

## 10. Metric contract

Complete every row before publishing the metric.

| Metric | Unit of analysis | Numerator | Denominator | Segments | Weighting | Exclusions | Owner |
|---|---|---|---|---|---|---|---|
| Mention rate | Response | Brand-mentioning valid responses | All valid responses | | | | |
| Prompt coverage | Prompt | Eligible prompts with one or more mentions | All eligible prompts | | | | |
| Recommendation rate | Response | Valid responses recommending brand | All valid responses | | | | |
| Owned citation response rate | Response | Valid responses with owned URL | All valid responses | | | | |
| Citation share | Normalized citation | Owned citations | All citations | | | | |
| Response-based SOV | Brand-response flag | Target-brand flags | Flags for all tracked brands | | | | |
| Accuracy rate | Evaluable claim | Accurate claims | All evaluable claims | | | | |
| AI referral qualified CVR | Session | Qualified conversions from AI referrals | Classified AI referral sessions | | | | |

### Formula reference

~~~text
Mention rate =
brand-mentioning valid responses / all valid responses × 100

Prompt coverage =
eligible prompts with at least one mention / all eligible prompts × 100

Recommendation rate =
valid responses explicitly recommending the brand / all valid responses × 100

Owned citation response rate =
valid responses with at least one owned URL / all valid responses × 100

Citation share =
normalized owned citations / all normalized citations × 100

Response-based share of voice =
target-brand response flags / response flags for all tracked brands × 100

Accuracy rate =
accurate evaluable claims / all evaluable claims × 100

AI referral qualified conversion rate =
qualified conversions from classified AI referrals / classified AI referral sessions × 100
~~~

## 11. Sample size and uncertainty

| Reported item | Value |
|---|---|
| Eligible prompts | |
| Repetitions per prompt | |
| Attempted responses | |
| Valid responses | |
| Excluded responses | |
| Exclusion reasons | |
| Collection start / end | |
| Baseline runs | |
| Observed run-to-run range | |
| Interval or noise-band method | |
| Statistical reviewer | |
| Known limitations | |

Do not invent a universal benchmark. Compare matched samples with the frozen baseline and report counts beside percentages.

## 12. Platform data map

| Platform / source | First-party metric available | Collection method | What it proves | Important limit |
|---|---|---|---|---|
| Google generative report | Impressions / clicks where available | Search Console | Owned property appeared under Google's reporting rules | Not cross-platform mentions; access and row limits apply |
| ChatGPT detectable referrals | Sessions with verified parameter or referrer | Analytics / server logs | A detectable visit occurred | Omits unclicked exposure |
| Perplexity detectable referrals | Verified referral sessions | Analytics / server logs | A detectable visit occurred | Labels can change; verify current behavior |
| Manual / vendor prompt panel | Mentions, citations, classifications | Repeated observations | What appeared in the sampled conditions | Not the universe of user impressions |
| CRM / commerce | Leads, opportunities, revenue | CRM / commerce system | Recorded business outcome | Depends on identity and attribution rules |

## 13. Analytics and referral rules

### Raw data preservation

| Field | Rule |
|---|---|
| Full referrer | |
| Source / medium | |
| Campaign parameters | |
| Original landing page | |
| Session landing page | |
| Client / user identifier | |
| Consent limitations | |
| Bot and internal traffic filter | |

### Source classification

| Rule ID | Host / parameter pattern | Classified source | Effective date | Test URL | Last verified |
|---|---|---|---|---|---|
| A-01 | utm_source equals chatgpt.com | ChatGPT | | | |
| A-02 | | | | | |
| A-03 | | | | | |

### Journey integrity checks

- [ ] Redirects preserve approved parameters.
- [ ] Cross-domain forms, checkout, and booking flows retain identity.
- [ ] Payment returns do not overwrite the original source.
- [ ] Internal referrals are excluded.
- [ ] Staging, employee, and automated test traffic are excluded.
- [ ] Consent gaps are documented.
- [ ] Classification rules have dated test evidence.

## 14. Attribution model

| Item | Definition |
|---|---|
| Primary attribution model | |
| Comparison model | |
| Lookback window | |
| Qualified conversion | |
| Qualified lead / opportunity stage | |
| Revenue definition | Created / influenced / closed-won / booked / collected |
| Currency rule | |
| Multi-touch handling | |
| Direct-visit handling | |
| Missing identity handling | |

### CRM fields

| Field | Source | Population rule | Owner |
|---|---|---|---|
| Original AI source | | | |
| Latest AI source | | | |
| AI-assisted flag | | | |
| AI landing page | | | |
| Self-reported discovery | | | |
| Qualified stage date | | | |
| Attributed pipeline | | | |
| Attributed revenue | | | |

Keep self-reported discovery separate from clickstream attribution.

## 15. Dashboard specification

| Section | Metric | Count shown? | Rate shown? | Segment | Baseline | Decision rule |
|---|---|---|---|---|---|---|
| Collection | Valid responses and failures | Yes | Yes | Platform / market | | |
| Exposure | Mentions, coverage, prominence | Yes | Yes | Topic / buyer stage | | |
| Evidence | Citation response rate, share, coverage | Yes | Yes | URL / source type | | |
| Competition | Response-based SOV | Yes | Yes | Fixed competitor set | | |
| Trust | Accuracy and sentiment | Yes | Yes | Fact type / reviewer | | |
| Google | Generative impressions / clicks | Yes | Yes | Page / country / device | | |
| Traffic | AI referral sessions / engagement | Yes | Yes | Source / landing page | | |
| Business | Leads, pipeline, revenue | Yes | Yes | Service / market / model | | |

Dashboard footer must display:

- measurement-contract version;
- cohort version;
- collection dates;
- eligible prompts, repetitions, valid responses, and exclusions;
- competitor set;
- release markers;
- known platform or methodology breaks;
- uncertainty method and limitations.

## 16. Release experiment

| Field | Entry |
|---|---|
| Experiment ID | |
| Owner | |
| Hypothesis | |
| Primary metric | |
| Guardrail metrics | |
| Changed URLs / systems | |
| Exact implementation | |
| Release date and time | |
| Baseline window | |
| Follow-up window | |
| Frozen cohort / conditions | |
| Crawl / render / index checks | |
| Analytics validation | |
| Alternative explanations | |
| Decision date | |

### Matched results

| Metric | Baseline count / denominator | Baseline rate | Follow-up count / denominator | Follow-up rate | Range / interval | Segment consistency | Interpretation |
|---|---|---:|---|---:|---|---|---|
| Mention rate | | | | | | | |
| Owned citation response rate | | | | | | | |
| SOV | | | | | | | |
| Accuracy rate | | | | | | | |
| AI referral sessions | | | | | | | |
| Qualified conversion | | | | | | | |

### Decision

- [ ] Scale
- [ ] Revise and retest
- [ ] Hold for more evidence
- [ ] Stop

Decision rationale:

## 17. Change log

| Date | Contract version | Change | Reason | Break in trend? | Approved by |
|---|---|---|---|---|---|
| | | | | | |

## 18. Decision log

| Date | Evidence reviewed | Decision | Owner | Action | Due date | Result |
|---|---|---|---|---|---|---|
| | | | | | | |

## 19. 30 / 60 / 90-day review

### Day 30

- [ ] Validate collection quality and exclusion rate.
- [ ] Resolve entity aliases and false positives.
- [ ] Confirm analytics classification and cross-domain integrity.
- [ ] Review accuracy incidents and urgent source corrections.
- [ ] Check whether the baseline has enough repeated observations.

Decision:

### Day 60

- [ ] Compare platform, topic, market, and buyer-stage segments.
- [ ] Review citation-source concentration and stale URLs.
- [ ] Compare mention, SOV, citation, referral, and conversion movements.
- [ ] Audit the first controlled release.
- [ ] Verify CRM and self-reported attribution fields.

Decision:

### Day 90

- [ ] Re-run the stable cohort under matched conditions.
- [ ] Document platform or methodology breaks.
- [ ] Evaluate pipeline and revenue using the frozen definition.
- [ ] Decide which interventions to scale, revise, hold, or stop.
- [ ] Approve the next contract version.

Decision:

## Final sign-off

| Role | Name | Decision | Date |
|---|---|---|---|
| Measurement owner | | | |
| Analytics owner | | | |
| Marketing / GEO owner | | | |
| Revenue owner | | | |

This contract documents an observation and attribution method. It does not create access to a platform's internal ranking systems, guarantee inclusion in generated answers, or prove causation without sufficient supporting evidence.
