How these figures are worked out
Every number on the salary pages comes from employers' own job postings, read from the job boards their careers pages actually use. No survey, no self-reported salaries, no estimates. Here is exactly what happens to a posting between their board and that page.
Where the postings come from
We read public job-board APIs — the same endpoints an employer's own careers page calls — once a day per board. A posting is included only while it is open; when it leaves the board it stops counting.
Only postings that published a salary
Most employers do not publish one. Those postings are not counted at all — not as a zero, not as an average. So these figures describe the part of the market that says what it pays, which is not the same as the market.
What one posting contributes
The midpoint of the band, where an employer published a range. Where they published a single figure — "from €60,000" — that figure is used, because dropping them would bias the result towards employers who publish full ranges.
A posting that says 0 is a placeholder somebody left in a template, not a wage, and is excluded. One in the current corpus reads "DKK 0 – DKK 0 per month".
The window
Twelve whole calendar months, ending at the end of last month. Whole months so that every point in a trend covers the same span, and ending last month so a published figure does not move under you while you are reading it.
Currencies
Where every posting in a cell was published in the same currency, that is the currency you see, and no conversion happened at all. Where a cell mixes currencies, figures are converted to euros using the European Central Bank's rate for one stated day, which is printed beside the figure. A cell like that is labelled: the euro number is ours, not any employer's.
If we have no rate for a currency on that day, the figure is not shown in it. We never take a nearby day's rate and present it as that day's.
What we refuse to publish
A cell is published only when it rests on at least 5 different employers and 10 postings. Below that it is not merely hidden — it is unavailable through the API as well, because a figure that can be reconstructed from the interface is not suppressed at all.
The reason is not tidiness. With too few employers behind it, a median reveals what one company pays, and that is not ours to publish.
What these figures cannot tell you
They are not adjusted for role or seniority. A country's figure mixes a graduate role with a director's. We do not currently record a role family or a seniority against a posting, so no cell can separate them — this is the largest single limitation on the page and it is not a subtle one.
They are base salary as advertised, not total compensation. Equity and bonus are recorded only as whether the posting mentioned them at all, never as an amount.
The board mix is a bias. Each cell lists the boards its postings came from. Employers using one applicant-tracking system are not a random sample of employers: pay transparency, size and country all correlate with which system a company buys. Read the mix before reading the median.
An advertised band is not an offer. It is what an employer was willing to write down in public, which is a different thing from what they pay, and sometimes a wide one.