Serbia Labour Market Monitor

This project was created with Codex by Maria Mazaeva on the basis of official Serbian SORS open data from data.stat.gov.rs.

Author contacts: +381629614352 (Viber / WhatsApp), Telegram @kinsec.

The current municipality earnings report is built from 4 primary raw source files. The full raw-source catalog currently contains 39 CSV files and 173 527 raw records. You can review the file list in data/raw and the descriptions in DATASETS_DESCRIPTION.md.

39Raw source files in data/raw
17Analytical CSV tables in data/marts
28 852Total rows across analytical tables
1963-2026Observed source years from min to max

Block 1. Regional Slice

This block contains all current territorial views: municipality rankings, republic net-vs-gross comparison, growth, regional drill-downs, and side-by-side comparisons of arithmetic average, weighted average, and median for grouped territorial views.

Macro Region Average Net Earnings, 2025102 803 RSDSRBIJA – SEVER88 715 RSDSRBIJA – JUG
Macro Region Weighted Average Net Earnings, 2025120 940 RSDSRBIJA – SEVER94 216 RSDSRBIJA – JUG
Macro Region Median Net Earnings, 202593 173 RSDSRBIJA – SEVER86 426 RSDSRBIJA – JUG

North vs South Interpretation

Serbia North is consistently ahead of Serbia South across average, weighted average, and median net earnings. However, the size of the gap changes depending on the aggregation method, so the next step is to look below the macro level.

Top District Average Net Earnings, 2025Beogradski region129 424 RSDBorska oblast106 655 RSDSremska oblast96 503 RSDMoravička oblast95 624 RSDJužnobanatska oblast93 867 RSDJužnobačka oblast93 827 RSDPodunavska oblast92 926 RSDKolubarska oblast92 534 RSDSrednjobanatska oblast90 816 RSDSevernobačka oblast90 742 RSD
Top District Weighted Average Net Earnings, 2025Beogradski region136 214 RSDJužnobačka oblast114 091 RSDBorska oblast112 570 RSDNišavska oblast102 261 RSDJužnobanatska oblast101 960 RSDŠumadijska oblast98 906 RSDSremska oblast98 485 RSDBraničevska oblast96 723 RSDSevernobačka oblast96 279 RSDSrednjobanatska oblast95 922 RSD
Top District Median Net Earnings, 2025Beogradski region123 944 RSDBorska oblast104 042 RSDSremska oblast97 132 RSDMoravička oblast95 929 RSDKolubarska oblast93 862 RSDJužnobačka oblast91 366 RSDZaječarska oblast91 088 RSDJužnobanatska oblast90 800 RSDPodunavska oblast90 520 RSDSrednjobanatska oblast90 032 RSD

Borska Oblast Note

A separate interesting case is Borska oblast.

At first, I was surprised to see it repeatedly appearing near the top across average, weighted average, and median earnings views. But after looking at the context, it makes more sense: this is not just a typical regional labor market, but a strong mining and industrial cluster around Bor, copper production, metallurgy, and large employers.

So for relocation and office-job analysis, I would treat Borska oblast as a salary outlier that needs a separate explanation, not as a direct alternative to Belgrade or Novi Sad.

Belgrade District Net Earnings Treemap, 2025Stari gradStari grad: 187 799 RSDVračarVračar: 181 668 RSDNovi BeogradNovi Beograd: 174 887 RSDSavski venacSavski venac: 174 393 RSDVoždovacVoždovac: 142 552 RSDZvezdaraZvezdara: 140 600 RSDČukaricaČukarica: 130 321 RSDZemunZemun: 128 129 RSDPalilulaPalilula (Beograd): 123 944 RSDRakovicaRakovica: 123 178 RSDLazarevacLazarevac: 110 210 RSDObrenovacObrenovac: 103 062 RSDSurčinSurčin: 100 316 RSDGrockaGrocka: 97 462 RSDBarajevoBarajevo: 95 015 RSDSopotSopot: 94 292 RSDMladenovacMladenovac: 92 373 RSDLowerHigher earnings

Method note: this view shows Belgrade as city municipalities only.

