GEO score and the Opportunities page
Everything else in CitedSpy measures what AI is saying. The Opportunities page measures what to do about it. The numbers here score web pages rather than answers.
The GEO score
GEO stands for Generative Engine Optimization. The score runs from 0 to 100 and measures how well a single page is written for AI engines to quote from.
It is the backbone of the whole section: your page gets a score, the competitor page the AI cited gets a score, and the gap between them becomes the opportunity.

The seven checks and their weights
| Check | What it looks for | Weight |
|---|---|---|
| Answer-first opener | Does the page answer the question in its first paragraph? | 22% |
| Fact density | Enough hard numbers and statistics | 20% |
| Question headings | Headings phrased as questions | 15% |
| Chunking | Sections short enough to quote cleanly | 13% |
| FAQ block | An FAQ section or FAQ schema | 10% |
| Entity coverage | Names the relevant brands and rivals | 10% |
| Freshness | How recently it was updated | 10% |
Answer-first carries the most weight because AI engines overwhelmingly quote from the opening of a page.
How the score is built
Each check is graded, converted to points, multiplied by its weight, and added up.
pass = 100 points
partial = 60 points
fail = 20 points
missing = 0 pointsGEO score = sum of (each check's weight x its points)Because the weights total 100%, the result already lands on a 0 to 100 scale.
Even a failing check earns 20 points, so the lowest realistic score is 20 rather than 0. A draft in Content Stream can only be published once it reaches 80.
The exact thresholds
| Check | Pass | Partial | Fail |
|---|---|---|---|
| Answer-first opener | 1 to 60 words | 61 to 95 | 96 or more |
| Fact density | 0.8 or above target | 0.4 to 0.8 | below 0.4 |
| Question headings | 2 or more | exactly 1 | none |
| Chunking | 320 words per section or fewer | 321 to 520 | more than 520 |
| FAQ block | present | - | absent |
| Entity coverage | 70% of names present | 40% to 70% | below 40% |
| Freshness | 90 days or fewer | 91 to 365 days | over a year |
Fact density measures against a target of roughly one statistic per 175 words. An unknown last-modified date lands in partial rather than being punished.
How an opportunity is prioritised
Base = the smaller of 20, or (competitor mentions x 4)
Gap = competitor's GEO score - your GEO score, floored at 0
Priority = the smaller of 100, or (Gap + Base)The base rewards prompts where the rival is mentioned often, maxing out once they have five or more mentions. The gap is how many GEO points their page beats yours by. If you are already ahead, the gap contributes nothing.
Worked example. A rival mentioned 3 times, their page scoring 74, yours scoring 51:
Base = smaller of (20, 3 x 4 = 12) = 12
Gap = 74 - 51 = 23
Priority = 35Quick win or project
1 or 2 fixes -> Quick win
3 or more fixes -> ProjectA "fix" is a check where the rival's page beats yours and yours is not already passing. So the label is about how many separate things need changing, not how long they take.
Off-page relevance
Third-party sites get their own score, out of 100, ranking which are worth pursuing.
Base = the smaller of 60, or (times cited x 8) + (engines citing x 10)
then add:
+ 25 if you are absent AND a rival is present
+ 10 if you are absent and no rival is either
+ 10 if it was cited within the last 14 daysThe largest single bonus, 25 points, goes to sites where a rival is present and you are not, because those are the clearest wins available. Since the base caps at 60 before bonuses, the highest realistic score is 95.
The summary tiles
| Tile | What it counts |
|---|---|
| Open opportunities | Recommendations not yet started |
| Quick wins | Open recommendations needing only 1 or 2 fixes |
| In progress / applied | Work under way or shipped |
| Verified | Changes confirmed to have moved the metric |