seotools.pro Get started free

GEO Pilot Measurement Charter Template

A GEO pilot ends, the vendor shows a chart, and nobody can say if it worked. The rules were never written down, so every result can be argued either way.

This charter fixes the rules first: a testable hypothesis, a frozen query sample, a run schedule, the full cost, one sales signal and the limits.

Each field gets an owner, a source and a sign-off. The decision to continue, revise or stop is agreed before the baseline runs.

Inside: a fill-in charter, a hypothesis builder, a query and run planner, a cost and sales signal sheet, a decision gate, a CSV header and a fictional example.

Format
Editable Word .docx
Length
7 variants · ~7 pages
Price
100% free
Setup
Copy or download

Get the editable Word doc in one click.

Free · No signup · Instant download

Works withSemrushSe Ranking
UReporting & Strategy

GEO Pilot Measurement Charter Template

GEO pilot measurement charter

One page that fixes the rules before the pilot starts. Six fields, each with an owner, a source and a sign-off. Nothing gets measured that is not written here first.

Company: [brand + site] - Pilot owner: [name] - Vendor or team: [agency / tool / in-house] - Charter date: [YYYY-MM-DD]

Charter fieldWhat we commit toOwnerSource or evidenceSign-offStatus
Hypothesis[If we change X on pages Y, metric Z moves from A to B by date][name][baseline file + date][approver + date][draft / agreed]
Query sample[N buyer queries, N control queries, by intent][name][query list file + where queries came from][approver + date][status]
Run schedule[engines, runs per query, cadence, baseline and test windows][name][run log file][approver + date][status]
Costs[tool, vendor fee, internal hours, content, dev, with a ceiling][name][budget line or PO][budget holder + date][status]
Sales signal[which lead or pipeline signal counts, and where it is recorded][name][GA4 / CRM field / call notes][sales lead + date][status]
Limits[what this pilot cannot prove, in writing][name][limits list][approver + date][status]

Field detail (fill for every row)

  • Hypothesis: change [what changes], pages [URLs or page group], metric [mention / citation / cited URL count], baseline [value + date], target [value], deadline [date]
  • Query sample: [N] test queries, [N] control queries, sources [Search Console, sales calls, support tickets]
  • Engines and settings: [ChatGPT / Perplexity / Gemini / Google AI Mode], [logged out or account], location [country], language [language]
  • Runs: [N] runs per query per engine, every [week / two weeks], baseline [dates], test window [dates]
  • Cost ceiling: [total] - stop or re-approve if spend passes it
  • Sales signal: [signal] recorded in [system + field name], read by [name]
  • Limits accepted by: [name + role] on [date]

Next action

  • Pilot owner: [name] - task: write the hypothesis and get the baseline export by [date]
  • Analyst: [name] - task: freeze the query sample and the run settings by [date]
  • Budget holder: [name] - task: approve the cost ceiling or cut scope by [date]
  • Sales lead: [name] - task: add the sales signal field and brief the team by [date]
  • Approver: [name + role] - task: sign the limits and the decision gate by [date]

Completion check

  • The hypothesis names one change, one page group, one metric, a baseline, a target and a date.
  • The query list is frozen and saved, with control queries that the pilot does not touch.
  • Engines, settings and runs per query are written down before the first baseline run.
  • Costs have a ceiling and a named budget holder.
  • The sales signal lives in a real field someone reads, not in a slide.
  • Limits are signed by the person who will make the continue or stop call.
Download free template

Why it works

Your GEO pilot runs on rules signed in advance: a testable hypothesis, frozen queries, fixed runs, a cost ceiling, one sales signal and an agreed stop rule.

  • Control queries and repeated runs separate real gains from model updates and run-to-run noise.
  • One recorded sales signal ties AI visibility to leads instead of to a vendor chart.
  • Signed limits and a decision gate make the continue or stop call hard to argue later.

7 ready-to-use variants

Copy all

GEO Pilot Measurement Charter (fill-in)

When to use: One sheet for hypothesis, query sample, run schedule, costs, sales signal and limits, with owners, sources, sign-offs and a completion check.

GEO pilot measurement charter

One page that fixes the rules before the pilot starts. Six fields, each with an owner, a source and a sign-off. Nothing gets measured that is not written here first.

Company: [brand + site] - Pilot owner: [name] - Vendor or team: [agency / tool / in-house] - Charter date: [YYYY-MM-DD]

