⏱️ 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
yearly
365 days
available from: 2027-07-26
294 days to go

How the median moved · Europe · gross HUF/month

2 905 833
07-2608-0408-1308-2208-3109-0909-1809-2710-05

🎯 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 307 375
n = 5 005
Last 7 days
2 153 550
-6.7% vs the stock · n = 1 469
Last 30 days
2 199 698
-4.7% vs the stock · n = 2 443

🪜 By level

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

Intern
887 693
n=52
Junior
1 483 458
+67% vs previous
n=68
Senior
2 494 152
+68% vs previous
n=1 726
Lead
2 738 085
+10% vs previous
n=171
Architect
2 691 938
-2% vs previous
n=126
Principal
4 385 513
+63% vs previous
n=313
Level Range midpoint Difference Range floors – Range ceilings Range width Full field (p10–p90) dailyweeklymonthlyyearly sample
Principal 4 241 362 +84% 3 645 207 – 5 097 761 +40% 2 586 917 – 7 633 010 ▲1.9% ▲8.7% ▲8.7% · 313
manager 2 951 116 +28% 2 630 408 – 3 350 770 +27% 1 389 353 – 5 018 539 ±0 ▲6.0% ▼0.6% · 32
Lead 2 650 563 +15% 2 399 670 – 3 064 194 +28% 1 692 075 – 5 885 653 ▲1.0% ▲4.6% ▼2.3% · 171
Architect 2 638 708 +14% 2 307 375 – 3 076 500 +33% 1 845 900 – 5 393 198 ±0 ▼6.4% ▼5.9% · 126
Senior 2 452 785 +6% 2 153 550 – 2 894 323 +34% 1 592 625 – 5 207 439 ▲0.9% ▼3.4% ▼2.5% · 1 726
mid-level 2 095 888 -9% 1 799 033 – 2 488 553 +38% 1 018 809 – 4 617 628 ▲0.4% ▼5.1% ▼0.7% · 320
Junior 1 454 124 -37% 1 329 909 – 1 692 075 +27% 870 803 – 2 082 175 ▲0.5% ▲14.8% ▼3.6% · 68
entry-level 1 200 235 -48% 1 114 924 – 1 381 730 +24% 523 938 – 2 333 460 ▼0.5% ▼17.1% ▼26.3% · 48
Intern 870 140 -62% 865 543 – 891 201 +3% 443 016 – 2 127 264 ▼0.4% ▲2.8% ±0 · 52