Južnobačka Oblast Treemap, 2025GradNovi SadGrad Novi Sad: 126 478 RSDSremskiKarlovciSremski Karlovci: 101 851 RSDBeočinBeočin: 94 855 RSDTemerinTemerin: 93 729 RSDBačkaPalankaBačka Palanka: 92 907 RSDVrbasVrbas: 91 490 RSDBečejBečej: 91 242 RSDŽabaljŽabalj: 89 085 RSDBačkiPetrovacBački Petrovac: 88 774 RSDTitelTitel: 87 522 RSDSrbobranSrbobran: 85 777 RSDBačBač: 82 213 RSDLowerHigher earnings

Method note: `Grad Novi Sad` appears as one city tile inside `Južnobačka oblast`; the other tiles are the remaining municipalities of the district.

Drill-Down Interpretation

The drill-down views show that both key relocation candidates have internal differences.

Belgrade has a much wider spread between its city municipalities: central business-oriented areas such as Stari grad, Vračar, Novi Beograd, and Savski venac are far above the outer municipalities.

Južnobačka oblast is more concentrated around Grad Novi Sad. Novi Sad clearly leads the district, while the surrounding municipalities show noticeably lower earnings levels.

For relocation analysis, this means that “Belgrade vs Novi Sad” is not only a city-level comparison. In Belgrade, the exact municipality may matter much more, while in Južnobačka oblast the main salary signal is strongly concentrated in Novi Sad itself.

Top 10 by Net Earnings, 2025Grad Beograd129 424 RSDGrad Novi Sad126 478 RSDBor126 453 RSDMajdanpek114 631 RSDPančevo109 434 RSDLučani108 150 RSDVršac104 759 RSDInđija104 649 RSDGrad Požarevac104 088 RSDKragujevac103 574 RSD
Bottom 10 by Net Earnings, 2025Preševo73 898 RSDBojnik75 010 RSDVlasotince76 484 RSDLebane78 426 RSDGadžin Han78 625 RSDCrna Trava78 728 RSDBosilegrad79 127 RSDBlace79 346 RSDBujanovac79 403 RSDMerošina79 739 RSD
Belgrade vs Novi Sad Gross Earnings,Average178 088 RSD151 253 RSD124 418 RSD97 582 RSD70 747 RSD20182019202020212022202320242025Beograd grossNovi Sad gross

Method note: arithmetic average across available city-group members.

Belgrade vs Novi Sad Gross Earnings,Weighted Average187 529 RSD159 299 RSD131 068 RSD102 838 RSD74 607 RSD20182019202020212022202320242025Beograd grossNovi Sad gross

Method note: weighted by registered employment by municipality of residence.

Belgrade vs Novi Sad Gross Earnings,Median174 469 RSD149 563 RSD124 658 RSD99 752 RSD74 846 RSD20182019202020212022202320242025Beograd grossNovi Sad gross

Method note: median across available city-group members.

Belgrade vs Novi Sad Net Earnings,Average129 426 RSD109 859 RSD90 293 RSD70 726 RSD51 159 RSD20182019202020212022202320242025Beograd netNovi Sad net

Method note: arithmetic average across available city-group members.

Belgrade vs Novi Sad Net Earnings,Weighted Average136 215 RSD115 637 RSD95 060 RSD74 483 RSD53 905 RSD20182019202020212022202320242025Beograd netNovi Sad net

Method note: weighted by registered employment by municipality of residence.

Belgrade vs Novi Sad Net Earnings,Median126 469 RSD108 370 RSD90 272 RSD72 174 RSD54 075 RSD20182019202020212022202320242025Beograd netNovi Sad net

Method note: median across available city-group members.

Interpretation

For the practical question “Where is the probability of finding a higher-paid job better?”, the median across available city-group members may be more informative than a simple average or even an employment-weighted average.

The weighted average is useful for understanding the overall salary level of the employed population, but it can be strongly influenced by large employment centers.

The median, even though it is not a true salary median by individual workers, gives a more robust view of the typical salary level across the available territorial units. It helps reduce the influence of outliers and shows whether higher earnings are more broadly distributed across the city group. According to this information, Novi Sad is better than Belgrade, so I choose it for living.