Charter fieldWhat we commit toOwnerSource or evidenceSign-offStatus
Hypothesis[If we change X on pages Y, metric Z moves from A to B by date][name][baseline file + date][approver + date][draft / agreed]
Query sample[N buyer queries, N control queries, by intent][name][query list file + where queries came from][approver + date][status]
Run schedule[engines, runs per query, cadence, baseline and test windows][name][run log file][approver + date][status]
Costs[tool, vendor fee, internal hours, content, dev, with a ceiling][name][budget line or PO][budget holder + date][status]
Sales signal[which lead or pipeline signal counts, and where it is recorded][name][GA4 / CRM field / call notes][sales lead + date][status]
Limits[what this pilot cannot prove, in writing][name][limits list][approver + date][status]

Field detail (fill for every row)

  • Hypothesis: change [what changes], pages [URLs or page group], metric [mention / citation / cited URL count], baseline [value + date], target [value], deadline [date]
  • Query sample: [N] test queries, [N] control queries, sources [Search Console, sales calls, support tickets]
  • Engines and settings: [ChatGPT / Perplexity / Gemini / Google AI Mode], [logged out or account], location [country], language [language]
  • Runs: [N] runs per query per engine, every [week / two weeks], baseline [dates], test window [dates]
  • Cost ceiling: [total] - stop or re-approve if spend passes it
  • Sales signal: [signal] recorded in [system + field name], read by [name]
  • Limits accepted by: [name + role] on [date]

Next action

  • Pilot owner: [name] - task: write the hypothesis and get the baseline export by [date]
  • Analyst: [name] - task: freeze the query sample and the run settings by [date]
  • Budget holder: [name] - task: approve the cost ceiling or cut scope by [date]
  • Sales lead: [name] - task: add the sales signal field and brief the team by [date]
  • Approver: [name + role] - task: sign the limits and the decision gate by [date]

Completion check

  • The hypothesis names one change, one page group, one metric, a baseline, a target and a date.
  • The query list is frozen and saved, with control queries that the pilot does not touch.
  • Engines, settings and runs per query are written down before the first baseline run.
  • Costs have a ceiling and a named budget holder.
  • The sales signal lives in a real field someone reads, not in a slide.
  • Limits are signed by the person who will make the continue or stop call.

Hypothesis Builder

When to use: Turn "do GEO" into one testable sentence with a change, a page group, a metric, a baseline, a target and a date.

Hypothesis builder

A pilot without a testable hypothesis ends with a debate. Write one sentence that someone can prove wrong.

If we [change] on [page group], then [metric] for [query set] moves from [baseline] to [target] by [date], measured by [method].

PartWeakTestable
ChangeDo GEOAdd a comparison table and dated pricing notes to 8 product pages
MetricMore AI visibilityCount of runs where an answer cites one of our URLs
Query setOur keywords40 frozen buyer queries, 10 frozen controls
TargetBig liftA target the approver agreed before the baseline
DateSoonEnd of the test window, written as a date

Rules for a good hypothesis

  • One change per hypothesis. If the vendor ships five changes at once, you will not know which one worked.
  • Pick a metric you can count from saved answers: brand mentioned, URL cited, or a rival named instead.
  • Set the target before the baseline runs. A target picked after the data is not a test.
  • Keep control queries that get no changes, so a model update does not look like a win.
  • Write what result would make you stop. That sentence is part of the hypothesis.

Group buyer queries by topic before you choose the page group. The Keyword Cluster Tool sorts a raw list into clusters you can map to pages.

Query Sample and Run Schedule Planner

When to use: Pick test and control queries by intent, freeze them, and fix engines, settings and runs per window.

Query sample and run schedule planner

AI answers change from run to run. The sample and the schedule decide whether a change is real or just noise.

Query sample

IntentExample patternTest queriesControl queries
Problemhow to fix [problem] in [industry][N][N]
Categorybest [category] for [buyer type][N][N]
Comparison[us] vs [rival][N][N]
Alternativesalternatives to [rival][N][N]
Brandis [us] good for [use case][N][N]
  • Source every query: [Search Console / sales calls / support tickets / keyword tool]. No queries written to flatter the vendor.
  • Freeze the list on the charter date. New queries go to the next pilot, not this one.
  • Control queries cover the same intents but target pages the pilot will not change.

Run schedule

WindowDatesWhat happens
Baseline[dates]Run every query on every engine at least twice, before any change ships
Change[dates]Ship the changes named in the hypothesis. Log the ship date per page
Test[dates]Same queries, same engines, same settings, same number of runs
Readout[date]Compare test against baseline and controls, then apply the decision gate