⚙️ 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 2 880 450 +25% 2 461 200 – 3 562 985 +45% 1 538 250 – 6 306 208 ▲0.5% ▼7.5% ▼3.0% · 613
LLM 2 793 450 +21% 2 361 402 – 3 322 620 +41% 1 538 299 – 6 220 971 ▲2.9% ▼7.2% ▼2.5% · 555
TypeScript 2 601 863 +13% 2 215 080 – 3 076 500 +39% 1 529 513 – 6 015 963 ▼0.3% ▼0.3% ▲1.5% · 627
C/C++ 2 601 013 +13% 2 153 550 – 3 027 276 +41% 1 655 108 – 6 166 704 ▲1.5% ▼6.5% ▼1.9% · 325
AWS 2 563 317 +11% 2 164 721 – 2 953 440 +36% 1 545 941 – 5 505 497 ▲0.6% ▲1.8% ▲1.2% · 1 026
Python 2 442 690 +6% 2 153 550 – 2 830 404 +31% 1 384 425 – 5 618 553 ▲1.2% ▲1.3% ▲1.3% · 1 506
React 2 442 690 +6% 2 153 550 – 2 851 253 +32% 1 473 951 – 5 686 250 ▲0.7% ▼5.0% ▼5.7% · 533
GitHub 2 428 833 +5% 2 104 326 – 2 953 440 +40% 1 462 471 – 4 960 771 ▲0.3% ▼0.6% ▼5.9% · 447
Terraform 2 419 418 +5% 2 153 550 – 2 873 311 +33% 1 621 139 – 5 344 477 ▲0.3% ▲0.3% ▲0.3% · 478
Kubernetes 2 412 533 +5% 2 095 163 – 2 873 311 +37% 1 615 163 – 5 297 542 ±0 ▼0.5% ▼0.8% · 864
GCP 2 412 533 +5% 2 149 920 – 2 799 615 +30% 1 569 015 – 5 393 218 ±0 ▲0.6% ▲1.0% · 568
PostgreSQL 2 409 599 +4% 2 067 408 – 2 805 768 +36% 1 384 425 – 5 049 846 ±0 ▼0.6% ▼0.4% · 384
MySQL 2 385 657 +3% 2 153 550 – 2 670 080 +24% 1 546 864 – 4 330 534 ▲1.3% · · · 238
Node.js 2 377 853 +3% 2 061 255 – 2 768 850 +34% 1 379 964 – 5 522 626 ▼0.4% ▼2.1% ▼1.9% · 265
data science 2 286 629 -1% 2 025 798 – 2 623 076 +29% 1 101 446 – 5 682 961 ▲0.7% ▼8.1% ▼7.7% · 344
Java 2 254 211 -2% 1 968 960 – 2 615 025 +33% 1 459 738 – 3 930 178 ▲1.0% ±0 ▲1.0% · 601
Docker 2 225 562 -4% 1 939 723 – 2 605 180 +34% 1 382 641 – 4 316 419 ▲0.4% ▼1.6% ▼1.6% · 567
JavaScript 2 147 042 -7% 1 845 900 – 2 466 682 +34% 1 315 564 – 5 275 958 ▲1.7% ▲1.7% ▲1.7% · 453
Azure 2 122 442 -8% 1 845 900 – 2 513 008 +36% 1 356 152 – 4 472 916 ▲0.5% ▲2.4% ▲2.7% · 714
C# 2 110 967 -9% 1 845 900 – 2 484 578 +35% 1 303 847 – 3 938 434 ±0 ▼8.5% ▼5.4% · 266
Linux 2 112 068 -8% 1 815 254 – 2 510 655 +38% 1 379 964 – 4 472 916 ±0 ▼2.0% ▼1.4% · 520
SQL 2 080 810 -10% 1 845 900 – 2 461 200 +33% 1 199 835 – 4 941 586 ▲0.4% ▼1.4% ±0 · 790
Git 1 954 152 -15% 1 693 275 – 2 253 022 +33% 1 172 916 – 3 700 023 ▲0.5% ▲3.7% ▲3.7% · 456
CSS 1 899 870 -18% 1 676 631 – 2 307 375 +38% 1 199 835 – 3 875 945 ±0 ▲2.7% ▲2.7% · 248

🧩 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 2 793 450 +21% 2 307 375 – 3 563 188 +54% 1 724 378 – 5 207 439 ±0 ▼5.0% ▼11.5% · 104
AI / ML Engineer 2 714 100 +18% 2 367 367 – 3 182 705 +34% 1 536 229 – 5 624 034 ±0 ±0 ▲0.3% · 120
Architect 2 639 311 +14% 2 307 375 – 3 076 500 +33% 1 981 891 – 5 138 920 ±0 ▼10.3% ▼5.3% · 101
Data Scientist 2 487 925 +8% 2 129 250 – 2 771 749 +30% 868 127 – 6 109 895 ▲3.3% ▼9.4% ▼4.6% · 96
Platform Engineer 2 472 847 +7% 2 163 213 – 2 922 675 +35% 1 715 874 – 5 946 073 ±0 · · · 95
Security Engineer 2 409 578 +4% 1 999 725 – 2 799 615 +40% 1 608 389 – 5 810 680 ±0 ▼0.6% ▼6.0% · 209
Software Engineer 2 377 853 +3% 2 061 255 – 2 768 850 +34% 1 404 822 – 5 761 757 ▲0.5% ▼7.5% ▼7.2% · 988
Backend Developer 2 377 312 +3% 2 138 168 – 2 733 798 +28% 1 644 697 – 5 275 958 ±0 ±0 ±0 · 154
IT Consultant 2 261 750 -2% 1 924 658 – 2 615 025 +36% 1 372 119 – 5 398 757 ±0 ▼9.8% ▼6.2% · 247
Fullstack Developer 2 231 593 -3% 1 879 742 – 2 584 260 +37% 1 416 841 – 4 796 326 ▲1.4% ▼4.5% ▼4.5% · 191
Other 2 224 054 -4% 1 999 725 – 2 605 180 +30% 1 181 376 – 5 755 591 ▲1.6% ▼6.8% ▼2.4% · 1 362
DevOps / SRE 2 167 381 -6% 1 845 900 – 2 487 350 +35% 1 457 030 – 3 775 393 ▲0.7% ▲13.2% ▲13.2% · 150
Data Engineer 2 016 519 -13% 1 795 671 – 2 431 682 +35% 1 199 835 – 4 248 174 ▲0.3% ▲2.9% ▲3.0% · 178
QA / Test Engineer 1 744 203 -24% 1 508 700 – 2 108 395 +40% 1 107 540 – 3 083 352 ▲1.1% ▲5.2% ▲3.2% · 101

