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.
data/rawdata/martsThis 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.
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.
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.
Method note: this view shows Belgrade as city municipalities only.
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.
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.
Method note: arithmetic average across available city-group members.
Method note: weighted by registered employment by municipality of residence.
Method note: median across available city-group members.
Method note: arithmetic average across available city-group members.
Method note: weighted by registered employment by municipality of residence.
Method note: median across available city-group members.
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.
Tip: hover over the dashed vertical gap to see the floating gross-minus-net values for each year.
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.
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.
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.
Method note: this chart shows positive quarter-over-quarter net earnings growth from the previous quarter to Q4 2025.
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.
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.
Reference materials and supporting structure used in the report.
This project uses the official territorial hierarchy from the local reference dictionary.