Net & Gross Earnings Comparison151 086 RSD125 727 RSD100 368 RSD75 009 RSD49 650 RSD20182019202020212022202320242025gap 18 979 RSDgap 20 895 RSDgap 22 911 RSDgap 24 920 RSDgap 28 383 RSDgap 32 592 RSDgap 37 260 RSDgap 41 624 RSDGrossNetHover over dashed gap

Tip: hover over the dashed vertical gap to see the floating gross-minus-net values for each year.

Gross-Net Gap, % of Gross27.65%27.60%27.55%27.50%27.45%2018201920202021202220232024202527.65%27.56%27.61%27.45%27.47%27.48%27.52%27.55%Gap share of gross earnings

Method note: this is the share of the gross-minus-net gap in gross earnings. It is a useful proxy for the earnings wedge, but not a direct measure of tax-law changes.

Gap Interpretation

When I built the first chart, the growing gap between gross and net earnings immediately caught my attention. At first glance, it looked as if the tax burden might be increasing.

But after checking the gap as a percentage of gross earnings, the picture became much calmer: the share remained surprisingly stable over the last seven years, fluctuating only slightly around 27.5%.

So the absolute gap is growing mostly because earnings themselves are growing, not because the gross-net structure is changing dramatically.

This kind of stability is actually quite reassuring when looking at salary expectations and relocation decisions.

Growth Momentum

After looking at the current salary level, I also checked where net earnings have grown the fastest. This view does not answer the same question as the 2025 salary ranking: a fast-growing municipality is not automatically the best-paid one. However, it helps identify territories where the earnings landscape is changing more dynamically.

Net Earnings Growth 2018-2025Svrljig148.03%Bor138.47%Ćićevac135.78%Grad Novi Sad133.88%Majdanpek133.00%Varvarin129.34%Inđija128.59%Gadžin Han128.51%Grad Niš128.26%Krupanj128.17%
Net Earnings Growth Q3 2025-Q4 2025Ljubovija17.91%Lučani17.29%Vladimirci12.94%Subotica12.03%Zaječar12.01%Vranjska Banja11.73%Kanjiža11.47%Mali Zvornik11.07%Dimitrovgrad10.82%Brus10.72%

Method note: this chart shows positive quarter-over-quarter net earnings growth from the previous quarter to Q4 2025.

Growth Interpretation

Growth charts show momentum, not absolute attractiveness.

The 2018–2025 view helps identify municipalities where earnings have increased the fastest over the long term. The Q3–Q4 2025 view is more volatile and should be treated as a short-term signal only.

For relocation decisions, these charts are useful as a supporting layer: they show where the market is changing, but they should be read together with current salary levels, employment volume, and job structure.

Block 2. Professional Slice

This block introduces earnings rankings by activity division and starts the profession-oriented view with the highest-paid and lowest-paid activity groups in 2025.

Top 10 Activity Divisions by Net Earnings, 2025Computer programming, consultancy andrelated activities297 955 RSDAir transport238 235 RSDManufacture of coke and refined petroleumproducts219 857 RSDScientific research and development214 270 RSDExtraction of crude petroleum and naturalgas192 121 RSDManufacture of tobacco products185 346 RSDFinancial service activities, exceptinsurance and pension funding181 221 RSDActivities of head offices; managementconsultancy activities178 468 RSDTelecommunications168 958 RSDMining of metal ores160 802 RSD
Bottom 10 Activity Divisions by Net Earnings, 2025Food and beverage service activities63 324 RSDRepair of computers and personal andhousehold goods66 814 RSDManufacture of wood and of products ofwood and cork, except furniture;manufacture of articles of straw and plaiting materials67 317 RSDManufacture of wearing apparel70 150 RSDFishing and aquaculture74 204 RSDManufacture of leather and relatedproducts76 070 RSDManufacture of furniture77 090 RSDRetail trade, except of motor vehicles andmotorcycles77 304 RSDServices to buildings and landscapeactivities77 830 RSDVeterinary activities78 262 RSD

Appendix

Reference materials and supporting structure used in the report.

Territorial Hierarchy Reference

