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

5 297 884
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
5 289 662
n = 13 861
Last 7 days
4 875 808
-7.8% vs the stock · n = 2 269
Last 30 days
5 051 901
-4.5% vs the stock · n = 5 005

🪜 By level

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

Intern
3 157 353
n=162
Junior
3 700 023
+17% vs previous
n=85
Medior
3 545 855
-4% vs previous
n=183
Senior
5 234 847
+48% vs previous
n=4 431
Lead
5 344 477
+2% vs previous
n=520
Architect
5 151 254
-4% vs previous
n=343
Principal
6 344 854
+23% vs previous
n=2 443
Level Range midpoint Difference Range floors – Range ceilings Range width Full field (p10–p90) dailyweeklymonthlyyearly sample
Principal 6 136 299 +16% 5 234 847 – 7 454 860 +42% 4 819 348 – 8 731 231 ▲0.4% ▼0.4% ▼1.3% · 2 443
Lead 5 168 805 -2% 4 416 046 – 6 187 260 +40% 3 783 706 – 7 742 640 ±0 ▼0.5% ▲1.0% · 520
Senior 5 064 103 -4% 4 385 212 – 6 029 667 +38% 3 562 985 – 6 962 894 ±0 ±0 ▲0.3% · 4 431
Architect 4 981 933 -6% 4 165 951 – 6 029 667 +45% 3 405 501 – 7 219 703 ±0 ±0 ▼2.6% · 343
Junior 3 578 403 -32% 3 288 909 – 3 974 098 +21% 1 902 908 – 4 604 473 ▲1.7% ▲2.8% ▲15.9% · 85
Medior 3 429 303 -35% 2 740 758 – 4 288 874 +56% 2 411 473 – 5 645 960 ±0 ±0 ▲1.1% · 183
Intern 3 053 571 -42% 3 086 093 – 3 288 909 +7% 1 478 198 – 4 111 136 ±0 ±0 ▲6.7% · 162

⚙️ 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
Rust 5 857 979 +11% 4 933 364 – 6 934 116 +41% 4 251 737 – 9 181 538 ±0 ▼0.5% ▼0.5% · 834
Spark 5 698 939 +8% 4 933 364 – 6 857 595 +39% 4 039 877 – 7 687 825 ±0 ±0 ±0 · 839
Databricks 5 628 033 +6% 4 933 364 – 6 777 893 +37% 3 694 541 – 7 201 395 ±0 ▲0.6% ▲1.0% · 694
LLM 5 619 419 +6% 4 811 844 – 6 851 894 +42% 3 713 726 – 8 427 829 ±0 ▼1.2% ▼0.8% · 2 326
AI/ML 5 592 912 +6% 4 796 326 – 6 769 671 +41% 3 768 542 – 8 336 014 ±0 ▼0.7% ▼1.1% · 3 150
TypeScript 5 433 872 +3% 4 659 288 – 6 577 818 +41% 3 658 418 – 7 770 048 ±0 ▼1.1% ▼0.5% · 1 638
Kubernetes 5 394 112 +2% 4 582 547 – 6 577 818 +44% 3 817 848 – 7 824 863 ±0 ±0 ±0 · 2 167
Snowflake 5 367 605 +1% 4 635 991 – 6 303 742 +36% 3 696 734 – 7 707 010 ±0 ±0 ▲2.6% · 665
GCP 5 301 338 0% 4 522 250 – 6 443 521 +42% 3 562 985 – 7 645 275 ±0 ±0 ▲0.7% · 1 748
data science 5 301 338 0% 4 522 250 – 6 303 742 +39% 3 288 909 – 8 296 355 ▲0.4% ▼1.2% ▼0.7% · 1 240
React 5 268 856 0% 4 522 250 – 6 303 742 +39% 3 528 670 – 7 586 417 ▲0.6% ▼0.4% ▼0.6% · 1 345
Terraform 5 250 644 -1% 4 385 212 – 6 331 150 +44% 3 768 542 – 7 583 676 ±0 ▼0.4% ▲1.6% · 1 117
C/C++ 5 235 072 -1% 4 549 657 – 6 440 780 +42% 3 562 985 – 7 687 825 ±0 ▲1.3% ▲1.3% · 1 944
AWS 5 228 816 -1% 4 385 212 – 6 303 742 +44% 3 562 985 – 7 400 045 ▲0.4% ±0 ▲1.2% · 2 916
Python 5 142 298 -3% 4 385 212 – 6 166 704 +41% 3 409 502 – 7 674 066 ▲0.3% ▼0.5% ▲0.3% · 5 676
Java 5 115 791 -3% 4 330 397 – 6 088 593 +41% 3 342 307 – 7 217 237 ±0 ±0 ▲0.4% · 1 640
Azure 5 076 031 -4% 4 248 174 – 6 057 074 +43% 3 342 307 – 7 271 230 ±0 ±0 ▲0.8% · 1 795
Docker 4 970 005 -6% 4 119 359 – 5 935 439 +44% 3 506 613 – 7 035 525 ±0 ▼0.3% ▲1.1% · 989
C# 4 956 751 -6% 4 165 951 – 6 029 667 +45% 3 262 269 – 7 527 490 ±0 ▼0.4% ▲0.8% · 698
SQL 4 824 748 -9% 4 111 136 – 5 754 316 +40% 2 963 581 – 7 144 131 ±0 ▼1.6% ▼1.5% · 2 040
Linux 4 797 711 -9% 3 959 024 – 5 755 591 +45% 3 131 076 – 7 091 710 ▲0.6% ▼0.7% ▲0.7% · 1 476
JavaScript 4 771 205 -10% 4 105 655 – 5 591 145 +36% 3 083 352 – 6 783 375 ±0 ▼2.1% ▼0.5% · 1 156
GitHub 4 691 684 -11% 4 001 506 – 5 740 599 +43% 3 357 428 – 6 869 265 ▲0.7% ±0 ±0 · 874
Git 4 466 112 -16% 3 694 541 – 5 426 700 +47% 3 101 167 – 6 084 482 ±0 ±0 · · 714

