⏱️ 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 · All · gross HUF/month

4 887 083
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
4 450 567
n = 17 481
Last 7 days
4 272 545
-4.0% vs the stock · n = 1 864
Last 30 days
4 044 780
-9.1% vs the stock · n = 9 014

🪜 By level

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

Intern
2 187 480
n=89
Junior
1 974 808
-10% vs previous
n=104
Medior
3 082 830
+56% vs previous
n=185
Senior
4 450 567
+44% vs previous
n=5 829
Lead
4 516 017
+1% vs previous
n=682
Architect
4 712 366
+4% vs previous
n=415
Principal
6 008 266
+27% vs previous
n=2 381
Level Range midpoint Difference Range floors – Range ceilings Range width Full field (p10–p90) dailyweeklymonthlyyearly sample
Principal 6 083 286 +37% 5 000 343 – 6 962 049 +39% 4 019 910 – 8 181 190 ±0 ▲0.3% · · 2 381
director 5 407 180 +21% 4 417 843 – 6 202 271 +40% 2 723 593 – 7 277 987 ±0 ▲3.3% · · 32
Architect 4 771 205 +7% 3 796 072 – 5 497 760 +45% 2 430 533 – 6 246 502 ±0 ▲0.6% · · 415
Lead 4 572 404 +3% 3 726 375 – 5 235 962 +41% 2 371 800 – 7 068 548 ±0 ±0 · · 682
Senior 4 506 138 +1% 3 691 353 – 5 125 981 +39% 2 153 378 – 6 327 660 ±0 ±0 · · 5 829
manager 3 266 843 -27% 2 617 981 – 3 515 159 +34% 1 215 267 – 5 323 393 ±0 ▲12.4% · · 61
Medior 3 121 322 -30% 2 399 615 – 3 499 455 +46% 1 622 381 – 5 340 681 ▲1.5% ±0 · · 185
Intern 2 171 280 -51% 1 853 530 – 2 434 722 +31% 506 766 – 3 298 656 ▲5.3% ▲16.2% · · 89
mid-level 2 118 016 -52% 1 822 900 – 2 363 607 +30% 1 054 696 – 4 272 545 ±0 ▲8.0% · · 296
Junior 1 960 244 -56% 1 815 608 – 2 250 131 +24% 960 770 – 3 926 971 ▼0.7% ▲5.6% · · 104
entry-level 1 609 431 -64% 1 433 030 – 1 640 610 +14% 546 870 – 3 521 184 ▼1.2% ±0 · · 60

⚙️ 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
Spark 5 488 336 +23% 4 345 848 – 6 267 446 +44% 2 658 726 – 7 186 357 ±0 ▲1.0% · · 1 002
Rust 5 470 318 +23% 4 450 567 – 6 429 761 +44% 2 612 472 – 8 181 190 ▼0.6% ▼1.5% · · 940
AI/ML 5 294 049 +19% 4 345 848 – 6 021 356 +39% 2 628 014 – 7 853 943 ±0 ±0 · · 3 743
LLM 5 235 072 +18% 4 267 256 – 5 890 457 +38% 2 533 831 – 7 853 943 ▼0.3% ▲0.4% · · 2 858
C/C++ 5 082 658 +14% 4 057 870 – 5 759 558 +42% 2 442 384 – 7 252 200 ▼0.4% ▼0.6% · · 1 978
Go 4 872 593 +9% 3 989 934 – 5 514 273 +38% 2 227 104 – 6 924 559 ▲0.3% ▼0.6% · · 951
data science 4 837 471 +9% 3 926 971 – 5 615 569 +43% 2 175 762 – 7 437 684 ±0 ▲0.9% · · 1 584
Kubernetes 4 784 458 +8% 3 881 157 – 5 489 984 +41% 1 971 604 – 7 133 998 ±0 ▲0.3% · · 2 920
TypeScript 4 771 205 +7% 3 926 971 – 5 445 400 +39% 1 914 045 – 7 073 784 ±0 ±0 · · 2 288
GCP 4 704 938 +6% 3 748 430 – 5 340 681 +42% 2 005 190 – 6 842 878 ▲0.3% ±0 · · 2 374
React 4 665 178 +5% 3 837 960 – 5 296 175 +38% 2 095 165 – 6 806 813 ▼1.5% ▲0.4% · · 1 917
Python 4 638 671 +4% 3 796 072 – 5 309 265 +40% 2 005 190 – 7 068 548 ▼0.6% ±0 · · 6 606
AWS 4 625 418 +4% 3 728 005 – 5 235 962 +40% 2 050 763 – 6 806 750 ▼0.3% ▲1.1% · · 3 923
Terraform 4 506 244 +1% 3 669 166 – 5 160 040 +41% 1 929 357 – 6 751 184 ▼0.3% ±0 · · 1 548
PostgreSQL 4 450 616 0% 3 534 274 – 5 157 422 +46% 1 777 328 – 6 544 952 ▼1.2% ±0 · · 1 127
Java 4 398 156 -1% 3 534 274 – 5 084 119 +44% 1 822 882 – 6 652 349 ▼0.3% ▲0.6% · · 2 171
Azure 4 241 071 -5% 3 408 611 – 4 974 164 +46% 1 768 105 – 6 544 952 ±0 ±0 · · 2 603
SQL 4 108 590 -8% 3 403 375 – 4 712 366 +38% 1 691 255 – 6 584 418 ▼0.4% ▲1.0% · · 2 720
JavaScript 4 100 585 -8% 3 377 195 – 4 712 366 +40% 1 640 610 – 6 152 255 ±0 ±0 · · 1 607
C# 4 090 711 -8% 3 377 195 – 4 712 366 +40% 1 850 851 – 6 399 608 ▼0.4% ▼13.0% · · 1 397
GitHub 4 029 017 -9% 3 377 195 – 4 608 693 +36% 1 759 283 – 6 185 782 ▼1.2% ▲0.9% · · 1 312
Docker 4 023 716 -10% 3 272 476 – 4 607 751 +41% 1 701 373 – 6 215 839 ±0 ±0 · · 1 484
Linux 3 976 004 -11% 3 272 476 – 4 581 466 +40% 1 696 364 – 6 359 075 ±0 ▼0.9% · · 1 623
Git 3 164 899 -29% 2 591 801 – 3 659 566 +41% 1 457 409 – 5 335 445 ▼0.3% ▲1.5% · · 1 056

