Competitive Analysis Template: Fill-In Grid, Scoring Rules and a Worked Example
A competitive analysis template is a grid with a column for each competitor and a row for each comparison point: offer and price, visibility, customer complaints, and where the rival beats you or falls short. You fill it in six steps, score every row against your own business with evidence, and finish with a SWOT and one positioning line. The full template is on this page for free, and a filled example for a mobile grooming van in Raleigh follows it.

What goes into a competitive analysis template
The template has five blocks, and each one passes a specific output to the next. The competitor list sets the grid’s columns and the order you read rivals in. The grid scores become the SWOT’s strengths and weaknesses. The complaint counts become its ranked opportunities. The positioning line names the leading rival and the grid row where that rival scores 1. Skip the complaints, and the SWOT has no ranked opportunities. Skip the grid, and the line has no weak row to name.
| Block | Fields | The question it answers |
|---|---|---|
| Competitors | name, type, visibility share, link | Who does a customer find instead of you? |
| Grid | offer, price, booking, reviews, coverage, messaging; a 1–3 score and an evidence cell per rival | Where does each rival beat you or fall short? |
| Complaints | theme, count, one quote, which rival | What do their customers dislike? |
| SWOT | strengths, weaknesses, opportunities, threats, each tied to a grid row or a theme | What does the grid mean for you? |
| Positioning | one sentence: customer, outcome, offer | What can you promise that the leading rival does not deliver? |
The template suits a small local business that competes in one area, and the worked example uses such a business. Copy the table into any spreadsheet. Sign up for free to download the .xlsx; it has five tabs: Competitors, Grid, Complaints, SWOT, Positioning.
Frameworks the template folds in
| Framework | The question it answers | Where it sits |
|---|---|---|
| SWOT | Which factors are internal to you, and which come from outside? | Block 4 |
| Five forces | How hard do rivals, entrants, buyers, suppliers and substitutes push? | Competitor types, block 1 |
| Strategic groups | Which rivals follow the same strategy? | A grouping column, block 2 |
| Weighted array | Which grid rows decide the purchase? | Optional weights column, block 2 |
In a SWOT, strengths and weaknesses describe the business itself; opportunities and threats come from outside it1. Michael Porter’s five forces are rivalry among existing competitors, the threat of new entrants, the bargaining power of buyers, the bargaining power of suppliers and the threat of substitutes, first published in Harvard Business Review in the March–April 1979 issue2. Michael S. Hunt introduced the term strategic groups in his 1972 Harvard dissertation to describe firms in one industry that follow similar strategies3.
The BCG growth-share matrix is left out. It sorts a company’s own businesses or products into stars, cash cows, question marks and dogs4, so it rates your portfolio and says nothing about rivals.
How to fill it in six steps