🧩 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 626 673 +25% 5 920 036 – 7 885 159 +33% 5 429 989 – 9 715 985 ±0 ▼0.7% ▼0.3% · 383
AI / ML Engineer 5 964 006 +13% 5 207 439 – 7 184 896 +38% 4 078 247 – 8 554 199 ±0 ±0 ▲0.9% · 530
Data Scientist 5 566 405 +5% 4 796 326 – 6 662 781 +39% 3 594 503 – 8 331 903 ▼1.1% ▼1.2% ±0 · 281
Product Manager 5 503 452 +4% 4 705 881 – 6 577 818 +40% 3 495 315 – 7 523 379 ▲0.4% ▼3.7% ▼3.4% · 360
Software Engineer 5 433 872 +3% 4 604 473 – 6 632 633 +44% 3 700 023 – 8 336 014 ±0 ▼0.5% ▼1.2% · 3 516
Solution / Enterprise Architect 5 367 075 +1% 4 604 473 – 6 632 633 +44% 3 768 542 – 7 131 451 ±0 ±0 ▼0.4% · 287
Project Manager 5 115 791 -3% 4 522 250 – 6 084 482 +35% 3 541 867 – 7 802 937 ±0 ±0 ±0 · 393
Security Engineer 5 089 285 -4% 4 308 841 – 6 052 949 +40% 3 562 985 – 7 537 083 ▲1.1% ±0 ▼0.5% · 456
Data Engineer 5 023 018 -5% 4 111 136 – 6 029 667 +47% 3 335 010 – 7 617 935 ▲1.2% ▲1.2% ▲3.8% · 238
Architect 4 930 245 -7% 4 072 766 – 6 059 815 +49% 3 562 541 – 7 268 489 ▲0.3% ▼1.1% ▼2.1% · 279
DevOps / SRE 4 877 231 -8% 3 837 061 – 6 029 667 +57% 3 521 873 – 7 380 038 ▲1.5% ▲0.7% ▲5.3% · 209
Other 4 638 671 -12% 4 001 506 – 5 506 182 +38% 2 740 758 – 7 400 045 ±0 ±0 ±0 · 4 303
IT Consultant 4 545 898 -14% 3 837 061 – 5 481 515 +43% 2 877 795 – 6 666 893 ▲0.9% ▼4.7% ▼4.7% · 685
QA / Test Engineer 3 901 785 -26% 3 472 540 – 4 686 695 +35% 2 787 350 – 5 553 871 ±0 ±0 ▲1.9% · 323

🏠 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 5 441 824 +3% 4 659 288 – 6 629 892 +42% 3 531 630 – 8 222 273 ±0 ▼1.1% ▲0.3% · 1 757
Remote 5 155 552 -3% 4 467 435 – 6 029 667 +35% 3 192 982 – 7 537 083 ▲0.5% ▲0.8% ▲1.0% · 2 734
On-site 5 069 405 -4% 4 193 359 – 6 029 667 +44% 3 151 871 – 7 739 187 ±0 ▼0.9% ▼0.9% · 9 370

