A competitor analysis example, run end to end, with the inputs and the output shown
Not a description of a method. A worked run on one query, showing the exact inputs, the gap ledger that came back, and which gaps got struck out.
- Works in
- ChatGPT, Claude, Gemini
- You need
- The full text of one competitor page · The full text of your page targeting the same query · The one query they both target
- Written for
- competitor analysis example
Scored by our own engine
This page, run through the audit we sell. Measured 4 August 2026.

Most competitor analysis pages describe a method. This one shows a run. Everything below came out of the prompt above on a made up company, so nothing here is a claim about a real business, but the inputs and the output shape are exactly what you will get. The useful part turned out to be the gaps that got struck out.
The inputs that went in
Three things, pasted as text, nothing else. The query was pharmacy rota software. The business line was “we sell rota software to independent UK pharmacy groups of two to twenty branches”. Then the full visible text of a competitor page and the full visible text of ours, headings intact, navigation and footers removed.
No analytics, no rank tracker export, no backlink file. Not because those do not matter, but because none of them are readable by a model from a pasted page, and pretending otherwise is where these prompts usually go wrong.
The ledger that came back
Eight gaps, four lines each. Here are the first three, unedited, plus the closing line.
GAP 1: They name the pharmacy systems they integrate with. We do not.
EVIDENCE: "Two way sync with ProScript Connect, Cegedim and Titan" / absent from my page
COST TO CLOSE: a paragraph
SKIP IF: our integrations are still in beta and naming them creates support load
GAP 2: They publish a price. We ask for a call.
EVIDENCE: "From GBP 39 per branch per month" / "Book a demo to discuss pricing"
COST TO CLOSE: a company decision
SKIP IF: branch counts vary enough that one headline price would misprice most deals
GAP 3: They name the specific rule the rota has to satisfy. We say "stay compliant".
EVIDENCE: "checked against the responsible pharmacist requirements before publishing" / "stay compliant"
COST TO CLOSE: a paragraph
SKIP IF: nothing
CLOSE FIRST: 3, because it costs a paragraph and changes what the page is about.
What we did with it
Struck four of the eight, which is the step nobody writes up. Two needed claims that were not true yet. One was a company decision about pricing that a page cannot make. One had a skip condition that already described the business exactly.
That left three, and one of them was work for the afternoon. Gap 3 is the shape worth learning to spot: the competitor names a specific thing, we gestured at the category, and the fix was one honest paragraph rather than a rewrite. Specific beats thorough almost every time, which is also why the readiness check rewards it.
If you want the same job split into stages with an input gate on each, use the four pass version. Then run the edited page through the AI content readiness check and work back through the analysis prompts.
You are a competitive analyst. I am giving you my page and one competitor
page that target the same query. Produce a ledger of gaps: the things their
page establishes that mine does not.
You cannot see rankings, backlinks, traffic, revenue, ad spend or a live
results page for either site. Never assert or estimate any of them. If a
gap depends on one, do not write it.
Output as a numbered ledger. Every gap is exactly four labelled lines, in
this order, with no prose between gaps:
GAP n: one sentence naming what they establish that we do not.
EVIDENCE: a verbatim quote from their page in quote marks, then either a
verbatim quote from mine or the words "absent from my page".
COST TO CLOSE: exactly one of these four, and nothing else, with no
explanation: a paragraph, a page, a feature, a company decision.
SKIP IF: the condition under which closing this gap would be the wrong
call for my business.
Rules you must follow:
1. Eight gaps maximum. If you find more, keep the eight with the smallest
cost and the largest gap, and say how many you dropped.
2. Every EVIDENCE line quotes their page word for word. If you cannot quote
it, it is not a gap and you drop it.
3. "Longer", "more comprehensive", "better structured", "more authoritative"
and anything else about volume or tone is not a gap. Name the specific
thing their page contains.
4. Every gap needs a SKIP IF that is genuinely plausible for a real
business. If you cannot think of one, the gap is not real. Drop it, or
write "SKIP IF: nothing" only when you are certain.
5. Do not write replacement copy. Describe the gap and stop.
Close with one line and write nothing after it:
CLOSE FIRST: the gap number, and the one reason.
The query both pages target: [THE ONE QUERY]
My business: [ONE SENTENCE ON WHAT YOU SELL AND TO WHOM]
Their page: [PASTE THE FULL TEXT OF THEIR PAGE]
My page: [PASTE THE FULL TEXT OF MY PAGE]What to change
Everything in square brackets is yours to replace. Nothing else needs editing.
[THE ONE QUERY]- The single query both pages are trying to win. If the two pages are not competing for the same thing, the ledger comes back full of differences rather than gaps, and a difference is not something you can act on.
[ONE SENTENCE ON WHAT YOU SELL AND TO WHOM]- What you sell and who buys it. This is what makes the SKIP IF lines useful. Without it the model cannot judge whether closing a gap would be wrong for you, and rule 4 quietly stops working.
[PASTE THE FULL TEXT OF THEIR PAGE]- The whole visible text of one competitor page, headings included, not a summary and not a URL. One competitor per run. Two in the same run get averaged into a composite rival who does not exist and whose gaps belong to nobody.
[PASTE THE FULL TEXT OF MY PAGE]- Your own page, copied the same way. Paste it even though you wrote it, because the model has to quote from it to prove a gap is real, and half the time you find you already say something you thought you did not.
How to run it
- 01Search the query and pick one competitor
Search in a private window and take one page above yours. One, not four. A run against a single named competitor gives you gaps attached to a real company you can look at again next quarter.
- 02Copy both pages as text
Take the visible text of each with headings intact, and drop navigation, cookie notices and footers. Pasting rather than linking matters: many assistants cannot fetch a page, and the ones that can often return it with the heading structure flattened.
- 03Run it once and read the SKIP IF lines first
Go straight to the SKIP IF column before anything else. It is the fastest read of the ledger, because a gap whose skip condition already describes your business is a gap you can strike without thinking about it.
- 04Verify two quotes against the live page
Search their page for two of the EVIDENCE quotes and confirm they appear word for word. Rule 2 is the load bearing constraint here, and checking it twice tells you whether the rest of the ledger was assembled from the text or from the topic.
- 05Strike the gaps you cannot truthfully close
Cross out anything that would need you to claim something untrue about your product, your data or your customers. A competitor stating a price you cannot match is not a gap in your page, it is a fact about your business.
- 06Close one gap and check the page can still be quoted
Write the paragraph the ledger asked for, then run the page through the AI content readiness check. Adding a specific fact is exactly the sort of edit that makes a page more quotable, and it is worth confirming rather than assuming.
Questions people ask
What does a competitor analysis actually produce?
A short list of specific things a competitor page establishes that yours does not, each with the quote proving it and the cost of closing it. Not a swot grid and not a paragraph about their positioning. If the output cannot be turned into work by Friday, the analysis was a description of the competitor rather than an analysis.
How many competitors should one run cover?
One. Two competitors in the same prompt get merged into a composite rival with a blended set of gaps, and no single company you could go and look at again has those gaps. Run it once per competitor and keep the ledgers side by side.
Why does every gap need a condition for skipping it?
Because it is the cheapest fabrication test in the prompt. A model inventing a gap struggles to invent a plausible reason a real business would ignore it, so rule 4 tends to collapse the made up entries on its own. It also stops the ledger reading as a list of orders.
Can this tell me why they outrank me?
No, and it does not try. Rankings depend on links, history, brand demand and a live results page, none of which are in two pasted documents. What it tells you is what their page says and yours does not, which is the part you can change this week.
What if the ledger comes back nearly empty?
Believe it and move on. Two good pages in the same category often say much the same things, and a prompt that always finds eight gaps is finding them because it was asked for eight. An empty ledger means the difference is being made somewhere other than the page.
Unsubscribe in one click. We never pass your address on.