How these salary numbers are worked out
Every figure on this site comes from a pay range an employer published on its own job posting. Nothing is estimated, modelled, or submitted by users. This page is the whole method, including what gets thrown away and why.
The one-sentence version
For each posting we take the midpoint of the published range, then report the median of those midpoints. Not the top of the band, not an average of averages, and never a single company's number standing in for a market.
The midpoint is used because it is the only point in a range that does not flatter anyone. The median is used across postings because one company posting six hundred roles would otherwise drag a mean around by itself.
What gets excluded, and why
- Hourly, daily, weekly and monthly pay. Dropped, never converted to a yearly figure. Multiplying an hourly rate by 2,080 invents hours nobody promised.
- Mixed currencies. Any figure covering a group of postings is worked out in a single currency and the rest are dropped, never converted. “$” is not a currency — it is also Taiwanese, Mexican, Colombian, Chilean, Singaporean, Australian and Hong Kong dollars. A Taipei posting reading “$700,000 – $900,000” is about $22,000 in US money, and it reached this database before the guard existed.
- Ranges wider than 12× bottom to top. That is a parsing failure, not a salary band.
- Anything below $10,000 or above $2,000,000 a year, whatever the employer tagged it. One real posting reads “$62.98 – $86.54” labelled 1 YEAR.
- Pages with too few postings to mean anything are not built at all, rather than published thin.
That is 5,028 postings which published something but are not counted here. Excluding them is the point: a number that survives all of the above is one you can check yourself.
“Posted ranges are meaningless anyway”
The commonest objection, and it is testable, so here is the test. Across 17,375 ranges currently open:
- The median range is 31% wide from bottom to top.
- 25th and 75th percentile widths: 21% and 47%.
- Only 3% are wider than double.
- 572 postings name a single exact figure with no range at all.
So the notorious “$60k–$400k” posting is real, and it is about 3% of them. Most ranges are narrow enough to plan around.
What these numbers are not
- They are base salary. Postings publish base. Equity, bonus and benefits are usually absent, and at senior levels in tech equity can be worth as much again. A posted band is a floor for the conversation, not the whole package.
- A posted range is not an offer. We never see what anyone actually signed. That gap cannot be closed from job postings by anybody, including us.
- Companies that publish nothing are invisible here. So any comparison between publishers and non-publishers is structurally incomplete, and we say so rather than pretending otherwise.
- The company list is not a ranking. It is whoever posts on the job-board software we can read, which skews toward venture-funded technology companies.
You can check any of it
Every posting on this site links to the employer's own job page. The range we used is printed there, by them. That is the entire reason this method is worth publishing: nothing here requires you to trust us — 998 companies, and you can open any one of them.
Job posts get deleted. We keep them.
FirstIn watches company job boards at the source and tells you the moment a role opens — and keeps the record after it's taken down, so you can see what really happened to a team's hiring.