🔓 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
Polymarket 10 258 613 27 31 Open →
Anthropic 9 916 659 261 329 Open →
HubSpot 9 466 648 15 42 Open →
Mercor 8 617 235 51 225 Open →
Perplexity 8 548 844 46 64 Open →
SpaceXAI 8 480 453 62 126 Open →
OpenAI 8 412 062 395 476 Open →
Wayve 8 035 913 35 199 Open →
Decagon 8 001 718 54 66 Open →
Sierra 7 796 546 35 58 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 3 180 375 4 111 136 5 289 662 6 396 928 7 764 963 4 379 730 6 072 148 69.7% 13 861
2026-10-04 3 197 806 4 111 136 5 289 662 6 372 261 7 687 825 4 379 730 6 061 007 67.5% 13 436
2026-10-03 3 272 464 4 168 555 5 297 884 6 476 410 7 811 159 4 385 212 6 166 704 63.4% 12 627
2026-10-02 3 233 706 4 119 184 5 235 137 6 399 705 7 732 187 4 333 275 6 093 668 67.9% 12 335
2026-10-01 3 208 886 4 085 014 5 188 236 6 350 584 7 672 839 4 300 015 6 038 537 68.4% 12 402
2026-09-30 3 210 463 4 087 472 5 190 786 6 353 705 7 676 610 4 302 128 6 049 868 68.5% 12 422
2026-09-29 3 210 270 4 081 399 5 189 130 6 345 257 7 676 148 4 301 869 6 029 339 69.0% 12 525
2026-09-28 3 187 351 4 052 261 5 152 084 6 283 940 7 621 346 4 271 157 5 969 503 70.1% 12 756
2026-09-27 3 187 351 4 052 261 5 152 084 6 273 262 7 607 999 4 271 157 5 968 942 68.2% 12 438
2026-09-26 3 187 351 4 052 261 5 152 084 6 274 177 7 607 999 4 271 157 5 976 897 67.6% 12 324
2026-09-25 3 205 061 4 080 145 5 180 710 6 341 673 7 663 693 4 294 889 6 039 688 67.9% 12 368
2026-09-24 3 176 484 4 043 765 5 134 517 6 285 128 7 595 361 4 256 595 5 985 836 68.0% 12 444
2026-09-23 3 138 551 3 990 219 5 074 517 6 216 645 7 504 660 4 205 764 5 914 356 68.3% 12 491
2026-09-22 3 138 277 3 993 812 5 085 901 6 236 142 7 504 003 4 205 396 5 913 838 69.0% 12 583
2026-09-21 3 162 815 4 021 067 5 120 370 6 272 652 7 549 434 4 238 279 5 960 079 70.0% 12 793
2026-09-20 3 169 244 4 037 258 5 125 668 6 260 070 7 549 434 4 238 279 5 960 079 68.1% 12 463
2026-09-19 3 164 372 4 026 471 5 118 384 6 259 408 7 549 434 4 238 279 5 960 079 67.8% 12 366
2026-09-18 3 149 188 4 005 361 5 086 177 6 217 756 7 508 731 4 215 428 5 927 946 67.9% 12 418
2026-09-17 3 143 172 4 001 358 5 080 672 6 245 870 7 502 547 4 211 956 5 923 063 67.8% 12 351
2026-09-16 3 156 251 4 018 009 5 103 135 6 246 417 7 533 766 4 229 483 5 947 710 68.5% 12 468
2026-09-15 3 146 942 4 006 158 5 088 084 6 233 265 7 511 546 4 217 008 5 930 168 68.9% 12 559
2026-09-14 3 128 259 3 977 133 5 056 566 6 191 019 7 466 950 4 191 972 5 894 961 69.9% 12 783
2026-09-13 3 131 665 3 982 400 5 056 566 6 192 840 7 466 950 4 191 972 5 894 961 68.2% 12 514
2026-09-12 3 128 259 3 982 373 5 056 566 6 216 236 7 466 950 4 191 972 5 894 961 67.2% 12 338
2026-09-11 3 124 365 3 972 182 5 050 271 6 208 497 7 457 654 4 186 753 5 887 622 68.0% 12 353
2026-09-10 3 107 881 3 956 431 5 023 626 6 175 741 7 418 308 4 164 664 5 856 559 68.2% 12 400
2026-09-09 3 118 049 3 964 153 5 040 063 6 176 966 7 442 580 4 178 291 5 845 066 68.9% 12 506
2026-09-08 3 109 482 3 953 262 5 026 215 6 146 046 7 416 011 4 166 811 5 820 514 69.8% 12 685
2026-09-07 3 110 167 3 954 132 5 027 322 6 135 690 7 411 262 4 167 728 5 808 771 69.9% 12 729
2026-09-06 3 113 084 3 954 132 5 027 322 6 121 351 7 400 322 4 167 728 5 808 771 68.1% 12 405

🔧 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 582 CAD 259 PLN 10 GBP 9 EUR 6 INR 5 BRL 3 SGD 2
Stated period
yearly 13 069 monthly 563 hourly 243 daily 1
Range type
13 876 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: 13 256 / 13 876 (95.5%)

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 →