How do I set an attribution baseline before changing our content strategy?
Short answer
Capture a dated snapshot with the definitions written into it, not just the numbers. A baseline is only useful if you can reproduce it identically in six months, which means recording the attribution window, the branded regex, the influence weight, and the page-to-bucket mapping alongside the figures. Most baselines fail not because the data was wrong but because nobody can remember what the numbers meant.
What a baseline actually has to contain
Numbers alone aren't a baseline. Six months from now someone will ask why organic revenue moved, and if your definitions drifted in the meantime you'll have no way to separate a real change from a measurement change.
Record all of it:
| Component | Why it has to be frozen |
|---|---|
| Attribution window | 90 vs 180 days produces materially different revenue |
| Branded regex | A regex that grows will shrink non-brand over time artificially |
| Influence weight | 35% vs 45% changes influenced pipeline by a third |
| Page-to-bucket mapping | Reclassifying one high-traffic page shifts the whole mix |
| Channel definitions | Especially which AI sources count where |
| Data coverage | What share of contacts had a populated first-touch field |
That last row is the one teams skip and regret. If 60% of contacts had first-touch data at baseline and 90% do later, revenue will appear to grow purely from improved coverage.
The metrics worth freezing
Keep it to what you'll actually compare against, roughly a dozen figures.
Traffic and visibility. Organic sessions split by intent bucket, branded versus non-brand clicks, AI-referred sessions, citation share on your tracked prompt set, and impressions in Google's generative AI surfaces if you have access to that report.
Revenue. Sourced organic revenue, influenced pipeline with the weight stated, revenue per intent bucket, and median time from first touch to closed-won.
Content inventory. Page count per intent bucket and the share of pages cited by AI surfaces. Without this, a later change in the mix looks like a performance change.
Baseline before the change, not after it starts
The window matters. Capture at least two quarters of trailing data before the strategy shifts, because a single quarter can't separate signal from seasonality.
If the strategy change is already underway, capture what you can and label the baseline as partial. A partial baseline honestly labelled is far more useful than a reconstructed one that quietly includes the first weeks of the change.
Why the AI-search baseline has to be captured separately
AI visibility moves faster than organic rankings and is path-dependent, so a single reading is a poor baseline.
Our own state of AI search research, covering more than 22,000 answers, found that once a brand is mentioned for a specific prompt, next-observation mention probability is 83.2% on ChatGPT, 83.3% on Perplexity, and 84.2% on Google AI Mode, against roughly 10% after a miss. Presence is lumpy rather than smooth.
That's why researchers argue visibility should be measured as a distribution across runs, prompts, and time rather than as one snapshot. Your AI baseline should be an average across at least eight weekly observations, not a single week's reading.
How Analyze AI freezes a reproducible baseline
The failure mode here is human: the baseline lives in a spreadsheet, someone rebuilds it later with slightly different filters, and the comparison becomes meaningless. The fix is to make the baseline an artifact produced by a workflow rather than a document produced by a person.
Two capabilities do the work.
Exports become run artifacts. Every export node produces a downloadable file attached both to that run and to the agent's global artifact library. So a baseline run in March is retrievable in September as the exact file that was generated, not a reconstruction.
Agent self-inspection makes comparison automatic. The workflow-memory recipe returns outputs from prior successful runs of the same agent, and last-run-output returns the most recent. A comparison agent built on these reads its own history, which means the later comparison uses the identical method by construction rather than by discipline.
The baseline capture agent:
Start (manual, run once before the strategy change) → GSC Top Pages for Site and Top Keywords for Site (branded regex, trailing 2 quarters) → GA4 AI Traffic Overview → share-of-voice recipe → Citation Share → Get Visibility Events (month-over-month per provider) → funnel-coverage recipe → HubSpot Get CRM Objects (revenue by landing page and bucket) → Code (compute the twelve baseline figures, and record the definitions used as a structured block alongside them) → Excel export and DOCX export → Send Email to the team.
The comparison agent, run quarterly afterwards:
Start (schedule, quarterly) → same data nodes → workflow-memory (retrieve the baseline run) → Prompt LLM (compare current against baseline, flag any metric where the definition rather than the performance changed) → DOCX export → Send Email.

The definition-drift flag in that second agent is the whole point. Being able to say "non-brand revenue fell 8%, and none of that came from a change in how we define branded" is what makes the baseline worth having captured.
For the AI half specifically, running the baseline agent weekly for eight weeks before the change gives you the distribution rather than a point reading.

FAQ
Related answers
- What can I honestly claim from an SEO before-and-after analysis?
- How do I keep track of which site changes caused which traffic changes?
- How do I test whether an organic lift was real and not seasonal or brand-driven?
- How do I measure organic-influenced pipeline without claiming false precision?
Want a baseline you can reproduce exactly six months from now? Start a free Analyze AI trial and capture it as a run artifact.
