⏱️ Measurable time windows

We only report movement when there is something to compare against. For windows not yet available we state the date — we never fill the gap with an estimate.

daily
1 days
✓ available
weekly
7 days
✓ available
monthly
30 days
available from: 2026-08-25
5 days to go
yearly
365 days
available from: 2027-07-26
340 days to go

How the median moved · Europe · gross HUF/month

2 905 833
07-2607-2908-0108-0408-0708-1008-1308-1608-1908-20

🎯 Where do you stand?

Enter your gross monthly pay and we show what share of advertised ranges you sit above. The amount never leaves your browser — the maths runs on your device; we neither see nor store it.

ℹ️ Approximate: we compare against the MIDPOINT of advertised ranges, not actually paid salaries. Bonus, equity and benefits are not included.

🌱 Fresh ads vs full stock

Pay levels in newly posted roles move before the long-standing stock — hence a leading indicator. A cross-sectional comparison within today's live stock.

Full live stock
2 278 625
n = 4 588
Last 7 days
2 622 998
+15.1% vs the stock · n = 418
Last 30 days
2 424 123
+6.4% vs the stock · n = 2 658

🪜 By level

The career ladder: how much more the next step pays. Bars show the ratio of medians.

Intern
880 096
n=41
Junior
1 464 974
+66% vs previous
n=44
Medior
1 622 381
+11% vs previous
n=22
Senior
2 582 442
+59% vs previous
n=1 565
Lead
2 734 350
+6% vs previous
n=149
Architect
2 962 213
+8% vs previous
n=113
Principal
4 164 187
+41% vs previous
n=241
Level Range midpoint Difference Range floors – Range ceilings Range width Full field (p10–p90) dailyweeklymonthlyyearly sample
director 5 386 160 +136% 4 358 938 – 6 544 952 +50% 2 889 089 – 7 466 481 ±0 ▲1.6% · · 27
Principal 4 133 348 +81% 3 665 173 – 4 861 067 +33% 2 346 639 – 7 139 692 ▼4.0% ▲3.3% · · 241
manager 3 055 055 +34% 2 545 325 – 3 461 257 +36% 1 052 782 – 4 837 551 ±0 ±0 · · 50
Architect 2 962 169 +30% 2 664 472 – 3 615 418 +36% 1 822 754 – 5 301 411 ▲1.7% ▼1.3% · · 113
Lead 2 714 100 +19% 2 430 533 – 3 038 045 +25% 1 456 497 – 4 947 984 ±0 ±0 · · 149
Senior 2 570 464 +13% 2 163 846 – 2 945 806 +36% 1 532 451 – 4 974 164 ±0 ±0 · · 1 565
mid-level 2 019 637 -11% 1 698 565 – 2 261 935 +33% 1 006 289 – 4 272 545 ▲1.1% ▲4.1% · · 257
entry-level 1 628 460 -29% 1 426 171 – 1 640 610 +15% 546 870 – 3 272 476 ±0 ▲1.2% · · 51
Medior 1 610 366 -29% 1 403 633 – 1 822 900 +30% 1 361 706 – 2 423 789 ±0 ±0 · · 22
Junior 1 454 124 -36% 1 321 603 – 1 670 992 +26% 746 468 – 2 021 633 ▼0.6% ▲2.2% · · 44
Intern 873 578 -62% 880 096 – 929 679 +6% 437 496 – 2 474 040 ±0 ▼7.2% · · 41

⚙️ By technology

Median per technology against the overall median — where the premium is.

