Ny visualisering: lønnsutvikling basert på SSB-data 2016–2025
Datadriven side (ingen slidere) som viser dobbel ulikhet i norsk lønnsutvikling: høytlønte fikk både flere kroner OG høyere prosentvekst. Data fra SSB tabell 11418 via PxWeb API v2. Inneholder tre diagrammer: månedslønn over tid, kronevekst vs prosentvekst (dobbel akse), og alle STYRK-hovedyrkesgrupper. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
bff15268de
commit
dd8eb4042f
5 changed files with 441 additions and 0 deletions
|
|
@ -26,6 +26,7 @@ Each calculator directory contains two files following the same pattern:
|
|||
- **`public/sparing/`** — Compound interest: same savings, different returns. Model: `FV = P × ((1+r)^n - 1) / r` (monthly compounding). Stacked bar chart for deposits vs interest.
|
||||
- **`public/bolig/`** — Housing leverage: same price growth, different starting prices. 85% LTV amplifies equity gap ~6.67×. Model: `Equity = Price × (1+g)^n - Loan`
|
||||
- **`public/arv/`** — Inheritance gap: lump sum + equal savings, gap never closes. Model: `Gap = Arv × (1+r)^n`. Has percentage y-axis chart.
|
||||
- **`public/lonnsutvikling/`** — Data-driven visualization (not a calculator): real SSB wage data showing how equal percentage growth translates to vastly different kroner amounts across occupations. No sliders — hard-coded SSB table 11418 data (2016–2025).
|
||||
|
||||
**External dependencies** (loaded via CDN, no install needed): Chart.js 4.4.1, Google Fonts (Fraunces + DM Sans).
|
||||
|
||||
|
|
|
|||
3
TODO.md
3
TODO.md
|
|
@ -3,3 +3,6 @@
|
|||
## Nye kalkulatorer
|
||||
|
||||
- [ ] **BNP per innbygger (internasjonale forskjeller)** — Ny kalkulator i `public/verden/` som viser hvordan forskjeller i BNP per innbygger mellom land vokser over tid med prosentvis vekst. Samme prosentvise vekst gir stadig større absolutt gap mellom rike og fattige land.
|
||||
- [x] **Lønnsutvikling: prosent vs. kroner** — Visualisering i `public/lonnsutvikling/` basert på reell SSB-statistikk. Viser dobbel ulikhet: høytlønte fikk både flere kroner OG høyere prosentvekst. Data fra SSB tabell 11418, 2016–2025.
|
||||
- [ ] **Bankens andel av boligen** — Visualisering som viser hvor mye av boligen du faktisk eier vs. bankens andel over tid, gitt ulik egenkapital og nedbetalingsplan.
|
||||
- [ ] **Store formuer i Norge — arv vs. selvbygd** — Analyse/visualisering av hvordan store formuer i Norge har utviklet seg, og hvor stor andel som er arvet. Krever research og dataarbeid.
|
||||
|
|
|
|||
|
|
@ -175,6 +175,12 @@
|
|||
<span class="arrow">Se kalkulatoren →</span>
|
||||
</a>
|
||||
|
||||
<a href="lonnsutvikling/" class="topic-card">
|
||||
<h2>Dobbel ulikhet i lønn</h2>
|
||||
<p>Direktørene fikk 3× flere kroner i lønnsvekst enn renholdere — og høyere prosentvekst. Dobbel ulikhet i praksis. Reelle SSB-tall, 2016–2025.</p>
|
||||
<span class="arrow">Se visualiseringen →</span>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</main>
|
||||
|
||||
|
|
|
|||
219
public/lonnsutvikling/app.js
Normal file
219
public/lonnsutvikling/app.js
Normal file
|
|
@ -0,0 +1,219 @@
|
|||
// SSB tabell 11418: Gjennomsnittlig månedslønn (kr)
|
||||
// Alle sektorer, begge kjønn, i alt (heltid+deltid)
|
||||
// Hentet 2026-03-16 via SSB PxWeb API v2
|
||||
|
||||
const YEARS = ['2016', '2017', '2018', '2019', '2020', '2021', '2022', '2023', '2024', '2025'];
|
||||
|
||||
// Utvalgte yrker for hovedvisualiseringen
|
||||
const OCCUPATIONS = [
|
||||
{ name: 'Renholdere i bedrifter', data: [30680, 31370, 32200, 33270, 33570, 34850, 36360, 38620, 40650, 42350], color: '#e74c3c' },
|
||||
{ name: 'Butikkmedarbeidere', data: [30140, 30870, 31790, 32790, 33760, 35000, 36400, 38100, 39910, 41570], color: '#e67e22' },
|
||||
{ name: 'Barnehageassistenter', data: [30230, 30960, 31650, 32800, 32980, 34260, 35050, 37710, 39660, 40970], color: '#f39c12' },
|
||||
{ name: 'Kokker', data: [31820, 32240, 33260, 34580, 35270, 36530, 37990, 39930, 41920, 43160], color: '#d4a017' },
|
||||
{ name: 'Sykepleiere', data: [42130, 43320, 44730, 46690, 47020, 49440, 51020, 53880, 56710, 58290], color: '#27ae60' },
|
||||
{ name: 'Systemanalytikere', data: [58140, 59630, 61340, 63590, 64520, 67530, 69940, 73590, 77040, 80120], color: '#2980b9' },
|
||||
{ name: 'Leger (allmennpraktiserende)', data: [65450, 67880, 69550, 71750, 72730, 75650, 78890, 84690, 88650, 92260], color: '#8e44ad' },
|
||||
{ name: 'Adm. direktører', data: [74140, 76530, 78490, 80980, 83030, 87240, 93240, 96820,102610,108510], color: '#1a1714' },
|
||||
];
|
||||
|
||||
// Hovedyrkesgrupper (STYRK 1-siffernivå)
|
||||
const GROUPS = [
|
||||
{ name: 'Renholdere mv.', data: [31080, 31790, 32790, 33890, 34640, 35860, 37560, 39880, 42060, 43700], color: '#e74c3c' },
|
||||
{ name: 'Salgs- og serviceyrker', data: [32580, 33350, 34240, 35400, 36080, 37370, 38760, 41090, 43190, 44790], color: '#e67e22' },
|
||||
{ name: 'Bønder, fiskere mv.', data: [32350, 33580, 34750, 35850, 36920, 38220, 40220, 42720, 45440, 48000], color: '#d4a017' },
|
||||
{ name: 'Kontoryrker', data: [36770, 37680, 38810, 40080, 40990, 42610, 44610, 47120, 49790, 52110], color: '#27ae60' },
|
||||
{ name: 'Håndverkere', data: [36570, 37490, 38440, 39810, 40640, 41970, 43930, 46420, 49170, 51390], color: '#2c6e49' },
|
||||
{ name: 'Operatører, transport mv.',data: [37400, 38090, 39210, 40560, 41280, 42690, 44680, 47040, 49720, 52080], color: '#2980b9' },
|
||||
{ name: 'Akademiske yrker', data: [49740, 51040, 52550, 54420, 55090, 57670, 59980, 63750, 66850, 69650], color: '#8e44ad' },
|
||||
{ name: 'Ledere', data: [64020, 65600, 67680, 70100, 71270, 74760, 78330, 82300, 86310, 90510], color: '#1a1714' },
|
||||
];
|
||||
|
||||
function fmtKr(n) {
|
||||
return Math.round(n).toLocaleString('nb-NO') + '\u202fkr';
|
||||
}
|
||||
|
||||
function fmtShort(n) {
|
||||
if (Math.abs(n) >= 1e6) return (n / 1e6).toFixed(1).replace('.', ',') + '\u202fM';
|
||||
if (Math.abs(n) >= 1e3) return Math.round(n / 1e3).toLocaleString('nb-NO') + '\u202fk';
|
||||
return Math.round(n).toString();
|
||||
}
|
||||
|
||||
const GRID_COLOR = 'rgba(0,0,0,0.06)';
|
||||
const TICK_COLOR = '#8a857e';
|
||||
|
||||
function baseOpts() {
|
||||
return {
|
||||
responsive: true, maintainAspectRatio: false,
|
||||
plugins: {
|
||||
legend: { display: false },
|
||||
tooltip: {
|
||||
callbacks: { label: c => ' ' + c.dataset.label + ': ' + fmtKr(c.parsed.y) },
|
||||
backgroundColor: '#1a1714',
|
||||
titleColor: '#f5f2eb',
|
||||
bodyColor: 'rgba(245,242,235,0.7)',
|
||||
padding: 10,
|
||||
cornerRadius: 4,
|
||||
titleFont: { family: 'DM Sans', size: 12 },
|
||||
bodyFont: { family: 'DM Sans', size: 12 }
|
||||
}
|
||||
},
|
||||
scales: {
|
||||
x: {
|
||||
ticks: { color: TICK_COLOR, font: { size: 11, family: 'DM Sans' }, maxRotation: 0 },
|
||||
grid: { display: false },
|
||||
border: { color: 'rgba(0,0,0,0.1)' }
|
||||
},
|
||||
y: {
|
||||
ticks: { color: TICK_COLOR, font: { size: 11, family: 'DM Sans' }, callback: v => fmtShort(v) },
|
||||
grid: { color: GRID_COLOR },
|
||||
border: { dash: [3, 3], color: 'transparent' }
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// --- Diagram 1: Månedslønn over tid (utvalgte yrker) ---
|
||||
|
||||
function buildLegend(containerId, items) {
|
||||
const container = document.getElementById(containerId);
|
||||
items.forEach(item => {
|
||||
const span = document.createElement('span');
|
||||
const swatch = document.createElement('span');
|
||||
swatch.className = 'swatch';
|
||||
swatch.style.background = item.color;
|
||||
span.appendChild(swatch);
|
||||
span.appendChild(document.createTextNode(item.name));
|
||||
container.appendChild(span);
|
||||
});
|
||||
}
|
||||
|
||||
const chart1Occupations = OCCUPATIONS.filter(o =>
|
||||
['Renholdere i bedrifter', 'Sykepleiere', 'Systemanalytikere', 'Adm. direktører'].includes(o.name)
|
||||
);
|
||||
|
||||
buildLegend('legend1', chart1Occupations);
|
||||
|
||||
new Chart(document.getElementById('chart1'), {
|
||||
type: 'line',
|
||||
data: {
|
||||
labels: YEARS,
|
||||
datasets: chart1Occupations.map(o => ({
|
||||
label: o.name,
|
||||
data: o.data,
|
||||
borderColor: o.color,
|
||||
backgroundColor: o.color + '12',
|
||||
fill: false,
|
||||
tension: 0.3,
|
||||
pointRadius: 0,
|
||||
pointHoverRadius: 4,
|
||||
borderWidth: 2.5
|
||||
}))
|
||||
},
|
||||
options: baseOpts()
|
||||
});
|
||||
|
||||
// --- Diagram 2: Kronevekst OG prosentvekst (dobbel akse) ---
|
||||
|
||||
const barData = OCCUPATIONS.map(o => {
|
||||
const start = o.data[0];
|
||||
const end = o.data[o.data.length - 1];
|
||||
return {
|
||||
name: o.name,
|
||||
krGrowth: end - start,
|
||||
pctGrowth: ((end / start) - 1) * 100,
|
||||
color: o.color
|
||||
};
|
||||
}).sort((a, b) => a.krGrowth - b.krGrowth);
|
||||
|
||||
const chart2Opts = baseOpts();
|
||||
chart2Opts.indexAxis = 'y';
|
||||
chart2Opts.scales = {
|
||||
x: {
|
||||
position: 'bottom',
|
||||
ticks: { color: TICK_COLOR, font: { size: 11, family: 'DM Sans' }, callback: v => fmtShort(v) },
|
||||
grid: { color: GRID_COLOR },
|
||||
border: { dash: [3, 3], color: 'transparent' },
|
||||
title: { display: true, text: 'Kronevekst (kr/mnd)', font: { size: 11, family: 'DM Sans' }, color: TICK_COLOR }
|
||||
},
|
||||
x2: {
|
||||
position: 'top',
|
||||
ticks: { color: '#c0392b', font: { size: 11, family: 'DM Sans' }, callback: v => v + ' %' },
|
||||
grid: { display: false },
|
||||
border: { color: 'transparent' },
|
||||
title: { display: true, text: 'Prosentvekst', font: { size: 11, family: 'DM Sans' }, color: '#c0392b' }
|
||||
},
|
||||
y: {
|
||||
ticks: { color: TICK_COLOR, font: { size: 11, family: 'DM Sans' }, autoSkip: false },
|
||||
grid: { display: false },
|
||||
border: { color: 'rgba(0,0,0,0.1)' }
|
||||
}
|
||||
};
|
||||
chart2Opts.plugins.tooltip = {
|
||||
callbacks: {
|
||||
label: c => {
|
||||
const item = barData[c.dataIndex];
|
||||
if (c.dataset.xAxisID === 'x2') {
|
||||
return ' Prosentvekst: ' + item.pctGrowth.toFixed(1).replace('.', ',') + ' %';
|
||||
}
|
||||
return ' Kronevekst: +' + fmtKr(item.krGrowth) + '/mnd';
|
||||
}
|
||||
},
|
||||
backgroundColor: '#1a1714',
|
||||
titleColor: '#f5f2eb',
|
||||
bodyColor: 'rgba(245,242,235,0.7)',
|
||||
padding: 10,
|
||||
cornerRadius: 4,
|
||||
titleFont: { family: 'DM Sans', size: 12 },
|
||||
bodyFont: { family: 'DM Sans', size: 12 }
|
||||
};
|
||||
|
||||
new Chart(document.getElementById('chart2'), {
|
||||
type: 'bar',
|
||||
data: {
|
||||
labels: barData.map(d => d.name),
|
||||
datasets: [
|
||||
{
|
||||
label: 'Kronevekst (kr/mnd)',
|
||||
data: barData.map(d => d.krGrowth),
|
||||
backgroundColor: barData.map(d => d.color + 'cc'),
|
||||
borderColor: barData.map(d => d.color),
|
||||
borderWidth: 1,
|
||||
borderRadius: 3,
|
||||
xAxisID: 'x'
|
||||
},
|
||||
{
|
||||
label: 'Prosentvekst',
|
||||
data: barData.map(d => d.pctGrowth),
|
||||
backgroundColor: '#c0392b33',
|
||||
borderColor: '#c0392b',
|
||||
borderWidth: 2,
|
||||
borderRadius: 3,
|
||||
xAxisID: 'x2'
|
||||
}
|
||||
]
|
||||
},
|
||||
options: chart2Opts
|
||||
});
|
||||
|
||||
// --- Diagram 3: Alle yrkesgrupper over tid ---
|
||||
|
||||
buildLegend('legend3', GROUPS);
|
||||
|
||||
new Chart(document.getElementById('chart3'), {
|
||||
type: 'line',
|
||||
data: {
|
||||
labels: YEARS,
|
||||
datasets: GROUPS.map(g => ({
|
||||
label: g.name,
|
||||
data: g.data,
|
||||
borderColor: g.color,
|
||||
backgroundColor: g.color + '12',
|
||||
fill: false,
|
||||
tension: 0.3,
|
||||
pointRadius: 0,
|
||||
pointHoverRadius: 4,
|
||||
borderWidth: 2
|
||||
}))
|
||||
},
|
||||
options: baseOpts()
|
||||
});
|
||||
212
public/lonnsutvikling/index.html
Normal file
212
public/lonnsutvikling/index.html
Normal file
|
|
@ -0,0 +1,212 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="nb">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Lønnsutvikling: prosent vs. kroner — SSB-data 2016–2025</title>
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:locale" content="nb_NO">
|
||||
<meta property="og:site_name" content="Forskjeller">
|
||||
<meta property="og:title" content="Lønnsutvikling: prosent vs. kroner">
|
||||
<meta property="og:description" content="Direktørene fikk 3× flere kroner OG høyere prosentvekst enn renholdere. Dobbel ulikhet i norsk lønnsutvikling. SSB-data 2016–2025.">
|
||||
<meta property="og:url" content="https://forskjeller.naiv.no/lonnsutvikling/">
|
||||
<meta name="twitter:card" content="summary">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,600;1,9..144,300&family=DM+Sans:wght@300;400;500&display=swap" rel="stylesheet">
|
||||
<link rel="stylesheet" href="../style.css">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.4.1/chart.umd.js"></script>
|
||||
<script async src="/implausibly/js/pa-hrD38igEdOJ7wP3NdA40I.js"></script>
|
||||
<script>
|
||||
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
||||
plausible.init({ endpoint: "/implausibly/api/event" })
|
||||
</script>
|
||||
<style>
|
||||
.source-strip {
|
||||
text-align: center;
|
||||
padding: 0.75rem 1rem;
|
||||
font-size: 12px;
|
||||
color: var(--ink3);
|
||||
background: var(--bg2);
|
||||
border-bottom: 1px solid var(--border);
|
||||
}
|
||||
.source-strip a { color: var(--ink3); text-decoration: underline; }
|
||||
|
||||
.comparison-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1fr;
|
||||
gap: 10px;
|
||||
margin-bottom: 2.5rem;
|
||||
}
|
||||
@media (max-width: 560px) {
|
||||
.comparison-grid { grid-template-columns: 1fr; }
|
||||
}
|
||||
.comparison-card {
|
||||
background: var(--bg2);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 6px;
|
||||
padding: 1.25rem;
|
||||
text-align: center;
|
||||
}
|
||||
.comparison-card .cc-title {
|
||||
font-size: 11px;
|
||||
letter-spacing: 0.07em;
|
||||
text-transform: uppercase;
|
||||
color: var(--ink3);
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
.comparison-card .cc-wage {
|
||||
font-size: 0.95rem;
|
||||
color: var(--ink2);
|
||||
margin-bottom: 0.25rem;
|
||||
}
|
||||
.comparison-card .cc-growth-kr {
|
||||
font-size: 1.3rem;
|
||||
font-weight: 500;
|
||||
color: var(--ink);
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
.comparison-card .cc-growth-pct {
|
||||
font-size: 0.85rem;
|
||||
color: var(--ink3);
|
||||
margin-top: 0.15rem;
|
||||
}
|
||||
|
||||
.key-number {
|
||||
text-align: center;
|
||||
padding: 2rem 1rem;
|
||||
margin-bottom: 2.5rem;
|
||||
}
|
||||
.key-number .kn-value {
|
||||
font-family: 'Fraunces', serif;
|
||||
font-size: clamp(2.5rem, 7vw, 4rem);
|
||||
font-weight: 600;
|
||||
color: var(--accent);
|
||||
line-height: 1.1;
|
||||
}
|
||||
.key-number .kn-label {
|
||||
font-size: 1rem;
|
||||
color: var(--ink2);
|
||||
margin-top: 0.5rem;
|
||||
max-width: 500px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header>
|
||||
<p class="eyebrow">Reelle tall fra SSB, 2016–2025</p>
|
||||
<h1>Dobbel<br><em>ulikhet</em></h1>
|
||||
<p class="lead">De høyest lønte fikk ikke bare flere kroner — de fikk også høyere prosentvis vekst. Dobbel ulikhet i praksis.</p>
|
||||
<div class="stamp">Lønnsfesten</div>
|
||||
</header>
|
||||
|
||||
<div class="source-strip">
|
||||
Data: <a href="https://www.ssb.no/statbank/table/11418/" target="_blank" rel="noopener">SSB tabell 11418</a> — Gjennomsnittlig månedslønn, alle sektorer, begge kjønn, 2016–2025
|
||||
</div>
|
||||
|
||||
<main>
|
||||
|
||||
<!-- Nøkkeltall -->
|
||||
<div class="key-number">
|
||||
<div class="kn-value">3× kronene, 10 pp mer</div>
|
||||
<div class="kn-label">Administrerende direktører fikk tre ganger så mange kroner i lønnsvekst som renholdere — <em>og</em> 10 prosentpoeng høyere prosentvekst (46 % mot 36 %).</div>
|
||||
</div>
|
||||
|
||||
<!-- Tre yrker sammenlignet -->
|
||||
<div class="comparison-grid">
|
||||
<div class="comparison-card">
|
||||
<div class="cc-title">Renholdere</div>
|
||||
<div class="cc-wage">30 680 → 42 350 kr/mnd</div>
|
||||
<div class="cc-growth-kr">+11 670 kr</div>
|
||||
<div class="cc-growth-pct">38,0 % vekst</div>
|
||||
</div>
|
||||
<div class="comparison-card">
|
||||
<div class="cc-title">Sykepleiere</div>
|
||||
<div class="cc-wage">42 130 → 58 290 kr/mnd</div>
|
||||
<div class="cc-growth-kr">+16 160 kr</div>
|
||||
<div class="cc-growth-pct">38,4 % vekst</div>
|
||||
</div>
|
||||
<div class="comparison-card">
|
||||
<div class="cc-title">Adm. direktører</div>
|
||||
<div class="cc-wage">74 140 → 108 510 kr/mnd</div>
|
||||
<div class="cc-growth-kr">+34 370 kr</div>
|
||||
<div class="cc-growth-pct">46,4 % vekst</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Diagram 1: Månedslønn over tid -->
|
||||
<div class="chart-section">
|
||||
<div class="chart-header">
|
||||
<div>
|
||||
<div class="chart-title">Månedslønn over tid</div>
|
||||
<div class="chart-desc">Gjennomsnittlig månedslønn for utvalgte yrker, 2016–2025</div>
|
||||
</div>
|
||||
<div class="legend" id="legend1"></div>
|
||||
</div>
|
||||
<div class="chart-wrap h-240"><canvas id="chart1"></canvas></div>
|
||||
</div>
|
||||
|
||||
<div class="insight">
|
||||
Avstanden mellom linjene <strong>øker</strong> for hvert år — og det skyldes ikke bare kroneverdien.
|
||||
De høyest lønte fikk også høyere prosentvis vekst: direktører fikk 46 %, mens barnehageassistenter og kokker fikk rundt 35–36 %.
|
||||
Forskjellen mellom en renholdsarbeider og en direktør vokste fra 43 460 til <strong>66 160 kr/mnd</strong>.
|
||||
</div>
|
||||
|
||||
<!-- Diagram 2: Kronevekst OG prosentvekst -->
|
||||
<div class="chart-section">
|
||||
<div class="chart-header">
|
||||
<div>
|
||||
<div class="chart-title">Dobbel ulikhet</div>
|
||||
<div class="chart-desc">Høytlønte fikk både flere kroner og høyere prosent</div>
|
||||
</div>
|
||||
<div class="legend">
|
||||
<span><span class="swatch" style="background:#5a5650;"></span>Kronevekst</span>
|
||||
<span><span class="swatch" style="background:#c0392b;"></span>Prosentvekst</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="chart-wrap" style="height:340px;"><canvas id="chart2"></canvas></div>
|
||||
</div>
|
||||
|
||||
<div class="insight">
|
||||
Prosentveksten varierer fra 36 % (barnehageassistenter) til 46 % (direktører).
|
||||
I kroner betyr det fra <strong>10 740 kr</strong> til <strong>34 370 kr</strong> ekstra per måned — en tredobling.
|
||||
Høytlønte fikk altså <strong>både</strong> høyere prosent og flere kroner.
|
||||
</div>
|
||||
|
||||
<!-- Diagram 3: Alle yrkesgrupper -->
|
||||
<div class="chart-section">
|
||||
<div class="chart-header">
|
||||
<div>
|
||||
<div class="chart-title">Alle hovedyrkesgrupper</div>
|
||||
<div class="chart-desc">Gjennomsnittlig månedslønn etter STYRK-yrkesgruppe, 2016–2025</div>
|
||||
</div>
|
||||
<div class="legend" id="legend3"></div>
|
||||
</div>
|
||||
<div class="chart-wrap" style="height:280px;"><canvas id="chart3"></canvas></div>
|
||||
</div>
|
||||
|
||||
<!-- Forklaring -->
|
||||
<div class="explainer">
|
||||
<h3>Hvorfor er dette viktig?</h3>
|
||||
<p>Lønnsoppgjør diskuteres ofte i prosent: «alle fikk 5 % økning». Det høres rettferdig ut. Men 5 % av 30 000 kr er <strong>1 500 kr</strong>, mens 5 % av 100 000 kr er <strong>5 000 kr</strong>.</p>
|
||||
<div class="formula-box">
|
||||
5 % × 30 000 = <span>1 500 kr</span><br>
|
||||
5 % × 100 000 = <span>5 000 kr</span><br>
|
||||
Forskjell: <span>3 500 kr ekstra</span> til den som tjener mest — hvert eneste år
|
||||
</div>
|
||||
<p>SSB-tallene viser at dette problemet forsterkes ytterligere: de høyest lønte fikk ikke bare flere kroner, men også <strong>høyere prosentvekst</strong>. Direktører fikk 46 % lønnsvekst, mens barnehageassistenter fikk 36 % — en forskjell på 10 prosentpoeng i tillegg til kronegapet.</p>
|
||||
<p>Derfor har fagbevegelsen historisk kjempet for <strong>kronetillegg</strong> i stedet for prosenttillegg — et fast beløp til alle, uavhengig av lønnsnivå.</p>
|
||||
<p>Dataene på denne siden er hentet fra <a href="https://www.ssb.no/statbank/table/11418/" target="_blank" rel="noopener">SSB tabell 11418</a> (gjennomsnittlig månedslønn, alle sektorer, begge kjønn). Tallene er ikke justert for inflasjon.</p>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<a href="../">← Alle visualiseringer</a> · Kilde: SSB tabell 11418 · Laget med Chart.js · <a href="https://kode.naiv.no/olemd/forskjeller.naiv.no">Kildekode</a>
|
||||
</footer>
|
||||
|
||||
<script src="app.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue