All articles

How to benchmark your pricing against competitors

Pricing strategy · 6 min read ·

Most pricing decisions are made against the wrong reference. Here is a benchmark you can run in an afternoon, and keep current after that.

Gut-based pricing anchors to the wrong number

When a team sets a price without market data, it almost always anchors to cost: what the infrastructure runs, what a seat of support costs, what margin the board expects. Those are real constraints, but they are a floor, not a price. The price a buyer will pay is set by what the alternatives cost them and what they get for it.

The symptom is familiar. Someone proposes €19 per seat because €15 “feels cheap” and €29 “feels expensive”. Nobody in the room can say what the median of the market is, which competitors include the feature the deal hinges on, or where the price sits for the segment the sales team actually sells to. The decision gets made anyway, and it holds for two years.

A benchmark replaces that conversation with three questions you can answer with public data.

  1. 1Price levelWhere does my price sit against my market’s median?
  2. 2Feature parityWhat is included, paid or missing at each competitor?
  3. 3Segment positionWhere do I stand, segment by segment?

Layer 1 — price level

Start with the crudest comparison: for each competitor, what does the equivalent plan cost? Normalise before you compare. Convert everything to the same currency, the same billing period, and the same unit — per seat per month is the usual choice for SaaS, per desk per month for a coworking space, per project for an agency. Annual-only pricing gets divided by twelve and flagged, because a competitor who bills annually is not competing on the same cash-flow terms as you.

Then compute the median rather than the average. Two enterprise outliers will drag an average somewhere useless. What you want is a sentence: “Our mid tier is €12.00, the market median for the equivalent plan is €15.20, and we are the third cheapest of seven.”

That sentence alone is worth the exercise. It is also the layer most teams stop at, which is why it so often leads to the wrong move — being below median is only a problem if you are also delivering the same thing.

3rd cheapest of 7

Example: made-up figures and features.

Layer 2 — feature parity

Build a matrix: features down the side, competitors across the top, and for each cell one of three values — included, paid add-on, or absent. Keep the feature list to the fifteen or twenty things a buyer actually asks about. A hundred-row matrix is a research project, not a decision tool.

Two patterns show up almost every time. First, features you treat as a premium differentiator are included by everyone, which means you cannot charge for them and should stop trying. Second, something you include as a courtesy is billed separately by most of the market. That second pattern is the one that funds a price increase, and it is invisible until the matrix exists.

Record where a feature is gated, not just whether it exists. “SSO, but only on the top tier” is a different competitive fact from “SSO on every plan”, and it tells you what the competitor believes their enterprise buyer will pay for.

FeatureYouComp. AComp. BComp. CComp. D
CSV exportIncludedIncludedIncludedIncludedIncluded
APIIncludedPaid optionIncludedMissingPaid option
Single sign-on (SSO)MissingPaid optionPaid optionMissingPaid option
Advanced rolesPaid optionIncludedPaid optionMissingMissing
Priority supportPaid optionPaid optionIncludedPaid optionMissing

✓ Included€ Paid option— Missing

Example: made-up figures and features.

Layer 3 — segment positioning

A single market position is a fiction. You have one position per segment, and they are frequently contradictory: cheapest for a freelancer, mid-market for a ten-person team, expensive for an enterprise buyer who wants procurement features you do not have.

Define your segments the way your buyers arrive — by team size, by capacity, by contract length, by industry — and repeat layers one and two inside each one. The output is a short list of statements: “Third cheapest of twelve for solo users. Second most expensive of five for teams over fifty seats, without the audit log they all include.” Each statement points at a different action.

Why the spreadsheet breaks at five competitors

The first version of this is always a spreadsheet, and it should be. One tab of prices, one tab of features, a column for the date you checked. It works well for three or four competitors and one segment.

Past five it degrades for reasons that have nothing to do with discipline. Every competitor changes their page on their own schedule, so a full refresh means visiting every page again — and a partial refresh silently mixes prices from March with prices from September. Feature naming drifts, so “advanced permissions” and “granular roles” end up as two rows describing one thing. Nobody records what changed between two versions, so the history you most want — how the market moved — is exactly what the spreadsheet throws away.

The workaround most teams reach for is a quarterly review. That sets your reaction time to about ninety days in a market where a competitor can reprice in an afternoon.

Time before a price change is seen

Quarterly reviewup to 90 days
Weekly re-readup to 7 days

Making the benchmark permanent

The fix is not a bigger spreadsheet, it is separating the three jobs: collecting the data, structuring it, and detecting change. Collection should be automatic and dated. Structure should be a schema you define once — segments, plans, features — so every new competitor lands in the same shape. Change detection should be a diff, not a memory.

This is the work Market Sonar does: pricing pages are found from each competitor’s website (or you paste their URL), every plan, price and feature is extracted and classified into your market structure, and each page is re-scanned on schedule so the benchmark you built in the afternoon is still true in November. The three layers above become a view rather than a project.

Whichever way you do it, run the three layers before your next pricing meeting. A team that can state its position in one sentence per segment argues about strategy. A team that cannot argues about whether €19 feels expensive.

From reading to your own market.

Or request a demo.