Technology Range midpoint Difference Range floors – Range ceilings Range width Full field (p10–p90) dailyweeklymonthlyyearly sample
AI/ML 3 079 293 +35% 2 502 279 – 3 535 897 +41% 1 409 269 – 5 890 457 ±0 ▲3.1% · · 596
LLM 2 804 570 +23% 2 430 533 – 3 403 375 +40% 1 475 638 – 5 543 301 ▲0.4% ▲3.3% · · 552
React 2 622 428 +15% 2 227 104 – 3 015 914 +35% 1 595 038 – 5 358 167 ▲0.3% ▲2.3% · · 523
AWS 2 571 609 +13% 2 163 846 – 3 006 903 +39% 1 563 861 – 5 300 953 ±0 ▲0.3% · · 1 060
Terraform 2 541 190 +12% 2 114 564 – 2 876 871 +36% 1 549 465 – 5 114 226 ▲0.3% ▲2.4% · · 450
TypeScript 2 506 019 +10% 2 134 280 – 2 815 810 +32% 1 508 948 – 5 432 310 ▲0.5% ▲3.3% · · 602
data science 2 487 925 +9% 2 138 539 – 2 809 345 +31% 1 146 878 – 5 612 296 ±0 ±0 · · 336
C/C++ 2 457 957 +8% 2 094 385 – 2 764 732 +32% 1 603 241 – 5 504 305 ±0 ▲2.5% · · 320
PostgreSQL 2 468 698 +8% 2 096 335 – 2 815 810 +34% 1 382 114 – 4 921 804 ±0 ▲2.3% · · 409
Node.js 2 431 821 +7% 2 096 335 – 2 764 732 +32% 1 476 549 – 5 301 411 ▲0.4% ▲0.8% · · 253
Python 2 412 533 +6% 2 094 385 – 2 734 350 +31% 1 367 503 – 5 235 962 ±0 ▲1.0% · · 1 514
GitHub 2 412 533 +6% 1 974 808 – 2 734 350 +38% 1 455 282 – 4 735 734 ±0 ▲1.2% · · 429
Grafana 2 412 533 +6% 2 126 595 – 2 773 846 +30% 1 437 711 – 3 930 172 ▼3.0% ▼0.3% · · 303
Kubernetes 2 412 533 +6% 2 096 335 – 2 764 732 +32% 1 476 549 – 5 105 063 ±0 ±0 · · 836
GCP 2 393 674 +5% 2 065 953 – 2 734 350 +32% 1 595 038 – 5 235 962 ±0 ▲0.4% · · 618
C# 2 189 374 -4% 1 897 296 – 2 513 262 +32% 1 384 379 – 3 841 671 ±0 ▼3.2% · · 356
Java 2 186 358 -4% 1 868 473 – 2 513 262 +35% 1 344 395 – 4 450 567 ▲0.4% ▲0.6% · · 591
Docker 2 181 835 -4% 1 898 986 – 2 479 144 +31% 1 366 294 – 4 712 366 ▲0.5% ▼1.6% · · 559
SQL 2 110 967 -7% 1 822 900 – 2 430 533 +33% 1 196 546 – 4 712 366 ±0 ±0 · · 784
Azure 2 088 604 -8% 1 822 900 – 2 384 535 +31% 1 367 175 – 4 422 483 ▼0.4% ▼1.1% · · 752
Linux 2 035 575 -11% 1 762 137 – 2 309 007 +31% 1 290 146 – 4 162 590 ▼0.7% ▼0.8% · · 443
JavaScript 2 029 295 -11% 1 816 754 – 2 278 625 +25% 1 276 030 – 4 811 849 ▲2.0% ▲1.9% · · 456
Git 1 824 478 -20% 1 630 402 – 2 114 564 +30% 1 245 648 – 3 420 653 ±0 ±0 · · 453
CSS 1 827 494 -20% 1 519 083 – 2 126 717 +40% 1 178 091 – 3 797 708 ±0 ▲1.0% · · 261

🧩 By role

Median per role against the overall median.

Role Range midpoint Difference Range floors – Range ceilings Range width Full field (p10–p90) dailyweeklymonthlyyearly sample
Solution / Enterprise Architect 3 301 652 +45% 2 734 350 – 3 680 224 +35% 1 599 899 – 5 129 898 ±0 ▲6.2% · · 83
AI / ML Engineer 2 789 492 +22% 2 430 533 – 3 141 577 +29% 1 715 835 – 5 497 760 ±0 ▼0.3% · · 139
Product Manager 2 752 912 +21% 2 521 314 – 3 233 301 +28% 1 824 732 – 6 700 722 ±0 ▼2.0% · · 90
Architect 2 725 317 +20% 2 529 171 – 3 038 167 +20% 1 830 235 – 5 301 411 ±0 ±0 · · 105
Security Engineer 2 563 196 +12% 1 974 808 – 2 886 319 +46% 1 736 312 – 4 782 923 ±0 ±0 · · 214
IT Consultant 2 507 816 +10% 2 095 120 – 2 879 779 +37% 1 218 912 – 5 366 861 ▼2.2% ▼5.0% · · 225
Backend Developer 2 487 166 +9% 2 094 385 – 2 847 795 +36% 1 670 992 – 4 712 366 ▲0.3% ±0 · · 168
Data Scientist 2 412 533 +6% 1 982 708 – 2 754 004 +39% 504 816 – 5 829 590 ±0 ±0 · · 84
Fullstack Developer 2 388 408 +5% 2 095 360 – 2 649 281 +26% 1 519 083 – 4 699 276 ±0 ▲1.4% · · 152
Software Engineer 2 322 003 +2% 2 017 014 – 2 642 708 +31% 1 367 175 – 5 107 760 ▲0.7% ▲1.9% · · 956
Other 2 224 054 -2% 1 974 808 – 2 506 488 +27% 998 658 – 5 235 853 ±0 ▲3.6% · · 1 152
Data Engineer 1 928 897 -15% 1 655 740 – 2 255 679 +36% 1 113 446 – 4 012 579 ▲2.1% ▲0.7% · · 144
DevOps / SRE 1 899 840 -17% 1 670 992 – 2 187 480 +31% 1 468 954 – 3 670 831 ▼0.8% ▼0.8% · · 160
QA / Test Engineer 1 757 953 -23% 1 519 083 – 2 067 169 +36% 1 141 308 – 2 973 110 ▲0.8% ▲1.3% · · 88

