How it was measured
Including the mistake that made a second pass necessary. The first run accepted a price only if it carried something like “per month” next to it, then threw that part away. The answer was “$250 per period”, which is not a number you can use. Done properly, the same figure is $2,520 a year.
Where the pages came from
The company list is every distinct website that appeared in the monthly
“Who is hiring?” thread on Hacker News between July 2025 and
August 2026. That is 4,509 job posts and 1,407 companies. For each one, six
likely pricing addresses were tried in turn: /pricing,
/plans, /price and a few variations, with and
without www.
- 484 pricing pages came back with readable text, plus 141 competitor pages
- Nothing was bought, no login was used, no paywall was passed
- Each page is cached locally so the numbers can be checked again without hitting anyone's site a second time
Matching every price to what it is charged for
A price only counts when something next to it says what you get for it. The
parser reads the amount, the currency, an optional quantity, and the unit,
then a second unit if there is one. That is how $49 per seat / month
is told apart from $49 per seat.
| Unit | Looks like | Prices | Share |
|---|---|---|---|
| Month or year | /mo, per month, /yr, per year | 715 | 68.2% |
| Usage | per credit, per GB, per event, per document | 292 | 27.9% |
| Per seat, no period | per user, per seat. Kept as unknown | 41 | 3.9% |
Turning that into a yearly figure is deliberately boring. Monthly times twelve, yearly times one, per seat per month times twelve times the number of seats. Published figures assume five seats. One seat and twenty-five seats were worked out too, and they move the middle from $2,148 to $3,588, so the seat count is not what drives the result.
Usage prices are never turned into a yearly figure. Making “$0.10 per credit” into a yearly number needs to know how many credits a customer burns, which is exactly what a pricing page does not say. Those prices are recorded with their unit and then left out of every average, rather than filled in with a guess.
Can you actually buy it without talking to anyone
Each page is sorted into one of eight buying paths, based on what is on it: a checkout provider in the page source, a signup link, trial and free plan wording, usage or pay-as-you-go wording, and phrases like “book a demo” or “custom pricing”.
| Buying path | Pages | Share |
|---|---|---|
| Price listed, sales offered as well | 195 | 40.3% |
| Buy it yourself, billed by usage | 104 | 21.5% |
| Could not be sorted | 92 | 19.0% |
| Sales call required | 42 | 8.7% |
| Trial, then buy it yourself | 38 | 7.9% |
| Buy it yourself, other | 10 | 2.1% |
| Straight to checkout | 3 | 0.6% |
Four things this cannot see
- What anyone actually pays. These are list prices. Whatever discount your competitor really gives is invisible here, and it is often the whole story.
- Cause. Companies that charge for usage differ from flat-rate companies in a dozen ways this data cannot observe, and any of those could be doing the work. Treat the numbers as a direction to test.
- Pages built entirely in JavaScript. One well known vendor returns sixteen characters of plain text. Those companies are missing here, not free. The paid teardown renders those pages properly, which is one of the things you are paying for.
- A fair sample of all B2B SaaS. These companies were hiring engineers on Hacker News, so the list leans towards developer tools and away from, say, field service software.
If a number here about your company is wrong, a parser read your page and got it wrong. Nobody judged you. Write to the address on the imprint page and it gets corrected or removed.