Step 1. Write the decision this analysis feeds
Put one question at the top of the file, for example «Should I launch a grooming van at $X in these zip codes?» or «Should I match the price cut a rival made last month?» Each row you add later must help answer it, so delete any row that doesn’t.
Step 2. List direct, indirect and substitute rivals
Search the way your customer would: the phrase they type, the map results for your area and the review sites. Then add public data. NAICS is the standard US federal statistical agencies use to classify business establishments, and the Census Bureau has a NAICS code search5. County Business Patterns reports establishment counts by 6-digit NAICS industry and by county6. For grooming, the code is 812910, Pet Care (except Veterinary) Services, which also covers boarding, sitting, walking and training7. If a rival is a public company, its annual report on Form 10-K is free to search in EDGAR8.
| Type | What it is | Example pair |
|---|---|---|
| Direct | The same service to the same customer | Lucky Dog Mobile Groomers, a mobile groomer |
| Indirect | The same job done another way | Petco Dog Grooming, a salon chain |
| Substitute | The customer does the job without a business | Bathing the dog at home |
| New entrant | A firm that could start offering it | A local salon that buys a van |
The first two rows use figures from the example below. List every direct rival you can find, then add the indirect ones that do the same job. In our example, the check turned up six direct rivalsex. For the search routine and a site teardown, see how to find competitors and review their sites.
Step 3. Gather the same facts for every rival
| Field | Where to find it | What to record |
|---|---|---|
| Offer | Site, booking page | Services, add-ons, dogs they refuse |
| Price | Price page, a quote you request | Price for one reference job, with the date |
| Booking | Site, phone, app | Steps to book, deposit, reply time |
| Reviews | Map listings, review sites | Rating, review count, latest complaint |
| Coverage | Service map, FAQ | Zip codes or radius, travel fee |
| Messaging | Homepage headline | The promise, word for word |
| Customer journey | Book or enquire yourself | Reply time, steps, questions they asked |
Do the last row yourself. Ask for a quote as a customer and time the reply. Date every cell: prices and coverage change, and an undated fact cannot be compared with next quarter’s.
Step 4. Score the grid against yourself
These are the template’s rules. They are ours, and the idea check does not compute them.
- Score each row 1–3 against your own business: 1 = weaker than you, 2 = on par, 3 = stronger.
- Every score needs an evidence cell with something you saw yourself, such as a link or a quoted price. With no evidence, the cell stays blank. Never guess.
- Read rivals in order of visibility share, largest first.
- A row where every rival scores 3 is table stakes you must match. A row where every rival scores 1 is an opening for your positioning line.
- The complaint themes with the highest counts become opportunities for you, and threats if you would repeat them.
| Row | Weight (optional) | Rival A | Evidence | Rival B | Evidence |
|---|---|---|---|---|---|
| Offer | |||||
| Price | |||||
| Booking | |||||
| Reviews | |||||
| Coverage | |||||
| Messaging |
Add weights if some rows decide the purchase more than others. The weights are your judgment, so label them as an assumption in the file.
Step 5. Count what their customers complain about
Read each rival’s low-rated reviews. Put every complaint under one theme, count the complaints per theme, keep one quote per theme and note which rival it came from. Counts let you compare themes; a pile of quotes does not. For sources and tagging, see how to mine complaints from reviews.
Step 6. SWOT and one positioning line
Build the SWOT from the grid, not from opinion.
| Helps you | Hurts you | |
|---|---|---|
| Internal | Strengths: rows where rivals score 1 | Weaknesses: rows where rivals score 3 |
| External | Opportunities: top complaint themes, rows all rivals lose | Threats: rival moves, themes you would inherit |
Then write one line: «For [customer] who is tired of [top complaint theme], [your business] gives [outcome], unlike [largest rival], which [row where it scores 1].» The full file is in the SWOT template; positioning and your unique offer explains the line in depth.
How our idea check fills the same template
The free idea check records four of the five blocks. In the example it ran 17 searchesex and read 26 sourcesex. Here is what it records:
- Competitors: each rival is labelled direct (the same service to the same customer) or indirect (the same job done another way), with the check’s visibility share in percent. If you fill the template by hand, the share column holds your own proxy, such as how often each rival appears in map results for searches you choose. Label it as yours.
- Complaints: customer complaints grouped into named themes, with a count per theme.
- Unit economics: price, purchases a month, margin, customer acquisition cost (CAC) and lifetime in months; LTV, LTV/CAC and payback follow from them.
- Risks: each risk rated 1–3 on probability and 1–3 on impact. The template orders them by probability × impact; that ordering is our template rule.
- Demand: the source of search demand, or «none». A missing source is itself a risk.
- Verdict: a label and a score, quoted as the check prints them.
Here are the unit formulas, filled in with the figures from our example:
- LTV = price × purchases a month × lifetime × margin: 56.5 × 0.6 × 12 × 0.35 = $142.38ex.
- LTV/CAC = LTV ÷ CAC: 142.38 ÷ 30 = 4.75ex.
- Payback in months = CAC ÷ (price × purchases a month × margin): 30 ÷ 11.87 = 2.5ex.
Our concept method passes the money criterion at LTV/CAC of 3 or more; see the LTV/CAC line our concept method uses. The competitor block alone is also available as our competitor analysis tool.
Example: a mobile grooming van in suburban Raleigh
The idea, example by our method: «Mobile pet grooming van in suburban Raleigh, North Carolina: busy dog owners booking $85–$120 driveway grooms every 6–8 weeks»ex. The check’s verdict in the example is «Possible, with caveats»ex, with a score of 62ex.
A published market size the check found is $2.06 billion for 2023ex. The source page credits that figure to IBISWorld, 2024: it covers the whole US pet grooming market and does not break out mobile grooming9. It does not size Raleigh.
Competitors, read by visibility share
The check found six direct rivals in the exampleex. The table lists the four direct rivals with the largest shares and the one indirect rival, in read order (example by our method):
| Rival | Type | Visibility share |
|---|---|---|
| Lucky Dog Mobile Groomers | Direct | 30 %ex |
| Zoomin Groomin | Direct | 18 %ex |
| Petco Dog Grooming | Indirect | 14 %ex |
| Lux Pup Grooming | Direct | 10 %ex |
| PFG | Direct | 9 %ex |
The grid’s score and evidence cells stay blank here. Rule 2 applies: until you hold a quote and a booking test for each rival, there is nothing to score. Start with Lucky Dog, the largest share.
Price and unit economics
All figures below are example by our method.
| Input or result | Value |
|---|---|
| Price per groom | $56.50ex |
| Purchases a month | 0.6ex |
| Lifetime | 12 monthsex |
| Margin | 35 %ex |
| CAC | $30ex |
| LTV | $142.38ex |
| LTV/CAC | 4.75ex |
| Payback | 2.5 monthsex |
In the example, the check’s unit price of $56.50ex sits $28.50 to $63.50 below the $85–$120 the idea namesex. Price your own grid row from the quotes you collect in step 3. The 0.6 purchases a month works out to one groom every 1.67 months, about seven weeks (example by our method)ex, which matches the idea’s 6–8 weeks. LTV/CAC of 4.75ex clears our line of 3. To rerun the numbers with your own price, use the unit economics calculator.
Complaint themes
| Theme | Complaints counted (example by our method) |
|---|---|
| Service and support | 6ex |
| Quality | 3ex |
| Reliability and trust | 2ex |
| Price | 1ex |
Service and support leads with six complaints in the exampleex, six times the count for priceex. By rule 5, it is the first opportunity in the SWOT.
Risks, in template order
The check rated four risks in the example; the last column is the template’s probability × impact.
| Risk (example by our method) | Probability | Impact | Order value |
|---|---|---|---|
| Lucky Dog Mobile Groomers already offers almost the same service, so the van may win few customers from an established rivalex | 3 | 3 | 9 |
| No search-volume data exists for this market, so demand for the driveway service is unprovenex | 2 | 3 | 6 |
| Commercial van insurance is required, which raises the fixed cost before the first groomex | 2 | 2 | 4 |
| Reliability and trust complaints were found, and a van visit that runs late or no-shows would feed themex | 2 | 2 | 4 |
The demand source in the example is «none»ex. Test demand before you buy a van; see check demand before you launch.
On insurance, personal auto policies typically exclude many business uses, so a grooming van may need a commercial auto policy or an endorsement to the personal policy that covers that use10. North Carolina requires continuous liability coverage on every registered vehicle, with a minimum of 50/100/50 ($50,000 per person, $100,000 per accident, $50,000 property damage) for policies issued or renewed after July 1, 202511. Get a quote before you set your price. More on ranking risks: business risks before launch.
SWOT and the positioning line
- Strengths: none claimed. The idea has no evidence yet for any row.
- Weaknesses: no demand dataex.
- Opportunities: the six Service and support complaintsex.
- Threats: Lucky Dog’s 30 % shareex and the same-service riskex.
As an illustration of the method only: «For busy Raleigh dog owners tired of slow replies, the van confirms every groom by text the day before, unlike the largest mobile rival.» The line becomes usable once your step 3 booking test shows that the rival’s reply time is in fact slow.
When to run it, and what it changes
- Before you set a price: the price row and the unit economics block change.
- Before a launch: the whole file, ending in the positioning line you print on the van and the site.
- When a new rival appears: add a column to the grid and a row to the competitor list.
- When a rival changes price: update the price row, then rerun payback.
Keep the file and update it at each trigger. A dated grid shows which rival moved and when.
Turn the grid into a one-page report
- The decision from step 1, in one sentence.
- The rivals you read, in visibility order, with their type.
- Where you win: rows where rivals score 1, with evidence.
- Where you lose: rows where rivals score 3, and the plan to match.
- Name the next step and give it a date and an owner.

