FileAttachmentDynamic = function(filename) {
return new Function("FileAttachment", `return FileAttachment("${filename}")`)(FileAttachment)
}
// Vaihdetaan tekstin väri
color = function(vari) {
if(vari > 0){
return "green"
}else{
return "red"
}
}
// Pyöristys
pyoristys = function(n, places) {
if (!places) return Math.round(n);
const d = 10 ** places;
return Math.round(n * d) / d;
}
//Euromerkintä
eurot = function(number) {
return number.toLocaleString('fi-FI', { style: 'currency', currency: 'EUR',minimumFractionDigits: 0 });
}
// Euromuutoksen laskeminen kertoimella
muutoskerroin = function(x, y) {
return (1+x/100)*y;
}
// Muutosprosentti
muutosprosentti = function(x, y) {
return pyoristys(((x-y)/y)*100,1);
}
// Tuhatjakaja
tuhatjakaja = function(x) {
return x/1000;
}
// Euromuutoksen laskeminen kertoimella
palkkakerroin = function(x, y) {
return 100*((1+x/100)*(1+y/100)-1);
}
// Jako-osuuden asukaskerroin
asukaskerroin = function(x, y) {
return (x/y);
}
// Jako-osuuden veroprosenttikerroin miinus1/miinus3 vuotta miinus 1 vuoden kerroin
veroprosenttikerroin = function(x, y) {
return (x/y);
}
// Kunnan muok. kunnallisvero, alkuvuosi ja loppuvuosi
kunnallisvero_muokkaus = function(kunnallisvero,asukaskerroin,veroprosentti) {
return kunnallisvero*asukaskerroin*veroprosentti;
}
//Tekstimuutokset
fn_nousu_lasku_txt = function(arvo){
if(arvo > 0) {
return "kasvanut"
}
else {
return "laskenut";
}
}
//TARVITAAN KARTOISSA
serialize = {
const xmlns = "http://www.w3.org/2000/xmlns/";
const xlinkns = "http://www.w3.org/1999/xlink";
const svgns = "http://www.w3.org/2000/svg";
return function serialize(svg) {
svg = svg.cloneNode(true);
const fragment = window.location.href + "#";
const walker = document.createTreeWalker(svg, NodeFilter.SHOW_ELEMENT);
while (walker.nextNode()) {
for (const attr of walker.currentNode.attributes) {
if (attr.value.includes(fragment)) {
attr.value = attr.value.replace(fragment, "#");
}
}
}
svg.setAttributeNS(xmlns, "xmlns", svgns);
svg.setAttributeNS(xmlns, "xmlns:xlink", xlinkns);
const serializer = new window.XMLSerializer;
const string = serializer.serializeToString(svg);
return new Blob([string], {type: "image/svg+xml"});
};
}
function toSVG(chart) {
if (chart.nodeName !== "FIGURE") {
return chart;
}
// the chart needs to be in the body if we want to read values, positions, sizes…
document.body.appendChild(chart);
const [x0, y0, width, height] = getBounds([chart]);
const nodes = [];
for (const node of d3
.select(chart)
.selectChildren("h1,h2,h3,div,figcaption,svg")) {
switch (node.nodeName.toLowerCase()) {
case "div":
{
const children = d3.select(node).selectChildren("div,span");
const height = getBounds([node, ...children])[3] + 2;
const svg = d3
.select(chart)
.append("svg")
.attr("width", width)
.attr("height", height);
nodes.push(svg.node());
const swatches = svg
.selectAll()
.data(
Array.from(children, (d) => {
const svg = d3.select(d).select("svg").node();
const bbox = svg.getBBox();
return {
style: window.getComputedStyle(d),
svg,
width: bbox.width,
height: bbox.height,
text: d.textContent,
bounds: getBounds([d])
};
})
)
.join("g")
.attr(
"transform",
(d) => `translate(${d.bounds[0] - x0},${10 + d.bounds[1] - y0})`
);
swatches
.append((d) => d.svg) // "rect")
.attr("width", (d) => d.width)
.attr("height", (d) => d.height)
.attr("y", (d) => `${-parseFloat(d.height) / 2}px`);
swatches
.append("text")
.text((d) => d.text)
.attr("x", (d) => d.width)
.attr("dx", 5)
.attr("dy", "0.38em")
.attr("font-family", (d) => d.style.fontFamily)
.attr("font-size", (d) => d.style.fontSize)
.attr("fill", (d) => d.style.color);
}
break;
case "figcaption":
case "h1":
case "h2":
case "h3":
{
const svg = d3
.select(chart)
.append("svg")
.attr("width", width)
.attr("overflow", "visible");
nodes.push(svg.node());
const children = d3.select(node).selectChildren();
let h = 0;
for (const d of children.size() > 0
? children.selectChildren()
: [node]) {
const style = window.getComputedStyle(d);
const t = svg
.append("g")
.attr("transform", `translate(0,${h})`)
.append(() =>
d3
.select(
Plot.text([d.textContent], {
text: (d) => d,
lineWidth:
(1.06 * parseFloat(style.width)) /
parseFloat(style.fontSize),
lineHeight: 1.2,
frameAnchor: "top-left"
}).plot()
)
.select("text")
.attr("font-family", style.fontFamily)
.attr("font-size", 1.08 * parseFloat(style.fontSize))
.attr("font-weight", style.fontWeight)
.attr("fill", style.color)
.node()
);
h += getBounds([t.node()])[3] + 4;
}
svg.attr("height", h);
}
break;
case "svg":
d3.select(chart).append(() => node);
nodes.push(node);
break;
}
}
return serializeAll(nodes)
.then((blob) => blob.text())
.then((c) => {
document.body.removeChild(chart);
return Object.assign(svg`${c}`, chart);
});
}
// Given an array of SVG elements, composites them into a single SVG element,
// and then serializes the result to a blob.
async function serializeAll(elements, {padding = 10} = {}) {
const fragment = location.href + "#";
let root;
if (elements.length === 1) {
root = elements[0].cloneNode(true); // optimize common case
} else {
const [ox, oy, dx, dy] = getBounds(elements);
root = document.createElementNS(svgns, "svg");
root.setAttribute("width", dx + 2 * padding);
root.setAttribute("height", dy + 2 * padding);
root.setAttribute("viewBox", [-padding, -padding, dx + 2 * padding, dy + 2 * padding]);
for (const element of elements) {
const svg = root.appendChild(element.cloneNode(true));
const { x, y, width, height } = element.getBoundingClientRect();
svg.setAttribute("x", x - ox);
svg.setAttribute("y", y - oy);
svg.setAttribute("width", width);
svg.setAttribute("height", height);
}
}
const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT);
while (walker.nextNode()) {
const node = walker.currentNode;
for (const attr of node.attributes) {
if (attr.value.includes(fragment)) {
attr.value = attr.value.replace(fragment, "#");
}
}
}
root.setAttributeNS(xmlns, "xmlns", svgns);
root.setAttributeNS(xmlns, "xmlns:xlink", xlinkns);
const serializer = new XMLSerializer();
const string = serializer.serializeToString(root);
return new Blob([string], { type: "image/svg+xml" });
}
function getBounds(elements) {
let x1 = Infinity;
let y1 = x1;
let x2 = -x1;
let y2 = x2;
for (const element of elements) {
const { x, y, width, height } = element.getBoundingClientRect();
if (x < x1) x1 = x;
if (x + width > x2) x2 = x + width;
if (y < y1) y1 = y;
if (y + height > y2) y2 = y + height;
}
return [x1, y1, x2 - x1, y2 - y1];
}
// based on https://observablehq.com/@gka/cheap-fit-text-to-circle
function lines(text, targetWidth) {
const CHAR_W = {
"a":7,"B":8,"C":8,"c":6,"D":9,"f":4,"G":9,"H":9,"I":3,"i":3,"J":5,"j":3,"K":8,"k":6,
"l":3,"M":11,"m":11,"N":9,"O":9,"P":8,"Q":9,"R":8,"r":4,"S":8,"s":6,"t":4,"U":9,"v":6,
"W":11,"w":9,"x":6,"y":6,"z":5,".":2,",":2,":":2,";":2
};
function measureWidth(text) { return d3.sum(text, char => CHAR_W[char] || CHAR_W["a"]) * 0.8; };
const words = text.split(" ");
let line;
let lineWidth0 = Infinity;
const lines = [];
for (let i = 0, n = words.length; i < n; ++i) {
let lineText1 = (line ? line.text + " " : "") + words[i];
let lineWidth1 = measureWidth(lineText1);
if ((lineWidth0 + lineWidth1) / 2 < targetWidth) {
line.width = lineWidth0 = lineWidth1;
line.text = lineText1;
} else {
lineWidth0 = measureWidth(words[i]);
line = {width: lineWidth0, text: words[i]};
lines.push(line);
}
}
return lines;
}
xmlns = "http://www.w3.org/2000/xmlns/"
xlinkns = "http://www.w3.org/1999/xlink"
svgns = "http://www.w3.org/2000/svg"
Avainsanat
Kuntien kuukausiraportti, väestö, yhteistyö, avoin lähdekoodi, Tilastokeskus, tietojohtaminen
Väestönmuutokset
Kuntien välinen nettomuutto - viimeiset 12kk
Voit tarkistella karttaa tarkemmin pyörittämällä hiiren rullanäppäintä.
Kuntien välinen nettomuutto - viimeiset 12kk
Sija | Maakunta | Kunta | Kuntien välinen nettomuutto |
---|---|---|---|
1 | Uusimaa | Helsinki | 3283 |
2 | Pirkanmaa | Tampere | 2711 |
3 | Uusimaa | Espoo | 1887 |
4 | Varsinais-Suomi | Turku | 1611 |
5 | Uusimaa | Tuusula | 740 |
6 | Pirkanmaa | Nokia | 483 |
7 | Pirkanmaa | Kangasala | 418 |
8 | Pohjois-Savo | Kuopio | 386 |
9 | Pirkanmaa | Pirkkala | 202 |
10 | Uusimaa | Sipoo | 171 |
11 | Uusimaa | Lohja | 151 |
12 | Uusimaa | Kirkkonummi | 129 |
13 | Varsinais-Suomi | Kaarina | 124 |
14 | Varsinais-Suomi | Naantali | 111 |
15 | Lappi | Inari | 77 |
16 | Uusimaa | Kerava | 75 |
17 | Satakunta | Pori | 75 |
18 | Varsinais-Suomi | Raisio | 67 |
19 | Ahvenanmaa | Jomala | 65 |
20 | Pirkanmaa | Orivesi | 58 |
21 | Päijät-Häme | Heinola | 53 |
22 | Uusimaa | Porvoo | 53 |
23 | Keski-Suomi | Muurame | 50 |
24 | Pirkanmaa | Hämeenkyrö | 43 |
25 | Uusimaa | Hyvinkää | 43 |
26 | Etelä-Savo | Mäntyharju | 42 |
27 | Päijät-Häme | Hollola | 41 |
28 | Pirkanmaa | Vesilahti | 40 |
29 | Uusimaa | Inkoo | 36 |
30 | Pirkanmaa | Akaa | 34 |
31 | Pohjois-Karjala | Ilomantsi | 34 |
32 | Uusimaa | Hanko | 27 |
33 | Keski-Pohjanmaa | Kannus | 26 |
34 | Pohjois-Savo | Tuusniemi | 26 |
35 | Päijät-Häme | Iitti | 25 |
36 | Etelä-Pohjanmaa | Ilmajoki | 25 |
37 | Keski-Suomi | Uurainen | 25 |
38 | Pohjois-Pohjanmaa | Ii | 23 |
39 | Uusimaa | Siuntio | 23 |
40 | Pohjois-Pohjanmaa | Vaala | 23 |
41 | Etelä-Savo | Hirvensalmi | 22 |
42 | Pohjois-Savo | Leppävirta | 22 |
43 | Etelä-Karjala | Ruokolahti | 21 |
44 | Pohjois-Pohjanmaa | Siikalatva | 21 |
45 | Etelä-Savo | Sulkava | 20 |
46 | Pohjois-Pohjanmaa | Kempele | 19 |
47 | Varsinais-Suomi | Kustavi | 19 |
48 | Lappi | Sodankylä | 19 |
49 | Keski-Pohjanmaa | Perho | 18 |
50 | Etelä-Savo | Puumala | 17 |
Kuntien välinen nettomuutto - viimeiset 12kk, top20
Kuhmoinen on sijalla 164, tarkasteltaessa kuntien välistä nettomuuttoa viimeisen 12kk aikana. Kuntien välinen nettomuuttolukema on -22. Maakuntavertailussa (Pirkanmaa) Kuhmoinen on sijalla 16.
Väestönmuutokset - Väestöennakko
Ennakkotiedot
Ennakkotietojen (2024M12) perusteella väkiluku on laskenut -0.34 % (2024M11: -0.39 %). Uusin väestön ennakkotieto on 2037 (edell. lukema 2044). Vuoden alusta (2023: 2092) väkiluku on laskenut -2.63 %.
Vuosi | Ennakkotieto |
---|---|
2021 | NA |
2022 | NA |
2023 | NA |
2024M01* | 2083 |
2024M02* | 2077 |
2024M03* | 2072 |
2024M04* | 2075 |
2024M05* | 2066 |
2024M06* | 2063 |
2024M07* | 2067 |
2024M08* | 2061 |
2024M09* | 2056 |
2024M10* | 2052 |
2024M11* | 2044 |
2024M12* | 2037 |
Väkiluvun muutos-% vuoden 2023 lopusta
Voit tarkistella kartaa lähemmin pyörittämällä hiiren rullanäppäintä.
Väkiluvun muutos-% edellisvuoden lopusta
Sija | Maakunta | Kunta | Väestö 31.12. | 2024M12* | Muutos-% |
---|---|---|---|---|---|
1 | Pohjanmaa | Kaskinen | 1208 | 1240 | 2.65 |
2 | Uusimaa | Espoo | 314024 | 321031 | 2.23 |
3 | Uusimaa | Tuusula | 41338 | 42238 | 2.18 |
4 | Pirkanmaa | Tampere | 255050 | 260358 | 2.08 |
5 | Varsinais-Suomi | Turku | 201863 | 206035 | 2.07 |
6 | Pohjanmaa | Vaasa | 68956 | 70374 | 2.06 |
7 | Varsinais-Suomi | Kustavi | 949 | 967 | 1.90 |
8 | Ahvenanmaa | Jomala | 5697 | 5794 | 1.70 |
9 | Uusimaa | Vantaa | 247443 | 251405 | 1.60 |
10 | Ahvenanmaa | Eckerö | 942 | 957 | 1.59 |
11 | Varsinais-Suomi | Raisio | 25331 | 25717 | 1.52 |
12 | Uusimaa | Helsinki | 674500 | 684589 | 1.50 |
13 | Pirkanmaa | Kangasala | 33473 | 33966 | 1.47 |
14 | Pirkanmaa | Nokia | 35647 | 36171 | 1.47 |
15 | Lappi | Inari | 7127 | 7226 | 1.39 |
16 | Ahvenanmaa | Lumparland | 366 | 371 | 1.37 |
17 | Pohjois-Savo | Kuopio | 124021 | 125668 | 1.33 |
18 | Pirkanmaa | Pirkkala | 20763 | 21034 | 1.31 |
19 | Keski-Suomi | Luhanka | 702 | 711 | 1.28 |
20 | Uusimaa | Kirkkonummi | 41154 | 41660 | 1.23 |
21 | Ahvenanmaa | Geta | 509 | 515 | 1.18 |
22 | Keski-Suomi | Uurainen | 3615 | 3655 | 1.11 |
23 | Keski-Suomi | Jyväskylä | 147746 | 149269 | 1.03 |
24 | Pirkanmaa | Vesilahti | 4469 | 4515 | 1.03 |
25 | Uusimaa | Sipoo | 22595 | 22823 | 1.01 |
26 | Uusimaa | Porvoo | 51289 | 51753 | 0.90 |
27 | Ahvenanmaa | Kökar | 225 | 227 | 0.89 |
28 | Pohjois-Karjala | Joensuu | 78062 | 78743 | 0.87 |
29 | Uusimaa | Järvenpää | 46490 | 46866 | 0.81 |
30 | Etelä-Savo | Pieksämäki | 17050 | 17186 | 0.80 |
31 | Ahvenanmaa | Maarianhamina - Mariehamn | 11812 | 11898 | 0.73 |
32 | Pohjois-Pohjanmaa | Oulu | 214633 | 216194 | 0.73 |
33 | Pohjois-Pohjanmaa | Kempele | 19514 | 19652 | 0.71 |
34 | Uusimaa | Kerava | 38211 | 38476 | 0.69 |
35 | Lappi | Rovaniemi | 65286 | 65738 | 0.69 |
36 | Pirkanmaa | Valkeakoski | 20694 | 20837 | 0.69 |
37 | Satakunta | Kankaanpää | 12394 | 12478 | 0.68 |
38 | Etelä-Pohjanmaa | Seinäjoki | 66160 | 66610 | 0.68 |
39 | Etelä-Pohjanmaa | Ilmajoki | 12343 | 12426 | 0.67 |
40 | Pohjanmaa | Luoto | 5843 | 5881 | 0.65 |
41 | Varsinais-Suomi | Kaarina | 36339 | 36563 | 0.62 |
42 | Ahvenanmaa | Sund | 995 | 1001 | 0.60 |
43 | Keski-Suomi | Laukaa | 18762 | 18873 | 0.59 |
44 | Kanta-Häme | Riihimäki | 28483 | 28650 | 0.59 |
45 | Päijät-Häme | Lahti | 120693 | 121383 | 0.57 |
46 | Varsinais-Suomi | Laitila | 8441 | 8488 | 0.56 |
47 | Varsinais-Suomi | Naantali | 19999 | 20108 | 0.55 |
48 | Pohjois-Karjala | Outokumpu | 6409 | 6444 | 0.55 |
49 | Uusimaa | Nurmijärvi | 44785 | 45026 | 0.54 |
50 | Etelä-Karjala | Lappeenranta | 72988 | 73369 | 0.52 |
Väkiluvun muutos-% edellisvuoden lopusta
Kuhmoinen on sijalla 296, tarkasteltaessa väkiluvun muutosta edellisvuoden lopusta kuntien kesken. Viimeisin ennakkotietolukema on 2037 (muutos-% edellisen vuoden loppuun: -2.63). Maakuntavertailussa (Pirkanmaa) Kuhmoinen on sijalla 22.
Väestönmuutokset - Väestöennakko, viisi ikäluokkaa
Vuosi | Yhteensä | 0-6 | 0-6 % | 7-15 | 7-15 % | 16-64 | 16-64 % | 65-79 | 65-79 % | 80+ | 80+ % |
---|---|---|---|---|---|---|---|---|---|---|---|
2000 | 2973 | 138 | 4.64 | 255 | 8.58 | 1753 | 58.96 | 633 | 21.29 | 194 | 6.53 |
2001 | 2948 | 143 | 4.85 | 243 | 8.24 | 1713 | 58.11 | 637 | 21.61 | 212 | 7.19 |
2002 | 2917 | 147 | 5.04 | 247 | 8.47 | 1672 | 57.32 | 623 | 21.36 | 228 | 7.82 |
2003 | 2880 | 145 | 5.03 | 244 | 8.47 | 1635 | 56.77 | 630 | 21.88 | 226 | 7.85 |
2004 | 2838 | 143 | 5.04 | 215 | 7.58 | 1618 | 57.01 | 620 | 21.85 | 242 | 8.53 |
2005 | 2805 | 142 | 5.06 | 207 | 7.38 | 1589 | 56.65 | 618 | 22.03 | 249 | 8.88 |
2006 | 2731 | 133 | 4.87 | 179 | 6.55 | 1545 | 56.57 | 617 | 22.59 | 257 | 9.41 |
2007 | 2703 | 123 | 4.55 | 199 | 7.36 | 1519 | 56.20 | 597 | 22.09 | 265 | 9.80 |
2008 | 2639 | 114 | 4.32 | 195 | 7.39 | 1478 | 56.01 | 589 | 22.32 | 263 | 9.97 |
2009 | 2589 | 107 | 4.13 | 196 | 7.57 | 1434 | 55.39 | 575 | 22.21 | 277 | 10.70 |
2010 | 2554 | 104 | 4.07 | 185 | 7.24 | 1395 | 54.62 | 580 | 22.71 | 290 | 11.35 |
2011 | 2505 | 118 | 4.71 | 158 | 6.31 | 1348 | 53.81 | 601 | 23.99 | 280 | 11.18 |
2012 | 2438 | 101 | 4.14 | 149 | 6.11 | 1288 | 52.83 | 617 | 25.31 | 283 | 11.61 |
2013 | 2409 | 92 | 3.82 | 152 | 6.31 | 1226 | 50.89 | 649 | 26.94 | 290 | 12.04 |
2014 | 2374 | 85 | 3.58 | 154 | 6.49 | 1179 | 49.66 | 660 | 27.80 | 296 | 12.47 |
2015 | 2334 | 84 | 3.60 | 156 | 6.68 | 1124 | 48.16 | 685 | 29.35 | 285 | 12.21 |
2016 | 2286 | 81 | 3.54 | 145 | 6.34 | 1096 | 47.94 | 684 | 29.92 | 280 | 12.25 |
2017 | 2252 | 72 | 3.20 | 137 | 6.08 | 1089 | 48.36 | 666 | 29.57 | 288 | 12.79 |
2018 | 2238 | 74 | 3.31 | 124 | 5.54 | 1079 | 48.21 | 667 | 29.80 | 294 | 13.14 |
2019 | 2206 | 70 | 3.17 | 128 | 5.80 | 1047 | 47.46 | 663 | 30.05 | 298 | 13.51 |
2020 | 2161 | 75 | 3.47 | 115 | 5.32 | 1022 | 47.29 | 652 | 30.17 | 297 | 13.74 |
2021 | 2158 | 77 | 3.57 | 122 | 5.65 | 997 | 46.20 | 654 | 30.31 | 308 | 14.27 |
2022 | 2119 | 67 | 3.16 | 119 | 5.62 | 971 | 45.82 | 671 | 31.67 | 291 | 13.73 |
2023 | 2092 | 63 | 3.01 | 125 | 5.98 | 943 | 45.08 | 684 | 32.70 | 277 | 13.24 |
2024M12* | 2037 | 62 | 3.04 | 119 | 5.84 | 892 | 43.79 | 689 | 33.82 | 275 | 13.50 |
Väestökehityksen muutos - 5 ikäluokkaa
0-6-vuotiaat
Ikäluokkien kehitystä aikaisempiin vuosiin vertailtaessa 0-6-vuotiaiden %-osuus oli 2024M12* yhteensä 3.04. Jos verrataan lukemaa kahteen edellisvuoteen 2022 ja 2023, muutosta on tullut -0.12 (2022) ja 0.03 (2023)
7-15-vuotiaat
7-15-vuotiaiden %-osuus oli 2024M12* yhteensä 5.84. Edellisvuosiin 2022 ja 2023 verrattuna, muutosta on tullut 0.22 (2022) ja -0.14 (2023)
16-64-vuotiaat
Ikäluokka 16-64-vuotiaat on suurin kooltaan. Tämän ryhmän prosenttiosuus kokonaisuudesta oli 2024M12* yhteensä 43.79. Edellisvuosiin 2022 ja 2023 verrattuna, muutosta on tullut -2.03 (2022) ja -1.29 (2023)
65-79-vuotiaat
Ikäluokka 65-79-vuotiaat oli kooltaan 2024M12* yhteensä 33.82. Edellisvuosiin 2022 ja 2023 verrattuna, muutosta on tullut 2.15 (2022) ja 1.12 (2023)
80+-vuotiaat
80+-vuotiaiden %-osuus oli 2024M12* yhteensä 13.5. Edellisvuosiin 2022 ja 2023 verrattuna, muutosta on tullut -0.23 (2022) ja 0.26 (2023)
Väestönmuutokset - Väestöennakko, kuusi ikäluokkaa
Vuosi | Yhteensä | 0-6 | 0-6 % | 7-15 | 7-15 % | 16-18 | 16-18 % | 19-64 | 19-64 % | 65-79 | 65-79 % | 80+ | 80+ % |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2000 | 2973 | 138 | 4.64 | 255 | 8.58 | 100 | 3.36 | 1653 | 55.60 | 633 | 21.29 | 194 | 6.53 |
2001 | 2948 | 143 | 4.85 | 243 | 8.24 | 105 | 3.56 | 1608 | 54.55 | 637 | 21.61 | 212 | 7.19 |
2002 | 2917 | 147 | 5.04 | 247 | 8.47 | 92 | 3.15 | 1580 | 54.17 | 623 | 21.36 | 228 | 7.82 |
2003 | 2880 | 145 | 5.03 | 244 | 8.47 | 86 | 2.99 | 1549 | 53.78 | 630 | 21.88 | 226 | 7.85 |
2004 | 2838 | 143 | 5.04 | 215 | 7.58 | 90 | 3.17 | 1528 | 53.84 | 620 | 21.85 | 242 | 8.53 |
2005 | 2805 | 142 | 5.06 | 207 | 7.38 | 85 | 3.03 | 1504 | 53.62 | 618 | 22.03 | 249 | 8.88 |
2006 | 2731 | 133 | 4.87 | 179 | 6.55 | 93 | 3.41 | 1452 | 53.17 | 617 | 22.59 | 257 | 9.41 |
2007 | 2703 | 123 | 4.55 | 199 | 7.36 | 76 | 2.81 | 1443 | 53.39 | 597 | 22.09 | 265 | 9.80 |
2008 | 2639 | 114 | 4.32 | 195 | 7.39 | 80 | 3.03 | 1398 | 52.97 | 589 | 22.32 | 263 | 9.97 |
2009 | 2589 | 107 | 4.13 | 196 | 7.57 | 60 | 2.32 | 1374 | 53.07 | 575 | 22.21 | 277 | 10.70 |
2010 | 2554 | 104 | 4.07 | 185 | 7.24 | 55 | 2.15 | 1340 | 52.47 | 580 | 22.71 | 290 | 11.35 |
2011 | 2505 | 118 | 4.71 | 158 | 6.31 | 57 | 2.28 | 1291 | 51.54 | 601 | 23.99 | 280 | 11.18 |
2012 | 2438 | 101 | 4.14 | 149 | 6.11 | 62 | 2.54 | 1226 | 50.29 | 617 | 25.31 | 283 | 11.61 |
2013 | 2409 | 92 | 3.82 | 152 | 6.31 | 56 | 2.32 | 1170 | 48.57 | 649 | 26.94 | 290 | 12.04 |
2014 | 2374 | 85 | 3.58 | 154 | 6.49 | 48 | 2.02 | 1131 | 47.64 | 660 | 27.80 | 296 | 12.47 |
2015 | 2334 | 84 | 3.60 | 156 | 6.68 | 39 | 1.67 | 1085 | 46.49 | 685 | 29.35 | 285 | 12.21 |
2016 | 2286 | 81 | 3.54 | 145 | 6.34 | 51 | 2.23 | 1045 | 45.71 | 684 | 29.92 | 280 | 12.25 |
2017 | 2252 | 72 | 3.20 | 137 | 6.08 | 63 | 2.80 | 1026 | 45.56 | 666 | 29.57 | 288 | 12.79 |
2018 | 2238 | 74 | 3.31 | 124 | 5.54 | 76 | 3.40 | 1003 | 44.82 | 667 | 29.80 | 294 | 13.14 |
2019 | 2206 | 70 | 3.17 | 128 | 5.80 | 61 | 2.77 | 986 | 44.70 | 663 | 30.05 | 298 | 13.51 |
2020 | 2161 | 75 | 3.47 | 115 | 5.32 | 49 | 2.27 | 973 | 45.03 | 652 | 30.17 | 297 | 13.74 |
2021 | 2158 | 77 | 3.57 | 122 | 5.65 | 46 | 2.13 | 951 | 44.07 | 654 | 30.31 | 308 | 14.27 |
2022 | 2119 | 67 | 3.16 | 119 | 5.62 | 52 | 2.45 | 919 | 43.37 | 671 | 31.67 | 291 | 13.73 |
2023 | 2092 | 63 | 3.01 | 125 | 5.98 | 52 | 2.49 | 891 | 42.59 | 684 | 32.70 | 277 | 13.24 |
2024M12* | 2037 | 62 | 3.04 | 119 | 5.84 | 47 | 2.31 | 845 | 41.48 | 689 | 33.82 | 275 | 13.50 |
Väestökehityksen muutos - 6 ikäluokkaa
0-6-vuotiaat
Ikäluokkien kehitystä aikaisempiin vuosiin vertailtaessa 0-6-vuotiaiden %-osuus oli 2024M12* yhteensä 3.04. Jos verrataan lukemaa kahteen edellisvuoteen 2022 ja 2023, muutosta on tullut -0.12 (2022) ja 0.03 (2023)
7-15-vuotiaat
7-15-vuotiaiden %-osuus oli 2024M12* yhteensä 5.84. Edellisvuosiin 2022 ja 2023 verrattuna, muutosta on tullut 0.22 (2022) ja -0.14 (2023)
16-18-vuotiaat
16-18-vuotiaiden prosenttiosuus kokonaisuudesta oli 2024M12* yhteensä 2.31. Edellisvuosiin 2022 ja 2023 verrattuna, muutosta on tullut -0.14 (2022) ja -0.18 (2023)
18-64-vuotiaat
Ikäluokka 18-64-vuotiaat on suurin kooltaan. Tämän ryhmän prosenttiosuus kokonaisuudesta oli 2024M12* yhteensä 43.79. Edellisvuosiin 2022 ja 2023 verrattuna, muutosta on tullut **** (2022) ja **** (2023)
65-79-vuotiaat
Ikäluokka 65-79-vuotiaat oli kooltaan 2024M12* yhteensä 33.82. Edellisvuosiin 2022 ja 2023 verrattuna, muutosta on tullut 2.15 (2022) ja 1.12 (2023)
80+-vuotiaat
80+-vuotiaiden %-osuus oli 2024M12* yhteensä 13.5. Edellisvuosiin 2022 ja 2023 verrattuna, muutosta on tullut -0.23 (2022) ja 0.26 (2023)