Evidence separation rules for SEO data
The output: a report in which every figure carries its evidence class, and an actual, an estimate, a tracked rank and a configured goal never meet in one sum.
- Topics
- Based on
- Updated
- ·
Inputs
-
Search Console actuals: clicks, impressions and average position per query and page.
-
Third-party estimates (Semrush): estimated volume, estimated traffic, estimated competitors.
-
Rank-tracker ranks (SE Ranking): one location, one device, one moment per query.
-
Analytics goals and the page inventory: which event is configured as a goal and which page serves which service.
Procedure
Name every source's evidence class
The classes are actual, estimate, tracked rank and configured goal. The class travels with the figure from column to report, and figures of different classes are not added or subtracted without the report saying so.
Keep rank and average position apart
A tracker checks one location and device at one moment. Search Console averages over all impressions. They answer different questions, and their difference is a definition, not an error.
Keep goal and outcome apart
A configured goal is a button press or a page load. A booking, a purchase or a contact is an outcome that another system confirms. The report says which one it counts.
Keep page identity and service identity apart
One service has several pages and one page serves several services. The correspondence is written as a map that the reports use; it is not inferred from the address.
Separate multi-page evidence from cannibalisation
That several pages rank for one query is an observation. Cannibalisation is a judgement that needs the query's intent and the pages' purpose. The observation is reported, the judgement argued apart.
Separate before and after from cause
A change date with the figures around it is a timeline, not an effect. The report names the confounders: season, search-engine updates, other releases.
Separate missing from zero
A query absent from a report may be filtered, sampled or below a threshold. It is recorded as missing or unavailable, never as zero.
Publish through deterministic packets
Every report is built from named inputs whose hashes are in a manifest. The composer formats and computes no score; the same manifest always gives the same report.
Outputs and how to read them
-
An evidence packet: the inputs, the manifest with hashes and a report in which every figure carries its class.
-
A glossary of the evidence classes that every workflow refers to.
-
The page-to-service map, versioned.
Failure modes
-
Tracked ranks and average positions are averaged into one figure.
-
Lost traffic is computed from a difference of estimates and reported as an actual.
-
Goals are reported as conversions, and the booking count does not match.
-
Missing queries are filled with zeros, and the trend collapses on paper.
-
A story is told around a change date with no confounders named.
Where it is used
In the governed search evidence of a large healthcare website: the rules are written into the data contracts of the evidence workflows, and every report declares its evidence classes.