Methodology
The site uses a reproducible path: official PxWeb extracts are stored raw, validated, normalized into a processed JSON artifact, then transformed into chart view models.
The story page combines two processed extracts: Statistics Finland RTP (11qp, sector S13141, instrument F0) for the year-end asset stock line, and ETK rahavirrat01_kaikki for annual flows. The bar chart net is a narrow derived figure from the ETK file (contributions + investment result − pensions paid, excluding other lines); it is not a solvency indicator, and ETK flows are not interchangeable with RTP stock totals.
Site structure and stack
Pension Project is a multilingual Next.js editorial site: the active language is part of each route. Processed public datasets are loaded on the server and shaped for the page; the charts are lightweight client components that receive prepared series only. The stack is Next.js, TypeScript, the App Router, Tailwind CSS, next-intl for locale-aware copy, and Zod at the data boundary—kept deliberately straightforward so the story stays easy to audit.
Data layers
- Raw — PxWeb JSON-stat as retrieved
- Validation — Zod schemas for raw and processed shapes
- Normalize — ordered annual series in million EUR
- Processed — versioned JSON consumed by the app
- Transform — view models for sections and charts