Latest indicator values per kommune
Atlas view
Latest indicator values per kommune
api_v1.indicator_latest_valuesThe latest value of every indicator for every active kommune, in long format.
First 5 rows ·
api_v1.indicator_latest_valuessnapshot 2026-05-12
| source_id | contents_code | kommune_nr | kommune_name | fylke_name | value | status | year |
|---|---|---|---|---|---|---|---|
| fhi-bor-alene | RATE | 0301 | Oslo | Oslo | 33.5128676379196 | — | 2025 |
| fhi-bor-alene | RATE | 1101 | Eigersund | Rogaland | 21.2904261295241 | — | 2025 |
| fhi-bor-alene | RATE | 1103 | Stavanger | Rogaland | 24.9676309104319 | — | 2025 |
| fhi-bor-alene | RATE | 1106 | Haugesund | Rogaland | 28.4239677744209 | — | 2025 |
| fhi-bor-alene | RATE | 1108 | Sandnes | Rogaland | 20.6749226931178 | — | 2025 |
Built from
This Atlas view joins data from the following upstream sources. Click through for provenance, methodology, and citation.
Showing direct dbt parents. See full lineage in /lineage/ →
Columns
| Column | Description |
|---|---|
| source_id | Atlas source identifier, e.g. 'ssb-08764'. Joins back to fact_kommune_indicators.source_id. |
| contents_code | Source-specific ContentsCode verbatim from upstream (e.g. 'EUskala60', 'Folkemengde'). Combined with source_id and kommune_nr forms the natural key of this view. |
| kommune_nr | 4-digit zero-padded kommune code. FK to dim_kommune; only active kommuner are included. |
| kommune_name | Joined from fact_kommune_indicators (originally from dim_kommune). |
| fylke_name | Joined from fact_kommune_indicators (originally from dim_fylke). NULL when the kommune's fylke_nr isn't present in dim_fylke (rare — happens for codes like Svalbard 21xx). |
| value | Numeric value at latest_year. Unit depends on (source_id, contents_code) — see the source's README. NULL when upstream suppressed the cell. |
| status | SSB suppression marker (e.g. ':' for 'not available'). NULL when value is present. |
| year | The latest year for this (source_id, contents_code). Repeats across all kommuner for a given indicator — kept on the row so PostgREST consumers can read it without a separate join. ⚠️ For a windowed source this is the FIRST year of the window. Render it with `window_years`, never alone. |
| window_years | How many calendar years `year` covers, carried from fact_kommune_indicators. 1 for an annual series. The span is `year` to `year + window_years - 1` inclusive. See `mart_indicator_summary.latest_year_window_years` for why this is a column rather than prose. |
Sample query
Live PostgREST query that returns the first 5 rows. URL adapts to the current host — local dev shows api-atlas.localhost; the deployed site shows the configured API base.
https://api-atlas.urbalurba.com/indicator_latest_values?limit=5
About this view
The latest value of every indicator for every active kommune, in long format.
One row per (source_id, contents_code, kommune_nr) at each
indicator's latest_year, restricted to active kommuner. Backs the
data explorer's per-indicator detail page (atlas-frontend
/data/[source_id]/[contents_code]) and is the equivalent of the
loadIndicatorValues() inline query.
🔴 ROW COUNT IS NOT COVERAGE. A row exists for every active kommune
the source publishes at all, INCLUDING those where `value` is null.
So a series returns ~357 rows whether 357 kommuner have a number or
66 do, and counting rows overstates coverage by up to five times.
⚠️ This has always been true and became dangerous on 2026-09-21,
when nine Ungdata sources published at 18-43 % kommune coverage
against SSB register sources at nearly 100 %. `fhi-hasj` returns
357 rows carrying 66 values.
✅ `indicator_summary.kommuner_with_value` is the live count and the
only thing to trust. It is not restated here on purpose — a number
copied into a description goes stale, which is the defect that made
`fhi-depresjon` advertise fourteen years of data it never held.
PostgREST consumers filter via
?source_id=eq.X&contents_code=eq.Y. The full table is the
cross-product of every indicator with every active kommune that
has a row at latest_year, so the unfiltered row count is large
(~360 active kommuner × ~70 indicators in v1).
Inactive kommuner (kommune_is_active = false) are excluded so the
output reflects today's kommune set, not historical codes that
upstream still emits.