Four mistakes that make the grid useless
- Scores without evidence. Fix: leave the cell blank until you hold evidence you saw yourself.
- Only direct rivals. Fix: add the indirect ones; in the example, Petco Dog Grooming holds 14 %ex, more than two of the named direct rivals.
- Complaints listed and never counted. Fix: theme and count them, then rank.
- A price row copied from your plan. Fix: use quotes you requested, with dates.
FAQ
What should a competitive analysis template include?
Five blocks: a competitor list with type and visibility share, a scoring grid with evidence cells, counted complaint themes, a SWOT built from the grid and one positioning line.
How do I find my competitors?
Search the phrase your customer types and check map results and review sites. Then look up establishment counts for your NAICS code and county in County Business Patterns6. See how to find competitors and review their sites.
What is the difference between direct and indirect competitors?
A direct rival sells the same service to the same customer, as a mobile groomer does to a mobile groomer. An indirect rival does the same job another way, as a salon chain does.
How many competitors should I include?
Every direct rival you can find, then the indirect ones that do the same job. The example check found six direct rivalsex.
How do I do a SWOT analysis of a competitor?
Take strengths and weaknesses from the grid rows. Take opportunities and threats from complaint themes and rival moves. For the full method, see how to run a SWOT on an idea.
Is the template free, and in what format?
Yes. The full structure is on this page, and the .xlsx with five tabs downloads after a free sign-up.
How often should I update it?
At each trigger: before a price change, before a launch, when a new rival appears and when a rival changes price.
Sources
- walton.uark.edu, 10/02/2026
- hbr.org, 10/08/2026
- umbrex.com, 08/04/2026
- bcg.com, 06/04/2014
- census.gov, 10/26/2022
- census.gov, 10/07/2026
- naics.com, 07/08/2025
- sec.gov, 10/02/2026
- moego.pet, 09/10/2025
- insurance.utah.gov, 10/04/2026
- ncdoi.gov, 07/22/2026
Check your idea for free
Describe your idea and the check collects demand, competitors, complaints and prices, with sources.
No idea yet? We will find one