🧩 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
Engineering Manager 6 353 654 +43% 5 314 501 – 7 330 346 +38% 3 799 265 – 8 717 876 ±0 ±0 · · 445
AI / ML Engineer 5 367 605 +21% 4 450 567 – 6 152 255 +38% 2 364 244 – 7 592 144 ▲1.2% ±0 · · 625
Product Manager 5 118 442 +15% 4 315 676 – 5 864 277 +36% 2 536 983 – 7 133 998 ±0 ±0 · · 436
Data Scientist 5 024 343 +13% 3 940 061 – 5 707 198 +45% 2 037 395 – 7 805 510 ▲0.5% ▲5.3% · · 354
Software Engineer 5 036 271 +13% 4 008 652 – 5 759 558 +44% 2 050 763 – 7 461 245 ±0 ±0 · · 4 279
Solution / Enterprise Architect 4 981 933 +12% 3 929 485 – 5 788 356 +47% 2 752 579 – 6 811 986 ▲0.8% ±0 · · 385
Project Manager 4 781 807 +7% 3 926 971 – 5 497 760 +40% 2 037 329 – 6 557 772 ▼1.4% ▼1.7% · · 418
Architect 4 639 996 +4% 3 760 468 – 5 497 760 +46% 2 430 533 – 6 524 008 ±0 ▼0.4% · · 355
Security Engineer 4 439 871 0% 3 450 499 – 5 106 319 +48% 2 081 144 – 6 997 863 ±0 ▼1.4% · · 675
IT Consultant 4 307 337 -3% 3 534 274 – 4 974 164 +41% 1 968 015 – 6 300 433 ▲0.9% ▲1.1% · · 905
Other 4 223 152 -5% 3 419 083 – 4 843 265 +42% 1 731 755 – 6 846 909 ±0 ▲4.2% · · 4 877
Data Engineer 3 910 267 -12% 3 089 217 – 4 332 758 +40% 1 480 559 – 6 060 626 ±0 ▲2.3% · · 361
Fullstack Developer 3 555 210 -20% 2 916 640 – 4 057 870 +39% 1 670 992 – 6 007 847 ▼0.6% ▲2.5% · · 355
DevOps / SRE 3 313 310 -26% 2 623 217 – 3 774 588 +44% 1 701 373 – 5 565 827 ±0 ▲1.2% · · 370

🏠 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
Hybrid 4 797 711 +8% 3 903 821 – 5 340 681 +37% 1 822 900 – 7 199 447 ▲0.6% ▲1.8% · · 1 977
On-site 4 506 138 +1% 3 665 173 – 5 235 962 +43% 1 822 900 – 7 160 178 ±0 ▲0.3% · · 10 358
Remote 4 241 071 -5% 3 557 502 – 4 790 905 +35% 1 876 068 – 6 806 750 ±0 ▼1.5% · · 5 146