Fixed settings (write them once, never change them)

  • Engines: [list] - account state: [logged out / test account]
  • Location and language: [country, language] - device: [desktop / mobile]
  • Runs per query per engine per window: [N] - who runs them: [name or tool]
  • Save the full answer text, cited URLs and date for every run. Screenshots alone are hard to count.

Need a starting list? Build it with the AI Buyer Query Library Template, then log every run in the AI Visibility Repeated-Run Log.

Cost and Sales Signal Sheet

When to use: List every cost line under a ceiling and choose one sales signal you can actually record and read.

Cost and sales signal sheet

Visibility counts are not revenue. Write the full cost and the one sales signal you will read before the pilot starts.

Costs

Cost lineAmountOwnerApproved
Tool or tracker subscription[amount / month][name][yes / no]
Vendor or agency fee[amount][name][yes / no]
Internal hours (SEO, content, dev, sales)[hours x rate][name][yes / no]
Content production[amount][name][yes / no]
Total and ceiling[total / ceiling][budget holder][yes / no]

Sales signals you can actually record

  • GA4 AI Assistant channel: Google lists it as a default channel for visits from sources like ChatGPT, Gemini, Deepseek, Copilot or Grok. Google says it excludes AI Overviews and AI Mode.
  • Search Console: Google says AI Overviews and AI Mode traffic is reported in the Performance report under the Web search type, mixed with other Search clicks. A separate generative AI report shows impressions, not clicks.
  • Self-reported source: a form or call field, "How did you first hear about us?", with an AI assistant option. Field: [field name]
  • Sales call notes: reps tag calls where the buyer mentions an AI tool or an AI shortlist. Tag: [tag name]
  • Pipeline: leads and opportunities with any of the above, counted in [CRM report name]

Pick one primary signal

  • Primary signal: [signal] - baseline: [count + window] - read by: [name]
  • Secondary signals: [list] - for context only, not for the decision
  • If your sales cycle is longer than the pilot, say so in the limits and judge on leads, not closed deals.

Store the source field next to each lead so sales and marketing see the same number. CRMsoftware.pro can hold that field per contact. The AI Referral Attribution Worksheet covers the tracking setup.

Limits and Decision Gate

When to use: Sign what the pilot cannot prove, then agree the continue, revise or stop rule before results arrive.

Limits and decision gate

Write what the pilot cannot prove before anyone sees results. Then agree the rule for continue, revise or stop.

Limits to sign (keep, edit or add)

  • AI answers vary between runs of the same query. One run proves nothing.
  • Answers can change with location, language, account state and chat history.
  • Engines update models and sources without notice. Controls help, but cannot rule this out.
  • A small query sample shows direction, not a precise effect size.
  • Many AI answers send no click. Some influence never shows up in analytics.
  • Nobody can guarantee a mention or citation. Any contract that promises one needs a second look.
  • Other limits for this pilot: [list]

Decision gate (agree before the baseline)

Result at readoutDecisionWho decides
Test queries beat baseline by [target] and controls stay flat, sales signal holds or growsContinue: widen to [next page group][approver]
Test queries improve, but controls improve the same amountRevise: likely a model or market change, not our work[approver]
Visibility improves, sales signal does not moveRevise: check pages, offers and the signal itself[approver]
No change, or cost passed the ceilingStop: write up what was learned[approver]

Before the gate, check who else wins the same answers. Competitor Analysis shows rival domains, and the AI Visibility Checker shows recorded AI answers that name or link a domain.

Spreadsheet Header (CSV)

When to use: A paste-ready header row and allowed values to log every pilot run in Google Sheets or Excel.

Paste-ready spreadsheet header

Paste this row into cell A1 of Google Sheets or Excel, then split text to columns by comma. One row per query per engine per run.

pilot_id,charter_date,hypothesis_id,window,run_date,engine,account_state,location,language,query_id,query_text,intent,query_group,brand_mentioned,our_url_cited,cited_urls,rivals_named,answer_saved_at,run_by,cost_to_date,sales_signal,sales_signal_count,limit_flags,owner,next_action,notes

Allowed values

  • window: baseline, change, test
  • query_group: test, control
  • intent: problem, category, comparison, alternatives, brand
  • brand_mentioned / our_url_cited: yes, no
  • limit_flags: model_update, settings_changed, run_missed, none

Sheet tips

  • Pivot by window and query_group. The test versus control gap is the number that matters.
  • Highlight rows where settings differ from the charter. Exclude them or note them.
  • Keep cost_to_date on every readout so the cost ceiling is never a surprise.