🏠 By work location

Remote or on-site — the difference in advertised ranges.

By work location Range midpoint Difference Range floors – Range ceilings Range width Full field (p10–p90) dailyweeklymonthlyyearly sample
Remote 2 976 884 +31% 2 499 000 – 3 427 963 +37% 1 442 023 – 5 759 558 ±0 ±0 · · 2 014
On-site 1 990 340 -13% 1 765 175 – 2 278 625 +29% 1 136 129 – 3 794 547 ±0 ±0 · · 2 159
Hybrid 1 899 870 -17% 1 669 253 – 2 217 862 +33% 1 519 083 – 2 734 350 ±0 ±0 · · 415

🔓 Pay transparency

What share of ads publish a salary range at all. Our most reliable trend indicator: a ratio, so neither exchange rates nor sample mix can move it.

US
72.3%
11 241 / 15 553
LT
70.4%
88 / 125
SK
60.6%
97 / 160
CA
53.3%
574 / 1 077
AT
41.0%
277 / 675
IT
24.7%
137 / 554
EU
23.4%
1 188 / 5 078
PL
17.9%
414 / 2 310
IE
16.9%
151 / 892
GB
15.5%
726 / 4 676
ES
13.7%
246 / 1 791
PT
13.3%
133 / 1 002
DE
12.0%
1 199 / 10 004
CH
11.5%
46 / 400
CZ
11.4%
36 / 315
NL
10.1%
118 / 1 173
BR
8.9%
37 / 416
FR
8.9%
223 / 2 516
HU
5.2%
41 / 783
SE
1.4%
56 / 4 116
Country Publishes pay With pay Total ads Range midpoint dailyweeklymonthlyyearly
US 72.3% 11 241 15 553 5 168 805 ±0 ▲0.12pp · ·
LT 70.4% 88 125 1 917 964 ▲0.87pp ▲1.05pp · ·
SK 60.6% 97 160 1 230 392 ▲1.0pp ▼0.27pp · ·
CA 53.3% 574 1 077 3 727 391 ▲0.65pp ▲1.38pp · ·
AT 41.0% 277 675 1 664 648 ▼0.4pp ▼2.6pp · ·
IT 24.7% 137 554 1 628 460 ▼0.18pp ▼4.27pp · ·
EU 23.4% 1 188 5 078 4 194 385 ▲0.17pp ▲0.52pp · ·
PL 17.9% 414 2 310 2 035 253 ▲0.1pp ▼2.01pp · ·
IE 16.9% 151 892 2 849 805 ▲0.39pp ▲1.96pp · ·
GB 15.5% 726 4 676 3 505 234 ▼0.31pp ±0 · ·
ES 13.7% 246 1 791 2 245 164 ▲0.11pp ▲0.11pp · ·
PT 13.3% 133 1 002 1 884 792 ▲0.08pp ▼0.17pp · ·
DE 12.0% 1 199 10 004 2 110 967 ±0 ▼0.19pp · ·
CH 11.5% 46 400 2 601 863 ▲0.78pp ▲0.48pp · ·
CZ 11.4% 36 315 1 981 619 ▼0.15pp ▼0.69pp · ·
NL 10.1% 118 1 173 2 095 888 ▲0.39pp ▼1.28pp · ·
BR 8.9% 37 416 2 385 602 ▲0.08pp · · ·
FR 8.9% 223 2 516 1 809 400 ±0 ▼0.32pp · ·
HU 5.2% 41 783 1 979 167 ±0 ▲0.72pp · ·
SE 1.4% 56 4 116 2 635 722 ±0 ▼0.16pp · ·