This project uses the official territorial hierarchy from the local reference dictionary.

  • Country: Republic of Serbia
  • Macro regions: 2
  • Statistical regions: 4
  • Administrative districts: 25
  • Local units in current reference: 174
Open territorial hierarchy
SRBIJA – JUG (2 statistical regions, 17 districts, 110 local units)
Region Južne i Istočne Srbije (9 districts, 56 local units)
Borska oblast (4 local units)
  • Bor [municipality]
  • Kladovo [municipality]
  • Majdanpek [municipality]
  • Negotin [municipality]
Braničevska oblast (10 local units)
  • Golubac [municipality]
  • Grad Požarevac [city - Grad Požarevac]
  • Kostolac [city municipality - Grad Požarevac]
  • Kučevo [municipality]
  • Malo Crniće [municipality]
  • Petrovac na Mlavi [municipality]
  • Požarevac [city municipality - Grad Požarevac]
  • Veliko Gradište [municipality]
  • Žabari [municipality]
  • Žagubica [municipality]
Jablanička oblast (6 local units)
  • Bojnik [municipality]
  • Crna Trava [municipality]
  • Lebane [municipality]
  • Leskovac [municipality]
  • Medveđa [municipality]
  • Vlasotince [municipality]
Nišavska oblast (12 local units)
  • Aleksinac [municipality]
  • Crveni Krst [city municipality - Grad Niš]
  • Doljevac [municipality]
  • Gadžin Han [municipality]
  • Grad Niš [city - Grad Niš]
  • Medijana [city municipality - Grad Niš]
  • Merošina [municipality]
  • Niška Banja [city municipality - Grad Niš]
  • Palilula (Niš) [city municipality - Grad Niš]
  • Pantelej [city municipality - Grad Niš]
  • Ražanj [municipality]
  • Svrljig [municipality]
Pirotska oblast (4 local units)
  • Babušnica [municipality]
  • Bela Palanka [municipality]
  • Dimitrovgrad [municipality]
  • Pirot [municipality]
Podunavska oblast (3 local units)
  • Smederevo [municipality]
  • Smederevska Palanka [municipality]
  • Velika Plana [municipality]
Pčinjska oblast (9 local units)
  • Bosilegrad [municipality]
  • Bujanovac [municipality]
  • Grad Vranje [city - Grad Vranje]
  • Preševo [municipality]
  • Surdulica [municipality]
  • Trgovište [municipality]
  • Vladičin Han [municipality]
  • Vranje [city municipality - Grad Vranje]
  • Vranjska Banja [city municipality - Grad Vranje]
Toplička oblast (4 local units)
  • Blace [municipality]
  • Kuršumlija [municipality]
  • Prokuplje [municipality]
  • Žitorađa [municipality]
Zaječarska oblast (4 local units)
  • Boljevac [municipality]
  • Knjaževac [municipality]
  • Sokobanja [municipality]
  • Zaječar [municipality]
Region Šumadije i Zapadne Srbije (8 districts, 54 local units)
Kolubarska oblast (6 local units)
  • Lajkovac [municipality]
  • Ljig [municipality]
  • Mionica [municipality]
  • Osečina [municipality]
  • Ub [municipality]
  • Valjevo [municipality]
Mačvanska oblast (8 local units)
  • Bogatić [municipality]
  • Koceljeva [municipality]
  • Krupanj [municipality]
  • Ljubovija [municipality]
  • Loznica [municipality]
  • Mali Zvornik [municipality]
  • Vladimirci [municipality]
  • Šabac [municipality]
Moravička oblast (4 local units)
  • Gornji Milanovac [municipality]
  • Ivanjica [municipality]
  • Lučani [municipality]
  • Čačak [municipality]
Pomoravska oblast (6 local units)
  • Despotovac [municipality]
  • Jagodina [municipality]
  • Paraćin [municipality]
  • Rekovac [municipality]
  • Svilajnac [municipality]
  • Ćuprija [municipality]
Rasinska oblast (6 local units)
  • Aleksandrovac [municipality]
  • Brus [municipality]
  • Kruševac [municipality]
  • Trstenik [municipality]
  • Varvarin [municipality]
  • Ćićevac [municipality]