Worked Example (fictional Pellowmere fleet software)

When to use: A filled charter and readout for an invented fleet maintenance software company and an invented GEO vendor.

Worked example: Pellowmere fleet maintenance software

Example only. Pellowmere is an invented fleet maintenance software company and Ostrevane is an invented GEO vendor. The domain, people, counts, dates and results are made up to show a filled-in charter.

Site: pellowmere.example - Pilot owner: SEO lead - Vendor: Ostrevane - Charter date: 2026-08-28 - Baseline: 2026-09-01 to 2026-09-14 - Test: 2026-10-13 to 2026-10-26

Charter fieldWhat we commit toOwnerSource or evidenceSign-offStatus
HypothesisAdding a dated comparison table and a plain spec list to 8 fleet maintenance pages lifts test runs citing a Pellowmere URL in ChatGPT and Perplexity from 22 to at least 40 of 240 by 2026-10-26SEO leadBaseline export, 2026-09-01Head of marketing, 2026-08-28Agreed
Query sample40 buyer queries, 10 controls, from Search Console and 25 sales call notesAnalystFrozen list v1Head of marketingAgreed
Run schedule2 engines, 3 runs per query per window, logged out, US EnglishAnalystRun log sheetHead of marketingAgreed
CostsTracker plan, Ostrevane fee, 60 internal hours, ceiling setSEO leadBudget line MK-114Finance leadAgreed
Sales signalDemo requests with "AI assistant" in the self-reported source fieldSales leadCRM field: first_heard_sourceSales leadAgreed
LimitsRun variance, model updates, 6 week sales cycle longer than test windowSEO leadSigned limits listHead of marketingAgreed

Readout (invented numbers)

MeasureBaselineTest
Test query runs citing a Pellowmere URL (of 240)2241
Control query runs citing a Pellowmere URL (of 60)56
Demo requests with AI assistant as source37
Spend against ceiling-Under ceiling

What the gate decided

  • Decision: continue. Test queries gained citations while controls stayed almost flat, so a model update alone was an unlikely cause.
  • Not claimed: revenue. The sales cycle is longer than the test window, so the team reported demo requests only.
  • Revised: Ostrevane had promised "top citation" in its pitch. The charter dropped that line, since nobody can guarantee it.
  • Next pilot: the same method on 10 parts inventory pages, with a fresh frozen query list.

Why this works

  • The target and the stop rule were signed before the baseline, so nobody moved the goalposts.
  • Control queries separated the team's work from engine changes.
  • One sales signal in one CRM field kept the readout honest and short.

Want a second pair of eyes on a GEO pilot plan? Book a free consultation with Anatolii Ulitovskyi, or see our SEO and GEO services.

How to use this template

  1. Write one testable hypothesis with a baseline, a target and a date.
  2. Build the query list from real buyer sources, add control queries, then freeze it.
  3. Fix engines, settings and runs per query, and run the baseline before any change ships.
  4. List every cost line, set a ceiling and name the budget holder.
  5. Choose one sales signal, add it to a real field and record its baseline.
  6. Sign the limits and the decision gate, then ship the changes and run the test window.
  7. Compare test, control and sales signal at readout and apply the gate as written.

Pro tips

  • Never judge a GEO pilot on one run. Repeat each query and compare windows, not single answers.
  • Keep control queries. They are your only defence against a model update that looks like a win.
  • Set the target before the baseline. Targets picked after the data are opinions.
  • Judge on leads if the sales cycle is longer than the pilot. Say so in the limits.
  • Strike any vendor promise of guaranteed mentions or citations from the charter.

Frequently asked questions

What is a GEO pilot measurement charter?

A one-page agreement, signed before a GEO pilot starts, that fixes the hypothesis, query sample, run schedule, costs, sales signal and limits, plus the rule for the final decision.

How many queries and runs does a GEO pilot need?

There is no official number. Use enough buyer queries to cover each intent, add controls, and run each query several times per window, since answers vary between runs.

Can Google Analytics show AI traffic?

GA4 has a default AI Assistant channel for visits from tools like ChatGPT or Gemini. Google says it excludes AI Overviews and AI Mode, which Search Console counts under Web.

Should the vendor write the charter?

The vendor can draft it, but the buyer should own the hypothesis, the query list, the sales signal and the sign-off. Otherwise the pilot grades its own homework.

What if the pilot shows more citations but no leads?

Revise, do not scale. Check the cited pages, the offer and whether the sales signal is recorded at all before you spend more.