🏠 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 3 136 293 +36% 2 631 127 – 3 691 800 +40% 1 477 707 – 6 372 261 ±0 ±0 ▲0.6% · 1 994
On-site 2 050 653 -11% 1 827 595 – 2 399 670 +31% 1 199 835 – 3 694 492 ±0 ▼1.4% ▲0.7% · 2 466
Hybrid 1 960 183 -15% 1 692 075 – 2 307 375 +36% 1 401 038 – 2 710 789 ±0 ▲4.8% ▲4.0% · 545

🔓 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
71.1%
13 137 / 18 464
SK
66.1%
119 / 180
LT
64.0%
105 / 164
CA
51.3%
724 / 1 410
EE
47.2%
51 / 108
AT
29.3%
228 / 779
EU
25.3%
1 140 / 4 499
IT
25.0%
143 / 572
PL
16.2%
441 / 2 728
IE
16.0%
153 / 959
CZ
13.9%
45 / 323
GB
13.5%
598 / 4 419
DE
11.3%
1 608 / 14 281
NL
11.3%
144 / 1 279
PT
11.1%
139 / 1 254
ES
10.0%
210 / 2 099
CH
9.7%
39 / 403
FR
7.5%
218 / 2 906
HU
7.1%
58 / 821
SE
0.8%
44 / 5 247
Country Publishes pay With pay Total ads Range midpoint dailyweeklymonthlyyearly
US 71.1% 13 137 18 464 5 129 045 ▲2.39pp ▼0.46pp ▲2.24pp ·
SK 66.1% 119 180 1 338 956 ±0 ▲0.79pp ▲3.38pp ·
LT 64.0% 105 164 2 026 528 ▲1.83pp ▼5.36pp ▲4.71pp ·
CA 51.3% 724 1 410 3 991 908 ▲0.67pp ▲1.62pp ▲6.12pp ·
EE 47.2% 51 108 2 098 904 ±0 ▼5.84pp · ·
AT 29.3% 228 779 1 702 495 ▲0.27pp ▼1.06pp ▼7.1pp ·
EU 25.3% 1 140 4 499 4 506 138 ▲1.13pp ▲0.57pp ▲2.29pp ·
IT 25.0% 143 572 1 389 891 ▲1.23pp ▼1.86pp ▼0.82pp ·
PL 16.2% 441 2 728 2 012 542 ▲0.26pp ▼0.42pp ▼0.5pp ·
IE 16.0% 153 959 3 271 998 ▲0.29pp ▼2.46pp ▼1.66pp ·
CZ 13.9% 45 323 1 998 415 ▲0.41pp ▲0.72pp ▲0.82pp ·
GB 13.5% 598 4 419 3 598 913 ▼1.27pp ▼0.82pp ▼1.38pp ·
DE 11.3% 1 608 14 281 2 110 967 ±0 ▼0.91pp ▼2.0pp ·
NL 11.3% 144 1 279 2 110 967 ▲0.31pp ▼1.0pp ▼0.1pp ·
PT 11.1% 139 1 254 1 884 792 ▲0.33pp ▼1.19pp ▼1.25pp ·
ES 10.0% 210 2 099 2 412 533 ▲0.06pp ▼2.21pp ▼3.39pp ·
CH 9.7% 39 403 3 050 680 ±0 ▼1.26pp ▼2.35pp ·
FR 7.5% 218 2 906 1 839 557 ▲0.17pp ▼0.95pp ▼0.62pp ·
HU 7.1% 58 821 1 662 644 ±0 ▲0.41pp ▲1.39pp ·
SE 0.8% 44 5 247 2 555 166 · ▲0.06pp ±0 ·