🔓 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
Anthropic 10 471 923 242 266 Open →
Perplexity 8 181 190 43 56 Open →
SpaceXAI 8 115 741 63 113 Open →
Sierra 8 103 145 55 61 Open →
OpenAI 8 089 561 376 441 Open →
Roblox 7 791 504 155 163 Open →
Lambda 7 696 864 46 50 Open →
Wayve 7 589 526 31 96 Open →
Decagon 7 461 245 52 54 Open →
Pragmatike 7 199 447 31 57 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 822 900 2 874 106 4 450 567 5 759 558 7 068 548 3 665 173 5 145 946 27.1% 17 481
2026-08-19 1 821 500 2 865 792 4 442 223 5 769 551 7 080 813 3 671 533 5 140 146 27.0% 17 455
2026-08-18 1 809 650 2 861 806 4 422 791 5 724 132 7 024 433 3 642 298 5 125 234 27.3% 17 395
2026-08-17 1 812 900 2 866 648 4 440 693 5 746 780 7 052 866 3 657 042 5 136 550 27.6% 17 682
2026-08-16 1 812 900 2 804 506 4 401 511 5 730 453 7 052 866 3 649 205 5 093 736 26.8% 17 141
2026-08-15 1 812 900 2 795 767 4 401 511 5 733 823 7 052 866 3 649 205 5 093 736 26.7% 17 081
2026-08-14 1 820 500 2 803 518 4 428 385 5 768 727 7 095 929 3 658 345 5 124 837 27.2% 16 811
2026-08-13 1 820 000 2 795 874 4 423 125 5 767 555 7 087 500 3 663 455 5 118 750 27.3% 16 875
2026-08-12 1 820 000 2 799 667 4 437 167 5 776 875 7 110 000 3 678 767 5 135 000 27.4% 17 069
2026-08-11 1 820 000 2 782 500 4 415 841 5 748 750 7 087 500 3 654 000 5 111 820 27.6% 17 265
2026-08-10 1 792 083 2 767 485 4 410 833 5 765 420 7 110 000 3 652 433 5 108 667 27.8% 17 470
2026-08-09 1 777 500 2 760 333 4 410 833 5 745 933 7 110 000 3 653 667 5 108 667 27.2% 17 089
2026-08-08 1 782 083 2 750 906 4 410 833 5 765 420 7 110 000 3 660 333 5 108 667 26.9% 16 926
2026-08-07 1 774 500 2 730 000 4 396 875 5 744 675 7 087 500 3 646 256 5 092 500 27.2% 16 927
2026-08-06 1 760 625 2 715 000 4 368 958 5 712 250 7 042 500 3 625 583 5 060 167 27.4% 16 958
2026-08-05 1 762 218 2 715 000 4 402 850 5 748 750 7 087 500 3 648 750 5 092 500 27.7% 16 850
2026-08-04 2 167 500 3 423 333 4 740 000 5 925 000 7 307 500 3 931 250 5 503 667 30.6% 14 411
2026-08-03 1 974 000 3 236 042 4 622 970 5 917 333 7 304 208 3 856 833 5 373 150 28.4% 14 891
2026-08-02 2 093 000 3 483 995 4 887 083 6 089 042 7 489 125 4 094 583 5 605 600 24.0% 12 531
2026-08-01 2 245 053 3 500 208 4 768 208 5 890 917 7 170 175 4 015 333 5 468 250 20.7% 10 237
2026-07-31 2 209 908 3 490 292 4 779 666 5 888 899 7 153 073 4 015 305 5 460 000 21.5% 9 946
2026-07-30 2 244 400 3 551 000 4 849 500 5 962 500 7 226 486 4 054 500 5 550 425 21.5% 10 005
2026-07-29 2 143 257 3 506 813 4 842 175 5 943 750 7 203 165 4 041 750 5 534 292 22.5% 10 001
2026-07-28 2 080 244 3 465 775 4 794 839 5 897 824 7 110 000 4 029 000 5 477 228 23.5% 9 422
2026-07-27 2 053 750 3 471 500 4 797 030 5 909 500 7 155 000 4 036 056 5 485 500 23.8% 9 563
2026-07-26 2 044 847 3 469 046 4 796 553 5 909 500 7 155 000 4 035 950 5 485 500 23.8% 9 577

🔧 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
USD 13 163 EUR 2 888 GBP 633 PLN 428 CAD 298 SEK 37 CHF 32 HUF 31
Stated period
yearly 14 820 monthly 2 490 hourly 327 daily 42
Range type
17 679 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: 15 888 / 17 679 (89.9%)

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 →