Most competitor analysis ends as a specification table. Five rivals, a dozen columns, and it is obvious at a glance who is cheaper and who is rated higher.
And then what?
A spec table answers what they look like. What you need is what you do next, and there is a step between those two that usually nobody writes down.
The output is an action, not a comparison
A competitor sheet that earns its place ends in three columns like these:
| What was observed | Explanation to verify | Next action |
|---|---|---|
| Overheating recurs in the last three months of negative reviews | Could be the thermal design, or a manual that omits which devices it suits | Re-read 20 of those reviews in full before choosing a fix |
| Three rivals all lead on the in-car use case | May map to a segment we do not address | Research keywords and listing copy for that use case |
| A price drop coincided with a rating decline | Causation is not established | Extend the observation window and look for other evidence |
Notice the wording in the middle column: "could be", "causation is not established". That is not hedging. It is marking a guess as a guess.
Picking rivals: write down why each one is in
The third column is "why included", and it is required.
It is not there for a reader. It is there for you in three weeks, when you want to know why these five and not five others. Without it, the only way to answer is to redo the selection.
Criteria worth using, ordered by how reproducible they are:
- Same category and overlapping price band — easiest to reproduce, good as a baseline
- Top results for the main search term — record which term, and which day
- Substantial overlap in traffic keywords — the most precise, but needs a reverse lookup first
- You just know it is a rival — legitimate, as long as the reason is written out
The fourth is not a cop-out; experienced sellers are often right. But "judgement call" and "the only one doing 30W fast charge between $25 and $35" are worth very different amounts when you revisit the sheet.
Keeping the rows comparable
Marketplace and collection date are required, per row.
The same ASIN can sit at BSR 940 today and 1,600 next week without declining at all — it may just have run a promotion. If your own data is from this week and the rivals are from last month, none of the differences between them can be attributed to anything.
The minimum bar: every row in one round shares a collection date. If that is not achievable, split it into two rounds and label them.
That is also why there is a review-on column. Competitor analysis is a repeated action, and each repetition has to line up with the last one.
Three layers that only mean something together
The fields fall into three layers, each answering one question.
Product — price, BSR, monthly units, rating, ratings count, sellers, variations: how well are they selling.
Keyword — shared keywords, keywords we lack, their top organic terms: where their traffic comes from and what we are missing.
Review — recurring complaints: what their buyers are unhappy about.
Separately these are just numbers. Together they point somewhere:
Rival B sells about 2.4× our volume, we share only 126 keywords and they rank high on 38 we do not cover at all, and their negative reviews cluster on an unstable stand.
Those three facts imply one action: cover those 38 terms, and lead on stand stability in the listing — because that is exactly where the competition is being complained about. No single layer gets you there.
Why observation, explanation and action are three columns
Collapsing them into one is the usual failure. It reads like this:
Their reviews are bad because the quality is poor, so we should emphasise quality.
"Reviews are bad" is an observation, "quality is poor" is a guess, "emphasise quality" is an action, and they have been welded into a chain that sounds like cause and effect. But the reviews may be numerous because the volume is high; the quality problem may be one batch; and emphasising quality with no specific difference to point at says nothing at all.
Split into three columns, you are forced to admit the middle step is a guess, and forced to make the action concrete — because writing "emphasise quality" under "next action" looks thin even to the person who wrote it.
When the sheet stops being the right tool
Five rivals, reviewed monthly: by hand is fine, and reading the listings and review pages surfaces things no field carries.
Twenty rivals, reviewed weekly: it breaks — not on speed, but because the collection dates stop lining up, and a sheet with mismatched dates cannot support a trend claim.
The third row names the API field behind each column:
| Column | API field |
|---|---|
| Rival ASIN, title, brand | asin, title, brand |
| Price, BSR, monthly units | price, bsr, units |
| Rating, ratings count | rating, ratings |
| Sellers, variations | sellers, variations |
| Shared and missing keywords | intersection and difference of items.keyword |
| Their top organic terms | items.rankPosition |
| Recurring complaints | review content and star |
Why-included, explanation-to-verify and next-action have no field beside them. An endpoint can do the copying; it cannot do the judging. Those three columns stay manual even after everything else is automated.
If you want an agent to handle the collection and the reverse lookup, Competitor analysis in Cursor or Codex gives a reproducible conversation script. That post is about getting the data; this one is about what to do once you have it.
Questions
How many rivals? Three to seven. Below three you cannot see a pattern; above seven you start filling in cells instead of forming a view.
Do disagreeing sales estimates undermine the conclusions? Less than you would think. Competitor work reads relative positions — who is twice our size, who is in our band — and as long as every row comes from one source on one day, the relative picture is stable.
How do I summarise complaints without being subjective? Fix the conditions first: last three months, one and two stars only, at least twenty reviews. Then group by the nouns that recur, not by what strikes you as important.
How often should this be refreshed? Use the review-on column. Price and BSR move quickly and suit a weekly cadence; review themes and keyword structure move slowly and are fine monthly.