📈 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 · Hungary · 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.
Not enough data for this breakdown yet.
⚙️ 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 |
|---|---|---|---|---|---|---|---|---|---|---|
| AI/ML | 1 650 000 | -17% | 1 583 333 – 1 980 000 | +25% | 1 089 067 – 2 204 080 | ±0 | · | · | · | 15 |
🧩 By role
Median per role against the overall median.
Not enough data for this breakdown yet.
🏠 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 |
|---|---|---|---|---|---|---|---|---|---|---|
| On-site | 1 975 000 | 0% | 1 700 000 – 2 250 000 | +32% | 974 550 – 4 440 584 | ±0 | ±0 | · | · | 34 |
🔓 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.
📒 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 054 000 | 1 625 000 | 1 979 167 | 2 291 667 | 4 440 584 | 1 700 000 | 2 250 000 | 5.2% | 41 |
| 2026-08-19 | 1 054 000 | 1 625 000 | 1 979 167 | 2 291 667 | 4 437 174 | 1 700 000 | 2 250 000 | 5.3% | 41 |
| 2026-08-18 | 1 054 000 | 1 625 000 | 1 979 167 | 2 291 667 | 4 408 307 | 1 700 000 | 2 250 000 | 5.2% | 41 |
| 2026-08-17 | 1 071 533 | 1 629 167 | 1 975 000 | 2 283 333 | 4 416 224 | 1 700 000 | 2 245 833 | 5.4% | 43 |
| 2026-08-16 | 1 071 533 | 1 629 167 | 1 975 000 | 2 283 333 | 4 416 224 | 1 700 000 | 2 245 833 | 5.5% | 43 |
| 2026-08-15 | 1 062 767 | 1 627 083 | 1 975 000 | 2 287 500 | 4 416 224 | 1 700 000 | 2 227 083 | 5.4% | 42 |
| 2026-08-14 | 1 366 200 | 1 637 500 | 1 989 583 | 2 597 917 | 4 434 738 | 1 700 000 | 2 250 000 | 4.5% | 38 |
| 2026-08-13 | 1 366 200 | 1 637 500 | 1 989 583 | 2 597 917 | 4 433 520 | 1 700 000 | 2 247 917 | 4.5% | 38 |
| 2026-08-12 | 1 321 600 | 1 650 000 | 2 044 167 | 2 700 000 | 4 433 520 | 1 700 000 | 2 250 000 | 4.4% | 37 |
| 2026-08-11 | 1 410 800 | 1 648 567 | 2 000 000 | 2 495 833 | 4 433 520 | 1 700 000 | 2 245 833 | 4.5% | 39 |
| 2026-08-10 | 1 455 400 | 1 649 283 | 2 022 083 | 2 425 000 | 4 433 520 | 1 711 667 | 2 250 000 | 4.6% | 40 |
| 2026-08-09 | 1 455 400 | 1 649 283 | 2 022 083 | 2 425 000 | 4 433 520 | 1 711 667 | 2 250 000 | 4.6% | 40 |
| 2026-08-08 | 1 429 800 | 1 647 850 | 1 987 500 | 2 322 916 | 4 433 520 | 1 711 667 | 2 247 917 | 4.8% | 42 |
| 2026-08-07 | 1 425 750 | 1 647 850 | 1 987 500 | 2 322 916 | 4 433 520 | 1 711 667 | 2 247 917 | 4.9% | 42 |
| 2026-08-06 | 1 435 950 | 1 643 683 | 1 975 000 | 2 302 083 | 4 409 160 | 1 700 000 | 2 206 250 | 5.1% | 44 |
| 2026-08-05 | 1 450 500 | 1 647 133 | 1 975 000 | 2 291 667 | 4 409 160 | 1 700 000 | 2 166 667 | 5.1% | 45 |
| 2026-08-04 | 1 321 600 | 1 647 133 | 1 975 000 | 2 427 575 | 4 433 520 | 1 700 000 | 2 250 000 | 4.7% | 37 |
| 2026-08-03 | 1 042 650 | 1 625 000 | 1 975 000 | 2 218 606 | 2 342 757 | 1 700 000 | 2 206 250 | 3.8% | 30 |
| 2026-08-02 | 1 500 000 | 1 625 000 | 1 975 000 | 2 251 556 | 2 427 484 | 1 700 000 | 2 250 000 | 4.0% | 32 |
| 2026-08-01 | 1 098 600 | 1 597 917 | 1 973 333 | 2 156 202 | 2 417 333 | 1 700 000 | 2 247 917 | 4.0% | 32 |
| 2026-07-31 | 1 113 649 | 1 502 083 | 1 960 833 | 2 104 792 | 2 389 333 | 1 690 529 | 2 206 250 | 4.3% | 34 |
| 2026-07-30 | 970 800 | 1 394 433 | 1 960 833 | 2 187 404 | 2 397 333 | 1 583 333 | 2 166 667 | 2.9% | 23 |
| 2026-07-29 | 981 200 | 1 448 258 | 1 845 708 | 2 156 202 | 2 384 667 | 1 543 750 | 2 125 067 | 3.1% | 24 |
| 2026-07-28 | 981 200 | 1 445 133 | 1 843 000 | 2 156 202 | 2 380 000 | 1 541 667 | 2 125 067 | 5.1% | 24 |
| 2026-07-27 | 981 200 | 1 451 383 | 1 848 417 | 2 156 202 | 2 389 333 | 1 545 833 | 2 125 067 | 5.1% | 24 |
| 2026-07-26 | 981 200 | 1 451 383 | 1 848 417 | 2 156 202 | 2 389 333 | 1 545 833 | 2 125 067 | 5.1% | 24 |
🔧 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 →