⚖️ 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 933 327 30 40 Open →
G2i 7 878 614 16 38 Open →
Runway Ml 7 249 420 16 19 Open →
Epic Games 6 161 870 20 82 Open →
Assured 5 881 605 17 17 Open →
Vanta 5 799 536 15 37 Open →
Novartis 5 690 110 25 28 Open →
Samsara 5 418 941 21 83 Open →
Cloudflare 5 350 816 32 208 Open →
micro1 4 464 548 31 32 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-10-05 1 292 130 1 716 687 2 307 375 3 461 063 5 344 477 1 999 725 2 615 025 12.4% 5 005
2026-10-04 1 292 130 1 706 858 2 307 375 3 420 465 5 273 518 1 999 657 2 615 025 12.1% 4 897
2026-10-03 1 292 130 1 700 210 2 284 432 3 399 533 5 273 924 1 979 311 2 615 025 11.7% 4 836
2026-10-02 1 285 130 1 687 508 2 258 157 3 365 817 5 213 471 1 974 636 2 600 858 11.7% 4 596
2026-10-01 1 281 700 1 678 722 2 273 492 3 403 592 5 237 306 1 981 769 2 593 917 11.2% 4 403
2026-09-30 1 266 942 1 712 174 2 366 204 3 610 951 5 444 881 2 015 090 2 650 764 12.1% 4 081
2026-09-29 1 272 856 1 728 429 2 370 854 3 609 817 5 426 358 2 019 050 2 682 098 12.4% 4 200
2026-09-28 1 260 216 1 716 816 2 359 100 3 576 700 5 338 947 2 009 040 2 669 367 12.6% 4 287
2026-09-27 1 255 912 1 711 299 2 359 100 3 552 822 5 338 947 2 007 803 2 638 904 12.3% 4 219
2026-09-26 1 263 138 1 704 640 2 351 281 3 549 304 5 338 947 2 005 289 2 630 016 12.3% 4 224
2026-09-25 1 266 147 1 708 700 2 361 767 3 548 543 5 368 612 2 004 960 2 644 525 12.3% 4 236
2026-09-24 1 259 836 1 703 961 2 352 706 3 531 819 5 320 743 1 995 279 2 641 103 12.4% 4 267
2026-09-23 1 261 289 1 702 439 2 335 204 3 494 068 5 257 205 1 988 690 2 639 534 12.4% 4 303
2026-09-22 1 261 619 1 702 711 2 340 500 3 500 258 5 256 745 1 993 200 2 645 520 12.5% 4 306
2026-09-21 1 232 097 1 699 973 2 352 642 3 518 626 5 310 200 2 003 540 2 648 871 12.7% 4 362
2026-09-20 1 259 802 1 707 236 2 352 642 3 534 778 5 308 695 2 003 540 2 648 924 12.4% 4 257
2026-09-19 1 259 802 1 706 843 2 352 642 3 516 753 5 313 591 2 003 540 2 641 030 12.2% 4 184
2026-09-18 1 263 267 1 706 006 2 344 246 3 506 387 5 311 439 1 996 390 2 634 643 12.2% 4 199
2026-09-17 1 260 390 1 713 656 2 353 740 3 497 898 5 311 471 1 992 327 2 624 040 12.4% 4 219
2026-09-16 1 279 165 1 723 391 2 363 944 3 524 014 5 320 085 2 013 165 2 652 192 12.4% 4 298
2026-09-15 1 270 724 1 720 095 2 359 423 3 528 129 5 271 260 2 009 315 2 635 630 12.5% 4 340
2026-09-14 1 268 527 1 712 915 2 353 740 3 492 646 5 239 965 2 004 475 2 624 040 12.7% 4 392
2026-09-13 1 275 575 1 712 915 2 353 740 3 492 646 5 239 965 2 002 180 2 624 040 12.5% 4 340
2026-09-12 1 275 447 1 712 915 2 353 740 3 492 646 5 239 965 1 994 971 2 618 900 12.5% 4 334
2026-09-11 1 276 443 1 716 681 2 355 049 3 495 521 5 233 442 2 000 133 2 616 208 12.6% 4 351
2026-09-10 1 273 825 1 713 598 2 335 346 3 487 854 5 205 830 1 998 844 2 602 915 12.7% 4 377
2026-09-09 1 273 825 1 713 598 2 333 829 3 487 854 5 222 863 1 989 593 2 593 144 12.9% 4 405
2026-09-08 1 271 200 1 709 045 2 324 480 3 480 667 5 208 513 1 985 493 2 584 075 13.0% 4 482
2026-09-07 1 271 480 1 707 416 2 324 992 3 481 433 5 209 660 1 980 241 2 583 314 13.2% 4 561
2026-09-06 1 271 480 1 695 307 2 288 664 3 429 131 5 144 539 1 967 888 2 573 233 13.1% 4 482

🔧 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 3 149 USD 1 224 PLN 438 GBP 42 CZK 35 SEK 34 CAD 33 CHF 30
Stated period
yearly 3 576 monthly 1 076 hourly 331 daily 40
Range type
5 023 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: 4 919 / 5 023 (97.9%)

Exchange rates

Today (ECB reference) · 2026-10-05
EUR 367.8 USD 328.3 GBP 434.1 PLN 84.0
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 →