Raška oblast (5 local units)
  • Kraljevo [municipality]
  • Novi Pazar [municipality]
  • Raška [municipality]
  • Tutin [municipality]
  • Vrnjačka Banja [municipality]
Zlatiborska oblast (12 local units)
  • Arilje [municipality]
  • Bajina Bašta [municipality]
  • Grad Užice [city - Grad Užice]
  • Kosjerić [municipality]
  • Nova Varoš [municipality]
  • Požega [municipality]
  • Priboj [municipality]
  • Prijepolje [municipality]
  • Sevojno [city municipality - Grad Užice]
  • Sjenica [municipality]
  • Užice [city municipality - Grad Užice]
  • Čajetina [municipality]
Šumadijska oblast (7 local units)
  • Aranđelovac [municipality]
  • Batočina [municipality]
  • Knić [municipality]
  • Kragujevac [municipality]
  • Lapovo [municipality]
  • Rača [municipality]
  • Topola [municipality]
SRBIJA – SEVER (2 statistical regions, 8 districts, 64 local units)
Beogradski region (1 districts, 17 local units)
Beogradski region (17 local units)
  • Barajevo [city municipality - Grad Beograd]
  • Grocka [city municipality - Grad Beograd]
  • Lazarevac [city municipality - Grad Beograd]
  • Mladenovac [city municipality - Grad Beograd]
  • Novi Beograd [city municipality - Grad Beograd]
  • Obrenovac [city municipality - Grad Beograd]
  • Palilula (Beograd) [city municipality - Grad Beograd]
  • Rakovica [city municipality - Grad Beograd]
  • Savski venac [city municipality - Grad Beograd]
  • Sopot [city municipality - Grad Beograd]
  • Stari grad [city municipality - Grad Beograd]
  • Surčin [city municipality - Grad Beograd]
  • Voždovac [city municipality - Grad Beograd]
  • Vračar [city municipality - Grad Beograd]
  • Zemun [city municipality - Grad Beograd]
  • Zvezdara [city municipality - Grad Beograd]
  • Čukarica [city municipality - Grad Beograd]
Region Vojvodine (7 districts, 47 local units)
Južnobanatska oblast (8 local units)
  • Alibunar [municipality]
  • Bela Crkva [municipality]
  • Kovačica [municipality]
  • Kovin [municipality]
  • Opovo [municipality]
  • Pančevo [municipality]
  • Plandište [municipality]
  • Vršac [municipality]
Južnobačka oblast (14 local units)
  • Bač [municipality]
  • Bačka Palanka [municipality]
  • Bački Petrovac [municipality]
  • Beočin [municipality]
  • Bečej [municipality]
  • Grad Novi Sad [city - Grad Novi Sad]
  • Novi Sad [city municipality - Grad Novi Sad]
  • Petrovaradin [city municipality - Grad Novi Sad]
  • Srbobran [municipality]
  • Sremski Karlovci [municipality]
  • Temerin [municipality]
  • Titel [municipality]
  • Vrbas [municipality]
  • Žabalj [municipality]
Severnobanatska oblast (6 local units)
  • Ada [municipality]
  • Kanjiža [municipality]
  • Kikinda [municipality]
  • Novi Kneževac [municipality]
  • Senta [municipality]
  • Čoka [municipality]
Severnobačka oblast (3 local units)
  • Bačka Topola [municipality]
  • Mali Iđoš [municipality]
  • Subotica [municipality]
Srednjobanatska oblast (5 local units)
  • Nova Crnja [municipality]
  • Novi Bečej [municipality]
  • Sečanj [municipality]
  • Zrenjanin [municipality]
  • Žitište [municipality]
Sremska oblast (7 local units)
  • Inđija [municipality]
  • Irig [municipality]
  • Pećinci [municipality]
  • Ruma [municipality]
  • Sremska Mitrovica [municipality]
  • Stara Pazova [municipality]
  • Šid [municipality]
Zapadnobačka oblast (4 local units)
  • Apatin [municipality]
  • Kula [municipality]
  • Odžaci [municipality]
  • Sombor [municipality]