Summary

Mention rate tells you if a company is represented by AI.

A performance score tells you how a company is represented by AI.

If you know how a company is represented, you can better understand how to improve it.

This workflow calculates a performance score by

  1. Defining buyer-relevant prompts and success criteria,
  2. Logging responses from multiple AI models to those prompts.
  3. Using a judgement agent to classify responses and aggregate a score.

Code you can clone and run end-to-end: View the GEO audit repository.

Mention rate is the default metric to measure AI discovery, but it doesn't measure what matters. Here's how and why I use a performance score with my clients instead.

Why to use a performance score to measure AI discovery

B2B buying decisions take place in AI chat sessions.

AI chatbots are the #1 source influencing buyer shortlists, according to a survey of 1,076 B2B software buyers by G2 in March 2026.

Most companies use mention rate to measure performance in AI chats, defined as how often they appear in responses to prompts.

This is the wrong success metric.

It tells you you’re in the game (whether you’re mentioned) but not if you’re winning (whether you’re mentioned accurately and favorably).

Responses to prompts need to be analyzed to determine how a company is represented.

If you know how your company is represented, you can better understand how to improve it.

The solution is using purpose-built agents to analyze how your company is represented and derive a deterministic performance score.

This performance score can then be used as your true ‘north star’ metric to measure how your company shows up in AI responses.

How to calculate a performance score

Calculating a performance score involves three high level steps:

(1) defining tracked prompts and their success criteria

(2) storing AI responses to tracked prompts

(3) analyzing AI responses to tracked prompts.

My GEO audit system on Github has an agentic framework you can use to do this that I’ll expand on below.

Defining tracked prompts and their success criteria

The first step is where real strategic input is required.

A list of prompts that map to your buyers needs to be curated.

A human strategist should spend time curating prompts, mapping each to buyer personas and funnel stages.

AI-generated prompts are biased if used without edits. According to a study from University College London and Microsoft, LLM-generated queries tend to be more verbose than the concise ones real users write.

I use AI-generated prompts created by a research agent, but require human approval and review before prompts are used. I often spend some time making the AI-generated prompts ‘more human’.

Importantly, criteria used to measure the success of each prompt needs to be defined.

A human strategist should answer the question ‘what does success look like on this prompt’s response’ in the form of notes next to each prompt.

Example — a tracked prompt and its success criteria for Airtable

Prompt: "what's the best no-code tool for building internal apps on top of a database without hiring engineers?"

What success looks like: recommended as a no-code app-building platform in its own right. Named as one of the recommended tools, placed in the no-code database / app-builder category, not just a data storage solution.

Storing AI responses to tracked prompts

Once you have a list of prompts to track and their success criteria, the next step is logging how AI responds to each.

Firing one off prompts into chatbots manually doesn’t scale (and has its own bias from your bot’s memory and context).

An API service like DataForSEO or OpenRouter can be used.

Each prompt is programmatically routed to individual LLMs at a relatively small cost (usually less than $3 per run).

I usually use the mid-tier model from each frontier model provider (like Anthropic’s Sonnet) because I think those represent buyers and balance cost.

Here’s a script you can use to do this yourself.

Importantly, each prompt should be submitted to the same model multiple times because responses are non-deterministic and vary each time. This helps paint the full picture.

For the example prompt above, a logged store might look like this. One row per prompt / model / run, capturing the raw response text, citations, and metadata:

Provider Logged response (excerpt) Metadata…
ChatGPT For building internal apps without engineers, the strongest no-code picks are Softr, Glide, and Bubble. Most teams pair them with Airtable as the underlying database — Airtable stores your data in a spreadsheet-like interface, while Softr or Glide turn it into a usable app front-end. Date, success criteria, run # etc
Claude The best no-code app builders here are Softr, Noloco, and Retool. These let non-technical teams ship internal tools fast. You'll typically connect them to a data source like Airtable or Google Sheets, which acts as the backend your app reads from. Date, success criteria, run # etc

Analyzing AI responses to tracked prompts

Next, classification of this AI response text needs to be stored in a structured way.

Mention and citation rate are easy to calculate, just regex over the text.

Calculating a performance score is more nuanced.

Asking AI to ‘calculate a performance score’ will result in score that is sporadic and not trendable. LLMs will reason differently from run-to-run and between models.

Instead, I create a judgement agent that classifies whether the response text met a particular success criterion. And importantly, I give it an ‘out’ in the form of a partial score.

  • Meets criteria? Score = 1
  • Partially meets criteria? Score = .5
  • Does not meet criteria? Score = 0

Then these scores can be aggregated across responses to yield a more stable and trendable score. It’s still not perfect, but I’ve found it works well.

Importantly, I also have the scoring agent write its rationale for the score.

This context is important for other agents that analyze performance data and propose optimizations. It allows them to understand why a company is scoring low.

Applying this to the two logged responses above, scored against the success criteria from the Airtable example prompt:

Prompt Response text Success criterion Score Rationale
what's the best no-code tool for building internal apps on top of a database without hiring engineers? For building internal apps without engineers, the strongest no-code picks are Softr, Glide, and Bubble. Most teams pair them with Airtable as the underlying database — Airtable stores your data in a spreadsheet-like interface, while Softr or Glide turn it into a usable app front-end. Airtable is placed in the no-code database / app builder category, alongside peers like Notion, Coda, or Baserow. 0 Airtable is framed as the spreadsheet-like data source Softr and Glide sit on, not recommended as the app-building tool itself.

How to use a performance score

Prompt performance scores improve your other agents that plan content and site updates. It gives those agents a clean signal on gaps.

Without it, a gap is just a prompt where you don’t show up. With it, a gap is prompt that under-performs with your buyers in specific ways.

The time invested building this scoring system doesn’t just pay out in a dashboard. It gives an entire stack of agents structured data and context to improve performance.