{"id":6248,"date":"2026-07-10T17:43:49","date_gmt":"2026-07-10T17:43:49","guid":{"rendered":"https:\/\/ceo.com.pl\/en\/?p=6248"},"modified":"2026-07-10T17:48:18","modified_gmt":"2026-07-10T17:48:18","slug":"malopolska-has-3-43-million-residents-with-migration-driving-population-growth-47613","status":"publish","type":"post","link":"https:\/\/ceo.com.pl\/en\/malopolska-has-3-43-million-residents-with-migration-driving-population-growth-47613\/","title":{"rendered":"Ma\u0142opolska Has 3.43 Million Residents, with Migration Driving Population Growth"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Ma\u0142opolska had 3.43 million residents at the end of 2025, but almost the entire region recorded a natural population decline. The positive migration balance was highly uneven, with Krak\u00f3w and the Wieliczka and Krak\u00f3w counties attracting most new residents, while Tarn\u00f3w, Nowy S\u0105cz and peripheral counties continued to lose population. These widening demographic disparities could increasingly affect labour availability and corporate investment decisions in the coming years.<\/p>\n\n\n\n<div class=\"lud25-wrap\">\n<style>\n.lud25-wrap{--ceo-orange:#e67a2d;--ceo-navy:#131F49;--mp-gray:#f4f4f4;--mp-gray2:#6b6b6b;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;color:#232323;line-height:1.65;max-width:100%;}\n.lud25-wrap h2,.lud25-wrap h3{font-family:Georgia,'Times New Roman',serif;color:var(--ceo-navy);}\n.lud25-kicker{display:inline-block;background:var(--ceo-orange);color:#ffffff !important;font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:6px 14px;border-radius:3px;margin-bottom:16px;}\n.lud25-h2{font-size:30px;line-height:1.25;margin:0 0 14px;font-weight:700;}\n.lud25-dateline{color:var(--mp-gray2);font-size:13px;margin-bottom:22px;border-bottom:1px solid #e4e4e4;padding-bottom:14px;}\n.lud25-lead{border-left:4px solid var(--ceo-orange);padding:4px 0 4px 18px;font-size:18px;color:#333;margin:0 0 30px;}\n.lud25-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:0 0 34px;}\n@media(max-width:820px){.lud25-kpi-grid{grid-template-columns:repeat(2,1fr);}}\n@media(max-width:520px){.lud25-kpi-grid{grid-template-columns:1fr;}}\n.lud25-kpi{background:var(--mp-gray);border-top:3px solid var(--ceo-orange);border-radius:4px;padding:16px 16px 14px;}\n.lud25-kpi-label{font-size:12px;color:var(--mp-gray2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;}\n.lud25-kpi-value{font-size:26px;font-weight:700;color:var(--ceo-navy);line-height:1.1;}\n.lud25-kpi-delta{font-size:13px;margin-top:6px;font-weight:600;}\n.lud25-kpi-delta.up{color:#1a7d1a;}\n.lud25-kpi-delta.down{color:var(--ceo-orange);}\n.lud25-h3{font-size:21px;margin:34px 0 12px;padding-bottom:8px;border-bottom:3px solid var(--ceo-orange);display:inline-block;}\n.lud25-p{margin:0 0 16px;font-size:16px;}\n.lud25-chart-box{background:#ffffff;border:1px solid #e4e4e4;border-radius:6px;padding:18px 18px 8px;margin:18px 0 28px;}\n.lud25-chart-title{font-size:14px;font-weight:700;color:var(--ceo-navy);margin-bottom:10px;}\n.lud25-chart-canvas-wrap{position:relative;height:320px;}\n.lud25-chart-canvas-wrap.tall{height:440px;}\n.lud25-table{width:100%;border-collapse:collapse;margin:18px 0 28px;font-size:14.5px;}\n.lud25-table th{background:var(--ceo-navy);color:#ffffff !important;text-align:left;padding:10px 12px;font-weight:600;}\n.lud25-table td{padding:9px 12px;border-bottom:1px solid #e4e4e4;}\n.lud25-table tr:nth-child(even) td{background:#fafafa;}\n.lud25-table tr.lud25-total td{background:#fbe9dc;font-weight:700;}\n.lud25-table-note{font-size:12px;color:var(--mp-gray2);margin:-18px 0 26px;}\n.lud25-callout{background:var(--ceo-navy);border-left:5px solid var(--ceo-orange);border-radius:4px;padding:20px 22px;margin:26px 0;}\n.lud25-callout p{color:#ffffff !important;margin:0 0 10px;font-size:15.5px;}\n.lud25-callout p:last-child{margin-bottom:0;}\n.lud25-takeaways{background:var(--mp-gray);border-radius:6px;padding:20px 24px;margin:28px 0;}\n.lud25-takeaways ul{margin:0;padding-left:20px;}\n.lud25-takeaways li{margin-bottom:10px;font-size:15px;}\n.lud25-source{font-size:12.5px;color:var(--mp-gray2);border-top:1px solid #e4e4e4;padding-top:14px;margin-top:30px;}\n<\/style>\n\n<span class=\"lud25-kicker\">Labour Market and Demographics<\/span>\n<div class=\"lud25-h2\">Ma\u0142opolska in 2025: 3.43 Million Residents, Natural Population Decline and Krak\u00f3w as the Region\u2019s Migration Magnet<\/div>\n<div class=\"lud25-dateline\">Source: Statistics Poland and the Statistical Office in Krak\u00f3w, \u201cPopulation in the Ma\u0142opolskie Voivodeship in 2025\u201d \u2014 data as at 31 December 2025.<\/div>\n\n<p class=\"lud25-lead\">At the end of 2025, the Ma\u0142opolskie Voivodeship had 3.429 million residents, accounting for 9.2% of Poland\u2019s population. The region recorded a natural population decline of 2.0 per 1,000 residents, but a positive net migration rate of 1.8 per 1,000. Almost all population inflows were concentrated in and around Krak\u00f3w, while peripheral counties were losing residents through both natural decline and migration.<\/p>\n\n<div class=\"lud25-kpi-grid\">\n<div class=\"lud25-kpi\">\n<div class=\"lud25-kpi-label\">Total population<\/div>\n<div class=\"lud25-kpi-value\">3.429 million<\/div>\n<div class=\"lud25-kpi-delta up\">9.2% of Poland\u2019s population<\/div>\n<\/div>\n\n<div class=\"lud25-kpi\">\n<div class=\"lud25-kpi-label\">Natural population change<\/div>\n<div class=\"lud25-kpi-value\">-2.0<\/div>\n<div class=\"lud25-kpi-delta down\">per 1,000 residents<\/div>\n<\/div>\n\n<div class=\"lud25-kpi\">\n<div class=\"lud25-kpi-label\">Working-age population<\/div>\n<div class=\"lud25-kpi-value\">59.1%<\/div>\n<div class=\"lud25-kpi-delta up\">of the region\u2019s population<\/div>\n<\/div>\n\n<div class=\"lud25-kpi\">\n<div class=\"lud25-kpi-label\">Net migration<\/div>\n<div class=\"lud25-kpi-value\">+1.8<\/div>\n<div class=\"lud25-kpi-delta up\">per 1,000 residents<\/div>\n<\/div>\n<\/div>\n\n<div class=\"lud25-h3\">Population Structure: A Smaller Working-Age Share Among Women Than Men<\/div>\n\n<p class=\"lud25-p\">At the end of December 2025, Ma\u0142opolska was home to 1.663 million men and 1.766 million women. Working-age residents accounted for 59.1% of the region\u2019s total population, but the structure differed considerably by sex. Among men, 63.9% were of working age and only 16.3% were of post-working age. Among women, just 54.6% were of working age, while 27.7% were of post-working age\u2014almost twice the male share. For employers, this means the region\u2019s potential female labour pool is structurally smaller, mainly because women are much more strongly represented in age groups above 65.<\/p>\n\n<table class=\"lud25-table\">\n<tbody>\n<tr>\n<th>Economic age group<\/th>\n<th>Men<\/th>\n<th>Women<\/th>\n<\/tr>\n<tr>\n<td>Pre-working age<\/td>\n<td>19.8%<\/td>\n<td>17.7%<\/td>\n<\/tr>\n<tr class=\"lud25-total\">\n<td>Working age<\/td>\n<td>63.9%<\/td>\n<td>54.6%<\/td>\n<\/tr>\n<tr>\n<td>Post-working age<\/td>\n<td>16.3%<\/td>\n<td>27.7%<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\n<div class=\"lud25-table-note\">Population structure in the Ma\u0142opolskie Voivodeship by economic age group and sex, as at 31 December 2025. Data source: Statistics Poland\/Statistical Office in Krak\u00f3w.<\/div>\n\n<div class=\"lud25-chart-box\">\n<div class=\"lud25-chart-title\">Population Age Pyramid for the Ma\u0142opolskie Voivodeship, 2025 (people)<\/div>\n<div class=\"lud25-chart-canvas-wrap tall\">\n<canvas id=\"lud25chart1\"><\/canvas>\n<\/div>\n<\/div>\n\n<p class=\"lud25-p\">The age pyramid shows a clear concentration in the 30\u201354 age groups. These generations, born during the demographic boom of the 1970s and early 1980s, now form the core of the region\u2019s labour force. At the same time, the youngest age groups, from 0 to 14, are smaller than those aged 30\u201349. Over the next 15\u201320 years, this is likely to reduce the number of young people entering the labour market unless migration offsets the decline.<\/p>\n\n<div class=\"lud25-h3\">Natural Population Change: Only Two Counties Remain in Positive Territory<\/div>\n\n<p class=\"lud25-p\">A total of 25,608 children were born in Ma\u0142opolska in 2025, while the natural population change stood at -1.97 per 1,000 residents, rounded to -2.0. This means deaths outnumbered births across the region. The trend affected almost the entire voivodeship: only Limanowa County (+1.28) and Nowy S\u0105cz County (+1.13) recorded positive natural change, while Wieliczka County was close to zero at +0.43. The deepest declines were reported in Miech\u00f3w County (-7.56) and Chrzan\u00f3w County (-7.54), more than three times the regional average.<\/p>\n\n<p class=\"lud25-p\">Krak\u00f3w clearly led in the number of live births, with 6,980 births representing 27.3% of all births in the voivodeship. It was followed by Krak\u00f3w County with 2,131 births, Nowy S\u0105cz County with 1,773 and Nowy Targ County with 1,505. Krak\u00f3w therefore accounted for more than one-quarter of all births in the region, although the city represents less than 23% of the voivodeship\u2019s population.<\/p>\n\n<div class=\"lud25-chart-box\">\n<div class=\"lud25-chart-title\">Natural Population Change per 1,000 Residents \u2014 Selected Counties, 2025<\/div>\n<div class=\"lud25-chart-canvas-wrap\">\n<canvas id=\"lud25chart2\"><\/canvas>\n<\/div>\n<\/div>\n\n<table class=\"lud25-table\">\n<tbody>\n<tr>\n<th>County<\/th>\n<th>Live births<\/th>\n<\/tr>\n<tr class=\"lud25-total\">\n<td>City of Krak\u00f3w<\/td>\n<td>6980<\/td>\n<\/tr>\n<tr>\n<td>Krak\u00f3w County<\/td>\n<td>2131<\/td>\n<\/tr>\n<tr>\n<td>Nowy S\u0105cz County<\/td>\n<td>1773<\/td>\n<\/tr>\n<tr>\n<td>Nowy Targ County<\/td>\n<td>1505<\/td>\n<\/tr>\n<tr>\n<td>Wieliczka County<\/td>\n<td>1330<\/td>\n<\/tr>\n<tr>\n<td>Tarn\u00f3w County<\/td>\n<td>1316<\/td>\n<\/tr>\n<tr>\n<td>Limanowa County<\/td>\n<td>1257<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\n<div class=\"lud25-table-note\">Counties with the highest numbers of live births in the Ma\u0142opolskie Voivodeship in 2025 (regional total: 25,608). Data source: Statistics Poland\/Statistical Office in Krak\u00f3w.<\/div>\n\n<div class=\"lud25-h3\">Migration: Krak\u00f3w\u2019s Suburban Zone Attracts Residents from Across the Region<\/div>\n\n<p class=\"lud25-p\">The voivodeship\u2019s overall net permanent migration rate was +1.8 per 1,000 residents, but this figure concealed major differences within the region. Wieliczka County recorded the strongest population inflow at +9.5 per 1,000, followed by Krak\u00f3w County at +7.2 and the City of Krak\u00f3w at +5.0. This is a classic suburbanisation pattern, with residents moving from the metropolitan centre to surrounding municipalities while the wider Krak\u00f3w area continues to attract people from outside the region. At the other end of the ranking were the cities of Tarn\u00f3w (-3.4) and Nowy S\u0105cz (-3.2), as well as Gorlice County (-3.1), which lost residents both to Krak\u00f3w and to destinations outside the voivodeship.<\/p>\n\n<p class=\"lud25-p\">Net international migration for the entire voivodeship reached +1,894 people. Krak\u00f3w alone attracted 1,290 of them, or 68.1% of the total. Krak\u00f3w County (+194) and Wieliczka County (+138) followed, confirming that the Krak\u00f3w metropolitan area is the region\u2019s main destination for international migration. The only areas with negative international migration balances were the City of Tarn\u00f3w (-29), Gorlice County (-24) and D\u0105browa County (-19).<\/p>\n\n<div class=\"lud25-chart-box\">\n<div class=\"lud25-chart-title\">Overall Net Migration per 1,000 Residents \u2014 Selected Counties, 2025<\/div>\n<div class=\"lud25-chart-canvas-wrap\">\n<canvas id=\"lud25chart3\"><\/canvas>\n<\/div>\n<\/div>\n\n<table class=\"lud25-table\">\n<tbody>\n<tr>\n<th>County<\/th>\n<th>Net International Migration<\/th>\n<\/tr>\n<tr class=\"lud25-total\">\n<td>City of Krak\u00f3w<\/td>\n<td>+1290<\/td>\n<\/tr>\n<tr>\n<td>Krak\u00f3w County<\/td>\n<td>+194<\/td>\n<\/tr>\n<tr>\n<td>Wieliczka County<\/td>\n<td>+138<\/td>\n<\/tr>\n<tr>\n<td>Nowy Targ County<\/td>\n<td>+63<\/td>\n<\/tr>\n<tr>\n<td>My\u015blenice County<\/td>\n<td>+37<\/td>\n<\/tr>\n<tr>\n<td>City of Tarn\u00f3w<\/td>\n<td>-29<\/td>\n<\/tr>\n<tr>\n<td>Gorlice County<\/td>\n<td>-24<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\n<div class=\"lud25-table-note\">Counties with the highest and lowest net international migration in the Ma\u0142opolskie Voivodeship in 2025 (regional total: +1,894 people). Data source: Statistics Poland\/Statistical Office in Krak\u00f3w.<\/div>\n\n<div class=\"lud25-callout\">\n<p><strong>Management perspective:<\/strong> Companies planning investments or team relocations in Ma\u0142opolska should recognise that labour availability is growing almost exclusively within several dozen kilometres of Krak\u00f3w, particularly in Wieliczka, Krak\u00f3w and My\u015blenice counties. In peripheral areas\u2014including Miech\u00f3w, Chrzan\u00f3w, Gorlice and D\u0105browa counties, as well as the cities of Tarn\u00f3w and Nowy S\u0105cz\u2014both the number of births and the inflow of new residents are declining.<\/p>\n\n<p>This creates a risk of increasing labour-market polarisation: stronger competition for employees around Krak\u00f3w, combined with staff shortages and an ageing local workforce in areas farther from the metropolitan centre.<\/p>\n<\/div>\n\n<div class=\"lud25-takeaways\">\n<ul>\n<li>Ma\u0142opolska had 3.429 million residents at the end of 2025, representing 9.2% of Poland\u2019s population. Women outnumbered men, at 1.766 million compared with 1.663 million.<\/li>\n<li>The region recorded natural population decline of 2.0 per 1,000 residents. Only Limanowa and Nowy S\u0105cz counties reported positive natural change.<\/li>\n<li>The working-age share differed significantly by sex: 63.9% among men and 54.6% among women, mainly because the proportion of women of post-working age was much higher, at 27.7% compared with 16.3% for men.<\/li>\n<li>Krak\u00f3w accounted for 27.3% of all births in the region and 68.1% of the voivodeship\u2019s positive net international migration.<\/li>\n<li>Migration was strongly polarised geographically: positive in Krak\u00f3w\u2019s suburban zone, including Wieliczka County (+9.5) and Krak\u00f3w County (+7.2 per 1,000), but negative in the cities of Tarn\u00f3w (-3.4) and Nowy S\u0105cz (-3.2), and in Gorlice County (-3.1).<\/li>\n<li>Miech\u00f3w and Chrzan\u00f3w counties combined the deepest natural population declines, at -7.56 and -7.54 per 1,000 respectively, with negative or near-zero migration balances, creating a double demographic risk for their local labour markets.<\/li>\n<\/ul>\n<\/div>\n\n<div class=\"lud25-source\">Data source: Statistics Poland and the Statistical Office in Krak\u00f3w, \u201cPopulation in the Ma\u0142opolskie Voivodeship in 2025\u201d, data as at 31 December 2025. Please cite the source when reproducing the data.<\/div>\n<\/div>\n\n<script class=\"nowprocket\" data-cfasync=\"false\" src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/Chart.js\/4.4.1\/chart.umd.min.js\"><\/script>\n\n<script class=\"nowprocket\" data-cfasync=\"false\">\n(function(){\n  var attempts = 0;\n  var maxAttempts = 100;\n\n  function tryInit(){\n    attempts++;\n\n    if (typeof Chart === 'undefined') {\n      if (attempts < maxAttempts) {\n        setTimeout(tryInit, 100);\n      }\n      return;\n    }\n\n    clearInterval(pollTimer);\n\n    try {\n      var c1 = document.getElementById('lud25chart1');\n\n      if (c1) {\n        var ageLabels = [\n          '0-4','5-9','10-14','15-19','20-24','25-29',\n          '30-34','35-39','40-44','45-49','50-54','55-59',\n          '60-64','65-69','70-74','75-79','80-84','85 and over'\n        ];\n\n        var men = [\n          74367,97999,96159,96651,84584,97907,\n          123294,136633,144947,133911,114527,97916,\n          93221,92891,77218,51644,25765,23318\n        ];\n\n        var women = [\n          71145,92360,90760,92498,81471,96713,\n          122496,133918,144461,133491,117131,101447,\n          100708,109109,100852,77227,44849,55754\n        ];\n\n        var menNeg = men.map(function(v){\n          return -v;\n        });\n\n        new Chart(c1.getContext('2d'), {\n          type: 'bar',\n          data: {\n            labels: ageLabels,\n            datasets: [\n              {\n                label: 'Men',\n                data: menNeg,\n                backgroundColor: '#131F49'\n              },\n              {\n                label: 'Women',\n                data: women,\n                backgroundColor: '#e67a2d'\n              }\n            ]\n          },\n          options: {\n            indexAxis: 'y',\n            responsive: true,\n            maintainAspectRatio: false,\n            scales: {\n              x: {\n                stacked: false,\n                ticks: {\n                  callback: function(value){\n                    return Math.abs(value).toLocaleString('en-GB');\n                  }\n                },\n                title: {\n                  display: true,\n                  text: 'Number of people'\n                }\n              },\n              y: {\n                stacked: false\n              }\n            },\n            plugins: {\n              legend: {\n                position: 'bottom'\n              },\n              tooltip: {\n                callbacks: {\n                  label: function(ctx){\n                    return ctx.dataset.label + ': ' +\n                      Math.abs(ctx.parsed.x).toLocaleString('en-GB') +\n                      ' people';\n                  }\n                }\n              }\n            }\n          }\n        });\n      }\n    } catch(e) {\n      console.error('lud25 chart1 error', e);\n    }\n\n    try {\n      var c2 = document.getElementById('lud25chart2');\n\n      if (c2) {\n        var labels2 = [\n          'Miech\u00f3w County',\n          'Chrzan\u00f3w County',\n          'Olkusz County',\n          'City of Tarn\u00f3w',\n          'O\u015bwi\u0119cim County',\n          'Nowy Targ County',\n          'My\u015blenice County',\n          'Wieliczka County',\n          'Nowy S\u0105cz County',\n          'Limanowa County'\n        ];\n\n        var data2 = [\n          -7.56,\n          -7.54,\n          -7.10,\n          -5.59,\n          -5.49,\n          -0.26,\n          -0.49,\n          0.43,\n          1.13,\n          1.28\n        ];\n\n        var colors2 = data2.map(function(v){\n          return v < 0 ? '#131F49' : '#e67a2d';\n        });\n\n        new Chart(c2.getContext('2d'), {\n          type: 'bar',\n          data: {\n            labels: labels2,\n            datasets: [\n              {\n                label: 'Natural population change per 1,000 residents',\n                data: data2,\n                backgroundColor: colors2\n              }\n            ]\n          },\n          options: {\n            indexAxis: 'y',\n            responsive: true,\n            maintainAspectRatio: false,\n            scales: {\n              x: {\n                title: {\n                  display: true,\n                  text: 'per 1,000 residents'\n                }\n              }\n            },\n            plugins: {\n              legend: {\n                display: false\n              },\n              tooltip: {\n                callbacks: {\n                  label: function(ctx){\n                    return ctx.parsed.x.toLocaleString('en-GB') +\n                      ' per 1,000 residents';\n                  }\n                }\n              }\n            }\n          }\n        });\n      }\n    } catch(e) {\n      console.error('lud25 chart2 error', e);\n    }\n\n    try {\n      var c3 = document.getElementById('lud25chart3');\n\n      if (c3) {\n        var labels3 = [\n          'City of Tarn\u00f3w',\n          'City of Nowy S\u0105cz',\n          'Gorlice County',\n          'D\u0105browa County',\n          'Olkusz County',\n          'My\u015blenice County',\n          'City of Krak\u00f3w',\n          'Krak\u00f3w County',\n          'Wieliczka County'\n        ];\n\n        var data3 = [\n          -3.4,\n          -3.2,\n          -3.1,\n          -2.9,\n          -2.3,\n          1.0,\n          5.0,\n          7.2,\n          9.5\n        ];\n\n        var colors3 = data3.map(function(v){\n          return v < 0 ? '#131F49' : '#e67a2d';\n        });\n\n        new Chart(c3.getContext('2d'), {\n          type: 'bar',\n          data: {\n            labels: labels3,\n            datasets: [\n              {\n                label: 'Net migration per 1,000 residents',\n                data: data3,\n                backgroundColor: colors3\n              }\n            ]\n          },\n          options: {\n            indexAxis: 'y',\n            responsive: true,\n            maintainAspectRatio: false,\n            scales: {\n              x: {\n                title: {\n                  display: true,\n                  text: 'per 1,000 residents'\n                }\n              }\n            },\n            plugins: {\n              legend: {\n                display: false\n              },\n              tooltip: {\n                callbacks: {\n                  label: function(ctx){\n                    return ctx.parsed.x.toLocaleString('en-GB') +\n                      ' per 1,000 residents';\n                  }\n                }\n              }\n            }\n          }\n        });\n      }\n    } catch(e) {\n      console.error('lud25 chart3 error', e);\n    }\n  }\n\n  var pollTimer = setInterval(tryInit, 100);\n  tryInit();\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Ma\u0142opolska had 3.43 million residents at the end of 2025, but almost the entire region recorded a natural population decline. The positive migration balance was highly uneven, with Krak\u00f3w and the Wieliczka and Krak\u00f3w counties attracting most new residents, while Tarn\u00f3w, Nowy S\u0105cz and peripheral counties continued to lose population. These widening demographic disparities could [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":5561,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","jetpack_publicize_message":"Ma\u0142opolska is becoming increasingly divided in demographic terms. Krak\u00f3w and the surrounding counties continue to attract new residents, while Tarn\u00f3w, Nowy S\u0105cz and many peripheral areas are facing both natural population decline and outward migration.\n\nAt the end of 2025, the region had 3.43 million residents, but only two counties recorded positive natural population growth. An ageing society and a declining number of young people entering the labour market could make recruitment more difficult for businesses and deepen economic disparities across the region.\n\n\ud83d\udcca See which counties are gaining residents and which face the greatest demographic risks.\n","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[7],"tags":[3132,70,3061,3011,64,2732,3016],"class_list":["post-6248","post","type-post","status-publish","format-standard","has-post-thumbnail","category-reports-analysis","tag-cite","tag-krakow","tag-nowy-sacz","tag-nowy-targ","tag-poland","tag-ranking","tag-tarnow"],"jetpack_publicize_connections":[],"_links":{"self":[{"href":"https:\/\/ceo.com.pl\/en\/wp-json\/wp\/v2\/posts\/6248","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ceo.com.pl\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ceo.com.pl\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ceo.com.pl\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ceo.com.pl\/en\/wp-json\/wp\/v2\/comments?post=6248"}],"version-history":[{"count":0,"href":"https:\/\/ceo.com.pl\/en\/wp-json\/wp\/v2\/posts\/6248\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ceo.com.pl\/en\/wp-json\/wp\/v2\/media\/5561"}],"wp:attachment":[{"href":"https:\/\/ceo.com.pl\/en\/wp-json\/wp\/v2\/media?parent=6248"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ceo.com.pl\/en\/wp-json\/wp\/v2\/categories?post=6248"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ceo.com.pl\/en\/wp-json\/wp\/v2\/tags?post=6248"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}