Data
Download everything
Versioned, checksummed data releases under CC BY 4.0 (source datasets keep their own licences), an open read API, and the code that rebuilds it all.
Release 2026.09.26
Current data release
7186309760569600. A new release is cut whenever DOSM publishes a new vintage; old releases stay available so citations remain reproducible.| File | Contents | Rows | Size | SHA-256 |
|---|---|---|---|---|
| CITATION.cff | Machine-readable citation | 1 KB | ffcf5419ae13… | |
| README.md | Release notes | 1 KB | a1951befb9a0… | |
| districts.csv | Canonical district registry: ids, divisions, lineage, area, centroids | 168 | 19 KB | 4d5db4ec47b3… |
| districts.geojson | District boundaries (2020, simplified) for all 159 mapped districts | 572 KB | 04feaf463899… | |
| errata.yaml | Source values excluded, with reasons | 1 KB | 959ebdfb334e… | |
| forecasts.csv | Nowcasts and projections with p10 / p50 / p90 | 540 | 73 KB | 6a785280bd34… |
| gdp_sector.csv | District GDP by sector, 2015–2020 (RM mil, 2015 prices) | 4,830 | 177 KB | fe65f12170fd… |
| indicators.csv | Indicator catalogue: labels, units, direction, definitions | 31 | 6 KB | b2730fb54b33… |
| model_cards.json | Model cards: methods, metrics, limitations | 23 KB | 384e3f99a233… | |
| observations.csv | Every value: district, indicator, year, value, source, flags, Sabah rank & percentiles | 25,888 | 2.5 MB | ff4fe72f2e82… |
| observations.parquet | Same as observations.csv, typed columnar format | 250 KB | 0f536618be02… | |
| scorecard.csv | Scorecard verdicts with peer medians and trends (Sabah) | 296 | 38 KB | 5d79fa69f11c… |
| shift_share.csv | Shift-share totals by window and benchmark | 372 | 46 KB | 4c7c7e225a70… |
| sources.csv | Source datasets with vintages, checksums and licences | 23 | 8 KB | b78ca7970d65… |
| typology.csv | Cluster, principal components and features for every district | 159 | 37 KB | 06e73b07cd74… |
API
Open read API
JSON over HTTPS, versioned under /v1, cached with ETags keyed to the data release. No key needed for read endpoints.
- GET /v1/districts — All districts with headline indicators
- GET /v1/districts/{id} — Full profile: series, scorecard, peers, forecasts, sources
- GET /v1/indicators/{code}?period= — One indicator for all districts
- GET /v1/compare?ids=a,b,c — Aligned series for up to four districts
- GET /v1/forecast/{id}?indicator= — Fan-chart series with backtest error
- GET /v1/export/{id}.csv — Tidy CSV for a district
- GET /v1/model-cards — All model cards
- GET /v1/data/releases — Current release manifest
Interactive docs: https://atlas-api.ashymoss-d65781bb.southeastasia.azurecontainerapps.io/docs · OpenAPI: openapi.json
import pandas as pd url = "https://atlas-api.ashymoss-d65781bb.southeastasia.azurecontainerapps.io/v1/indicators/income_median?scope=national" df = pd.json_normalize(pd.read_json(url, typ="series")["values"])
Cite
How to cite
APA
Kassim, I. (2026). SabahKu: district economic data release 2026.09.26 [Data set]. https://github.com/IlhamKassim/sabah-atlas
BibTeX
@misc{sabahku2026,
author = {Kassim, Ilham},
title = {SabahKu: district economic data release 2026.09.26},
year = {2026},
url = {https://github.com/IlhamKassim/sabah-atlas},
note = {CC BY 4.0}
}Please also cite the underlying sources, listed in sources.csv: Department of Statistics Malaysia (OpenDOSM), CC BY 4.0; geoBoundaries (Runfola et al., 2020), CC BY 3.0. Each page also has a “Cite this view” button that includes the permalink.
Licences
Licences
- Data releases: CC BY 4.0, where source licences allow.
- DOSM / OpenDOSM data: CC BY 4.0.
- District boundaries: geoBoundaries, CC BY 3.0.
- Code: MIT.