⚖️ The EU pay transparency directive must be transposed by mid-2026; it requires the pay range to be disclosed up front in hiring. This table shows, day by day, where practice actually stands.

Hungary Barely more than 5% of Hungarian ads currently publish a range — among the lowest of the countries we measure.

🏢 Pay by company

Which company advertises what — employers publishing the most salary ranges.

Pay by company Range midpoint sample open roles
Hightouch 7 592 144 27 34 Open →
Abridge 6 453 323 16 22 Open →
Epic Games 5 872 164 22 98 Open →
Cloudflare 5 746 468 39 163 Open →
Assured 5 628 659 15 15 Open →
Monzo 4 886 874 16 42 Open →
Delinea 4 247 674 18 39 Open →
Samsara 4 209 553 18 68 Open →
Mercor 4 188 769 43 165 Open →
Novartis 3 700 487 19 26 Open →

📒 Measurement log

Raw figures for every measurement day, dated — so anyone can check what we claim above.

Date p10p25 Median p75p90 Range floors Range ceilings Publishes pay sample
2026-08-20 1 274 845 1 700 338 2 278 625 3 403 427 4 974 164 1 974 808 2 582 442 13.6% 4 588
2026-08-19 1 267 764 1 695 399 2 276 875 3 409 280 4 982 794 1 973 292 2 580 337 13.6% 4 581
2026-08-18 1 263 001 1 688 490 2 262 063 3 382 134 4 943 770 1 960 454 2 563 550 13.7% 4 610
2026-08-17 1 268 885 1 692 040 2 266 125 3 385 376 4 985 475 1 963 975 2 568 275 13.8% 4 673
2026-08-16 1 264 713 1 692 040 2 257 061 3 330 691 4 906 807 1 963 975 2 560 293 13.7% 4 628
2026-08-15 1 269 030 1 692 040 2 251 018 3 323 771 4 915 083 1 963 975 2 556 236 13.7% 4 636
2026-08-14 1 274 350 1 699 133 2 251 800 3 284 942 4 875 103 1 972 208 2 548 700 13.9% 4 577
2026-08-13 1 274 000 1 698 667 2 261 000 3 281 093 4 869 344 1 971 667 2 550 000 14.0% 4 624
2026-08-12 1 274 000 1 698 667 2 261 000 3 267 854 4 871 667 1 971 667 2 550 000 14.1% 4 687
2026-08-11 1 274 000 1 698 667 2 254 650 3 262 350 4 856 250 1 971 667 2 548 000 14.2% 4 762
2026-08-10 1 274 000 1 695 091 2 244 667 3 247 686 4 871 667 1 971 667 2 541 721 14.5% 4 856
2026-08-09 1 274 000 1 690 278 2 238 333 3 245 667 4 853 906 1 965 600 2 541 721 14.5% 4 878
2026-08-08 1 274 000 1 698 667 2 237 083 3 244 802 4 856 249 1 965 600 2 528 000 14.2% 4 827
2026-08-07 1 274 000 1 677 388 2 199 167 3 215 625 4 804 542 1 925 863 2 499 000 14.5% 4 859
2026-08-06 1 267 000 1 665 200 2 187 083 3 183 888 4 790 704 1 886 583 2 475 175 14.6% 4 868
2026-08-05 1 267 000 1 665 200 2 187 083 3 220 009 4 987 500 1 900 500 2 485 708 14.9% 4 860
2026-08-04 1 289 161 1 774 500 2 567 988 4 042 740 5 728 037 2 121 450 2 927 100 13.2% 2 570
2026-08-03 1 198 167 1 668 333 2 345 718 3 640 000 5 561 369 2 027 594 2 584 400 11.7% 2 960
2026-08-02 1 268 000 1 713 833 2 502 409 4 332 333 5 943 750 2 199 167 2 730 000 9.7% 2 504
2026-08-01 1 122 333 1 638 000 2 548 000 4 226 667 5 893 000 2 256 800 2 694 500 8.0% 1 891
2026-07-31 1 131 141 1 629 000 2 493 750 4 183 154 5 775 000 2 244 400 2 663 596 8.4% 1 855
2026-07-30 1 131 250 1 620 312 2 494 783 4 240 000 5 851 500 2 252 394 2 663 596 8.3% 1 861
2026-07-29 1 263 500 1 732 800 2 905 833 5 019 167 6 419 250 2 638 570 3 278 500 10.4% 2 473
2026-07-28 1 215 432 1 656 000 2 790 000 4 853 563 6 251 317 2 549 880 2 999 880 11.6% 2 345
2026-07-27 1 237 461 1 665 200 2 715 000 4 839 089 6 254 000 2 554 314 3 004 600 11.9% 2 412
2026-07-26 1 224 175 1 665 200 2 715 000 4 836 250 6 254 000 2 523 345 3 004 208 11.9% 2 422

