📈 IT salary movement
What is being advertised right now? We record the salary ranges PUBLISHED in job ads every day and show how they move. Every figure comes with its sample size.
Measuring since: 2026-07-26 · Last measured: 2026-08-20 · 26 days recorded · 99.8% of our salary data is not quoted in forint, so the forint figure also moves with the exchange rate. Base rate fixed on: 2026-07-26 · Currency effect since base: -1.23%
⏱️ 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.
How the median moved · All · gross HUF/month
🎯 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.
🪜 By level
The career ladder: how much more the next step pays. Bars show the ratio of medians.
| Level | Range midpoint | Difference | Range floors – Range ceilings | Range width | Full field (p10–p90) | daily | weekly | monthly | yearly | 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) | daily | weekly | monthly | yearly | 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) | daily | weekly | monthly | yearly | 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) | daily | weekly | monthly | yearly | 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.
| Country | Publishes pay | With pay | Total ads | Range midpoint | daily | weekly | monthly | yearly |
|---|---|---|---|---|---|---|---|---|
| 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.
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 | p10 | p25 | Median | p75 | p90 | 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
Exchange rates
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.jsonFree 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.
🔬 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 →