🔧 Exactly how we calculate

Every step from the raw ad to the figures above. If you would compute it differently, the raw snapshot is downloadable — redo the maths.

The formula

érték = (salary_min + salary_max) / 2      ← sáv-közép
        × periódus_szorzó                 ← yearly ÷12 · monthly ×1 · daily ×21 · hourly ×160
        × árfolyam[currency]              ← EKB középárfolyam, HUF-ra

medián  = percentile_cont(0.5) WITHIN GROUP (ORDER BY érték)
transzp = n / total_n                     ← bért kiíró / összes aktív hirdetés

One ad yields one value. We take the range midpoint, convert the period to monthly, then to forint — in that order.

What the sample consists of

Currency
EUR 2 809 USD 1 167 PLN 421 CAD 48 GBP 47 SEK 37 CHF 32 CZK 29
Stated period
yearly 3 055 monthly 1 337 hourly 189 daily 30
Range type
4 611 two-sided range (min–max) · 0 floor only (“from”)
Freshness
We re-check ads at their source daily. Verified live within the last 2 days: 3 324 / 4 611 (72.1%)

Exchange rates

Today (ECB reference) · 2026-08-19
EUR 364.6 USD 314.2 GBP 425.9 PLN 84.3
Fixed base · 2026-07-26
EUR 361.9 USD 318.1 GBP 423.8 PLN 83.9

Update schedule

Daily snapshot at 06:55 (after ad imports and location normalisation).

Raw data

The full daily snapshot — every breakdown and segment, including the rates used:

⬇ /salaries/data.json

Free to use with attribution (CC BY 4.0).

What we exclude, and why

  • Ads without pay — we do not estimate. They only appear in the transparency denominator.
  • Pay without a period — we never guess yearly vs monthly. The ad then stays without pay.
  • Plausibility filter: ranges that cannot be interpreted are skipped at import rather than transformed.
  • Segments below 15 ads are not shown — both for noise and identifiability.
  • Outliers are NOT trimmed or smoothed. Whatever passes the filter stays — p10–p90 shows the spread.

Definitions

  • Median: PostgreSQL percentile_cont(0.5) with linear interpolation — the true interpolated value, not the nearest item.
  • Range midpoint: (min + max) / 2. Where only a floor exists, it is used for both ends.
  • median_fix: the same, but at the rate fixed on the base day — only this is valid for time-series comparison.
  • Transparency rate: n / total_n, where the denominator is all active ads in the segment, with and without pay.

⚠️ What this figure does NOT tell you

  • It measures advertised, not paid, salary. The two can differ in both directions.
  • It excludes bonus, equity, benefits and 13th month — ads rarely quantify these.
  • Not representative of the whole labour market: it measures what is advertised through our sources.
  • Figures are gross, and tax systems differ by country — net comparison needs a separate calculator.
Net salary calculator →

🔬 How we measure

  • The headline figure is the MIDPOINT of the range — neither floor nor ceiling. Both ends are reported separately.
  • Since 99.8% of the data is quoted in foreign currency, every movement is reported twice: at a fixed rate (real market movement) and at the daily rate (forint value). The difference is the currency effect.
  • We only count what the employer published in the ad. We do not ask visitors for their salary, and we do not estimate.
  • Ranges in different currencies and periods (year/month/day/hour) are converted to gross HUF/month at the daily reference rate. We never guess the period: if the source does not state it, the ad stays without salary.
  • A segment appears only with at least 15 ads behind it. Regions are reported separately, because a single blended average would hide the differences.
  • Movement is computed from our own daily snapshots, not from ad posting dates — so the timing of our imports cannot distort the trend.
  • p10–p90 marks the bottom and top tenth of the field, p25–p75 the middle half. Outliers are neither trimmed nor smoothed — the distribution is shown as it is.

An indicative market picture of advertised salary ranges; not advice, and not a survey of actually paid salaries.

Detailed salary statistics →