# Romania official statistics > The statistical series of Romania's National Institute of Statistics (INS), from the TEMPO-Online database: population, prices, labour, GDP, industry, agriculture, health, education and more. Every one of the 1900+ matrices becomes its own DuckDB table, named after its INS code, with that matrix's own dimensions as real columns — so a query reads like the indicator it is about. Four companion tables carry the full INS metadata: per-matrix definitions, methodology, data sources, last-update dates, the theme tree and every classification nomenclature (counties, localities with SIRUTA codes, age groups, CAEN activities). - Dataset id: `insse-tempo` - Update cadence: weekly - Upstream source: http://statistici.insse.ro:8077/tempo-online/ - Tags: romania, statistics, insse, official-statistics, economy, population - Current version: ingest `01M1M3W0KC257X6WYBC7VPP8CB`, snapshot 2026-09-03, generated 2026-09-03T17:08:09.452Z ## Licence and attribution - Licence: Licența pentru o Guvernare Deschisă v1.0 (Open Government Licence — Romania) (`OGL-ROU-1.0`) - Licence text: https://data.gov.ro/base/images/logoinst/OGL-ROU-1.0.pdf - Required attribution: Sursa datelor: Institutul Național de Statistică (INS), România — baza de date TEMPO-Online. - Notes: OGL-ROU-1.0 permits copying, publishing, distributing, transmitting and adapting the data, commercially or not, on three conditions this dataset's reusers inherit: (1) credit the source — the attribution line above — and, where possible, link the licence; (2) do not distort or misrepresent the data; (3) do not suggest INS or the Romanian Government endorses you or your use. Values are republished exactly as TEMPO serves them (cells INS suppresses as confidential arrive as symbols and are kept as value_note, never invented). Label text is whitespace-normalised and INS's embedded HTML stripped; nothing else is altered. Reproduce the attribution line verbatim anywhere you republish this data. ## Manifest - Start here for how this directory works: https://data.bunnytech.app/llms.txt - This dataset: https://data-directory.fsn1.your-objectstorage.com/public/insse-tempo/manifest.json - All datasets: https://data-directory.fsn1.your-objectstorage.com/public/index.json - Human page: https://data.bunnytech.app/datasets/insse-tempo The manifest is the contract: file URLs, row counts, column types, min/max statistics and example queries all live there. Re-read it to discover a new version. ## Fastest path — Parquet exports This dataset publishes 1856 tables — too many to inline one export URL per table here. The exports exist, and they are as immutable and as sorted as any other dataset's; their URLs are listed under `tables[].files[].url` in `manifest.json`: https://data-directory.fsn1.your-objectstorage.com/public/insse-tempo/manifest.json That file is large, so do not fetch it just to run a query. The DuckLake catalog below reads exactly the same data with one ATTACH, no manifest download and no file list. Example queries: -- Monthly inflation, last two years: Each matrix is its own table: IPC102A is the CPI matrix, so the table is ipc102a and its INS dimensions are real columns. perioada_data makes the time filter a plain date range, and it is the leading sort column, so it prunes. ```sql ATTACH IF NOT EXISTS 'ducklake:https://data-directory.fsn1.your-objectstorage.com/catalog/catalog.ducklake' AS "datadirectory" (READ_ONLY); SELECT perioada, valoare AS cpi_pct FROM datadirectory.insse_tempo.ipc102a WHERE perioada_data >= '2024-08-01' ORDER BY perioada_data ``` -- Find the table for a topic, diacritics-insensitively: matrices is the catalogue: search name_lc (never lower(name)), then query the table named in table_name. last_updated says whether INS still feeds the series. ```sql ATTACH IF NOT EXISTS 'ducklake:https://data-directory.fsn1.your-objectstorage.com/catalog/catalog.ducklake' AS "datadirectory" (READ_ONLY); SELECT matrix_code, table_name, name, periodicity, last_updated FROM datadirectory.insse_tempo.matrices WHERE name_lc LIKE '%somaj%' AND table_name IS NOT NULL ORDER BY last_updated DESC NULLS LAST LIMIT 20 ``` ## Live lake — DuckLake catalog with time travel Attach the published catalog read-only over plain https. This works in native DuckDB AND in duckdb-wasm in the browser — the reader catalog resolves its data files through public https URLs, so no credentials and no backend are involved. ```sql INSTALL ducklake; LOAD ducklake; ATTACH 'ducklake:https://data-directory.fsn1.your-objectstorage.com/catalog/insse-tempo/catalog.ducklake' AS insse_tempo (READ_ONLY); SELECT * FROM insse_tempo.main.acc101b LIMIT 5; USE insse_tempo; ``` - Latest catalog: https://data-directory.fsn1.your-objectstorage.com/catalog/insse-tempo/catalog.ducklake - This exact version: https://data-directory.fsn1.your-objectstorage.com/catalog/insse-tempo/v/01M1M3W0KC257X6WYBC7VPP8CB/catalog.ducklake (sha256 945c334dfff4af903f4f717bca808b43acb911d3b8b9d919b62db07f3077d8c6) - Written by DuckDB v1.5.5 - Time travel: this ingest is snapshot 1876 — e.g. `SELECT * FROM insse_tempo.acc101b AT (VERSION => 1876)` ## Wholesale — S3 access For bulk downloads, read the bucket prefix directly over S3 with httpfs: ```sql INSTALL httpfs; LOAD httpfs; CREATE SECRET hetzner ( TYPE s3, ENDPOINT 'fsn1.your-objectstorage.com', URL_STYLE 'path', KEY_ID '', SECRET '' ); SELECT * FROM read_parquet('s3://data-directory/public/insse-tempo/v/01M1M3W0KC257X6WYBC7VPP8CB/**/*.parquet'); ``` ## Schema This dataset publishes 1856 tables. The full column-level schema is too large to inline here; it lives in full in `manifest.json` at https://data-directory.fsn1.your-objectstorage.com/public/insse-tempo/manifest.json. A table's columns can be discovered live with DuckDB instead. Which name a table answers to depends on which catalog you attached — both routes, in full: ```sql -- Route 1: the unified catalog (see `/llms.txt`). Every dataset is a schema inside it. DESCRIBE datadirectory.insse_tempo.; SELECT table_name, column_name, data_type FROM information_schema.columns WHERE table_schema = 'insse_tempo'; ``` ```sql -- Route 2: this dataset's own catalog. Its tables live in schema `main` of the alias -- you attach it under — there is no `datadirectory` schema on this route. ATTACH 'ducklake:https://data-directory.fsn1.your-objectstorage.com/catalog/insse-tempo/catalog.ducklake' AS insse_tempo (READ_ONLY); DESCRIBE insse_tempo.main.
; SELECT table_name, column_name, data_type FROM information_schema.columns WHERE table_catalog = 'insse_tempo' AND table_schema = 'main'; ``` Tables (name — row count): - `acc101b` — 1,242 rows - `acc101c` — 456 rows - `acc102a` — 1,908 rows - `acc102b` — 8,154 rows - `acc102c` — 5,238 rows - `adm101a` — 10.8K rows - `aed101a` — 123 rows - `aed103a` — 251 rows - `aed105a` — 128 rows - `aed106a` — 52 rows - `aed108a` — 189 rows - `aed109a` — 124 rows - `aed301a` — 62 rows - `aed302a` — 99 rows - `aed304a` — 154 rows - `aed305a` — 60 rows - `aed307a` — 108 rows - `aed313a` — 31 rows - `aed314a` — 27 rows - `agr101a` — 28.7K rows - `agr102a` — 6,472 rows - `agr102b` — 9,797 rows - `agr102c` — 14.6K rows - `agr103a` — 39.6K rows - `agr104a` — 18.5K rows - `agr105a` — 18.4K rows - `agr106a` — 11.1K rows - `agr107a` — 11.1K rows - `agr108a` — 279.2K rows - `agr109a` — 235.8K rows - `agr110a` — 181.4K rows - `agr111a` — 26.4K rows - `agr112a` — 26.5K rows - `agr112b` — 28.6K rows - `agr113a` — 16.3K rows - `agr114a` — 55.5K rows - `agr115a` — 63.6K rows - `agr115b` — 39.2K rows - `agr116a` — 54.9K rows - `agr200a` — 455 rows - `agr201a` — 88.5K rows - `agr201c` — 21.5K rows - `agr201d` — 56 rows - `agr201e` — 462 rows - `agr201f` — 56 rows - `agr201g` — 238 rows - `agr202a` — 73.6K rows - `agr203a` — 8,316 rows - `agr204a` — 3,252 rows - `agr205a` — 1,980 rows - `agr206a` — 10.6K rows - `agr207a` — 7,920 rows - `agr208a` — 6,006 rows - `agr208b` — 5,496 rows - `agr209a` — 769 rows - `agr209b` — 769 rows - `agr209c` — 771 rows - `agr210a` — 84 rows - `agr301a` — 9,761 rows - `agr304a` — 5,304 rows - `agr305a` — 446 rows - `agr306a` — 11.2K rows - `agr307a` — 10.3K rows - `agr308a` — 92 rows - `agr308b` — 1,505 rows - `amg1010` — 5,285 rows - `amg101a` — 6,065 rows - `amg101b` — 6,062 rows - `amg101c` — 966 rows - `amg101d` — 483 rows - `amg101e` — 483 rows - `amg101f` — 2,718 rows - `amg101r` — 2,718 rows - `amg1101` — 14.7K rows - `amg1102` — 14.7K rows - `amg1103` — 2,696 rows - `amg1104` — 2,160 rows - `amg1105` — 9,956 rows - `amg1106` — 9,925 rows - `amg1107` — 2,718 rows - `amg110a` — 6,065 rows - `amg110b` — 6,062 rows - `amg110c` — 966 rows - `amg110d` — 483 rows - `amg110e` — 483 rows - `amg110f` — 2,718 rows - `amg110i` — 31.9K rows - `amg110j` — 31.7K rows - `amg110m` — 39.3K rows - `amg110n` — 39.2K rows - `amg110o` — 48.9K rows - `amg110p` — 49.1K rows - `amg110s` — 35.7K rows - `amg110t` — 35.5K rows - `amg110u` — 26.9K rows - `amg110v` — 26.9K rows - `amg110w` — 7,582 rows - `amg110x` — 7,588 rows - `amg111a` — 2,322 rows - `amg111b` — 2,322 rows - `amg115a` — 13.8K rows - `amg115b` — 13.5K rows - `amg115e` — 12.9K rows - `amg115f` — 12.7K rows - `amg115k` — 2,257 rows - `amg115l` — 2,253 rows - `amg115x` — 3,169 rows - `amg115z` — 3,167 rows - `amg116a` — 16.5K rows - `amg116b` — 16.3K rows - `amg116e` — 29.1K rows - `amg116f` — 28.7K rows - `amg119a` — 3,718 rows - `amg119b` — 3,604 rows - `amg119c` — 2,634 rows - `amg119d` — 2,574 rows - `amg130a` — 5,352 rows - `amg130b` — 5,356 rows - `amg130g` — 19.6K rows - `amg130h` — 19.4K rows - `amg130k` — 19.9K rows - `amg130l` — 19.9K rows - `amg130m` — 2,436 rows - `amg130n` — 2,436 rows - `amg130o` — 2,436 rows - `amg131a` — 2,322 rows - `amg131b` — 2,322 rows - `amg138a` — 1,026 rows - `amg138b` — 1,023 rows - `amg138c` — 4,060 rows - `amg138d` — 4,040 rows - `amg139a` — 1,093 rows - `amg139b` — 1,093 rows - `amg139c` — 4,056 rows - `amg139d` — 4,038 rows - `amg145a` — 6,795 rows - `amg145b` — 6,795 rows - `amg146e` — 24.2K rows - `amg146f` — 24.2K rows - `amg152a` — 2,568 rows - `amg152b` — 2,552 rows - `amg155a` — 5,983 rows - `amg155b` — 5,981 rows - `amg155c` — 3,171 rows - `amg155d` — 3,171 rows - `amg155e` — 41.2K rows - `amg155f` — 41.2K rows - `amg156a` — 5,983 rows - `amg156b` — 5,981 rows - `amg156c` — 3,171 rows - `amg156d` — 3,171 rows - `amg156e` — 41.2K rows - `amg156f` — 41.2K rows - `amg157a` — 5,341 rows - `amg157b` — 5,335 rows - `amg157c` — 1,812 rows - `amg157d` — 1,812 rows - `amg157e` — 40.9K rows - `amg157f` — 40.9K rows - `amg157g` — 2,436 rows - `amg157h` — 2,436 rows - `amg157i` — 2,436 rows - `amg158a` — 4,128 rows - `amg158b` — 4,128 rows - `amg158c` — 1,289 rows - `amg158d` — 3,857 rows - `amg158e` — 459 rows - `amg158f` — 763 rows - `amg158g` — 1,377 rows - `amg159a` — 2,322 rows - `amg159b` — 2,322 rows - `amg159c` — 1,290 rows - `amg159d` — 1,714 rows - `amg159e` — 459 rows - `amg159f` — 612 rows - `amg159g` — 755 rows - `amg160a` — 204 rows - `amg160b` — 255 rows - `amg160c` — 340 rows - `amg165a` — 774 rows - `amg165b` — 1,283 rows - `amg165c` — 1,287 rows - `amg170a` — 204 rows - `amg175a` — 155 rows - `art101c` — 15.1K rows - `art102a` — 127 rows - `art102b` — 3,078 rows - `art102d` — 150 rows - `art103b` — 1,251 rows - `art103c` — 6,827 rows - `art103d` — 923 rows - `art103e` — 4,092 rows - `art104a` — 4,868 rows - `art104b` — 1,534 rows - `art104c` — 5,727 rows - `art104d` — 880 rows - `art105a` — 1,430 rows - `art105b` — 75 rows - `art106b` — 15.5K rows - `art107b` — 15.5K rows - `art108b` — 15.5K rows - `art109a` — 115 rows - `art109b` — 3,078 rows - `art109c` — 150 rows - `art110a` — 115 rows - `art110b` — 3,064 rows - `art110c` — 150 rows - `art111b` — 8,959 rows - `art112a` — 1,085 rows - `art112b` — 8,958 rows - `art113a` — 7,957 rows - `art113b` — 1,973 rows - `art114a` — 924 rows - `art114b` — 4,249 rows - `art115a` — 1,730 rows - `art116a` — 934 rows - `art117a` — 210 rows - `art118a` — 173 rows - `art119a` — 609 rows - `art119b` — 176 rows - `art119c` — 75 rows - `art119d` — 99 rows - `art119e` — 30 rows - `art119f` — 42 rows - `art120a` — 422 rows - `art120b` — 36 rows - `art120c` — 60 rows - `art120d` — 101 rows - `art120e` — 25 rows - `art120f` — 52 rows - `art121a` — 34.8K rows - `art121b` — 825 rows - `art122a` — 808 rows - `art122b` — 804 rows - `art123a` — 5,067 rows - `art123b` — 825 rows - `art124a` — 84 rows - `ass101a` — 80 rows - `ass102a` — 186 rows - `ass103a` — 289 rows - `ass103b` — 1,011 rows - `ass104a` — 409 rows - `ass104b` — 504 rows - `ass106a` — 505 rows - `ass113a` — 157 rows - `ass113b` — 131 rows - `ass113c` — 2,297 rows - `ass113d` — 2,556 rows - `ass113e` — 1,544 rows - `ass113f` — 0 rows - `ass114a` — 141 rows - `ass114b` — 1,049 rows - `ass115a` — 262 rows - `ass116a` — 242 rows - `ass117a` — 888 rows - `ass117b` — 5,060 rows - `ass117c` — 4,547 rows - `ass118a` — 643 rows - `ass118b` — 5,005 rows - `ass118c` — 3,080 rows - `ass118d` — 3,127 rows - `ass118e` — 1,549 rows - `ass118f` — 2,860 rows - `ass119a` — 4,843 rows - `ass119b` — 1,527 rows - `ass122a` — 100 rows - `ass122b` — 870 rows - `ass122c` — 425 rows - `buf101a` — 144 rows - `buf103g` — 1,846 rows - `buf103h` — 780 rows - `buf103i` — 8,415 rows - `buf103j` — 5,694 rows - `buf103k` — 1,400 rows - `buf104g` — 2,107 rows - `buf104i` — 22K rows - `buf104j` — 52.5K rows - `buf105g` — 2,107 rows - `buf105i` — 16.5K rows - `buf105j` — 971 rows - `buf105k` — 126 rows - `buf105l` — 989 rows - `buf106g` — 1,804 rows - `buf106i` — 19.4K rows - `buf106j` — 46K rows - `buf107g` — 1,803 rows - `buf107i` — 13.7K rows - `buf107j` — 126 rows - `buf107k` — 971 rows - `buf108h` — 700 rows - `buf108i` — 10.3K rows - `buf108j` — 12.5K rows - `buf109g` — 700 rows - `buf109i` — 10.3K rows - `buf109j` — 1,008 rows - `buf110g` — 3,290 rows - `buf110i` — 32.1K rows - `buf110j` — 37.8K rows - `buf111g` — 771 rows - `buf111i` — 27.1K rows - `buf111j` — 31.7K rows - `buf112g` — 700 rows - `buf112i` — 6,208 rows - `buf112j` — 7,488 rows - `buf113g` — 1,344 rows - `buf113i` — 32.9K rows - `buf113j` — 38.7K rows - `buf114f` — 1,372 rows - `buf114i` — 33.7K rows - `buf114j` — 39.7K rows - `buf115a` — 475 rows - `buf115i` — 13.4K rows - `buf115j` — 15.6K rows - `cav101a` — 134 rows - `cav101b` — 126 rows - `cav101c` — 54 rows - `cav101d` — 528 rows - `cav101e` — 522 rows - `cav101f` — 236 rows - `cav101g` — 409 rows - `cav101h` — 385 rows - `cav101i` — 165 rows - `cav101j` — 693 rows - `cav101k` — 709 rows - `cav101l` — 324 rows - `cav101m` — 457 rows - `cav101n` — 477 rows - `cav101o` — 230 rows - `cav101p` — 131 rows - `cav101r` — 126 rows - `cav101s` — 54 rows - `cav101t` — 499 rows - `cav101u` — 503 rows - `cav101v` — 222 rows - `cav102a` — 96 rows - `cav102b` — 98 rows - `cav102c` — 42 rows - `cav102g` — 335 rows - `cav102h` — 322 rows - `cav102i` — 146 rows - `cav102j` — 555 rows - `cav102k` — 518 rows - `cav102l` — 222 rows - `cav102m` — 272 rows - `cav102n` — 252 rows - `cav102o` — 108 rows - `cav102p` — 373 rows - `cav102r` — 378 rows - `cav102s` — 162 rows - `cav102t` — 675 rows - `cav102u` — 666 rows - `cav102v` — 294 rows - `cav102x` — 468 rows - `cav103a` — 153 rows - `cav103b` — 408 rows - `cav103c` — 396 rows - `cav103e` — 51 rows - `cav103f` — 127 rows - `cav103g` — 125 rows - `cav103i` — 51 rows - `cav103j` — 136 rows - `cav103k` — 130 rows - `cav103m` — 51 rows - `cav103n` — 136 rows - `cav103o` — 132 rows - `cav103r` — 452 rows - `cav103s` — 1,064 rows - `cav103t` — 1,030 rows - `cav104a` — 51 rows - `cav104b` — 136 rows - `cav104c` — 132 rows - `cav104e` — 425 rows - `cav104f` — 1,038 rows - `cav104g` — 975 rows - `cdp101a` — 192 rows - `cdp101b` — 98 rows - `cdp102a` — 192 rows - `cdp102b` — 384 rows - `cdp102c` — 60 rows - `cdp102d` — 210 rows - `cdp102e` — 6,102 rows - `cdp102f` — 224 rows - `cdp102g` — 435 rows - `cdp102h` — 154 rows - `cdp102i` — 1,293 rows - `cdp103a` — 599 rows - `cdp103b` — 969 rows - `cdp103c` — 592 rows - `cdp103d` — 1,184 rows - `cdp103e` — 1,612 rows - `cdp103f` — 1,852 rows - `cdp103g` — 1,859 rows - `cdp104a` — 240 rows - `cdp104b` — 3,773 rows - `cdp104c` — 1,312 rows - `cdp104d` — 728 rows - `cdp104e` — 942 rows - `cdp104f` — 490 rows - `cdp104g` — 565 rows - `cdp104h` — 2,982 rows - `cdp104i` — 499 rows - `cdp105a` — 280 rows - `clv104a` — 2,040 rows - `clv105a` — 348 rows - `clv106a` — 1,190 rows - `cnf101b` — 1,274 rows - `cnf101c` — 199 rows - `cnf101d` — 247 rows - `cnf101e` — 540 rows - `cnf101f` — 403 rows - `cnf102a` — 398 rows - `cnf102b` — 496 rows - `cnf102c` — 806 rows - `cnf102d` — 1,074 rows - `cnf102e` — 1,493 rows - `cns103a` — 265 rows - `cns104a` — 2,103 rows - `cns105a` — 30 rows - `cns105l` — 2,064 rows - `cns105m` — 2,064 rows - `cns105n` — 2,064 rows - `cns106a` — 14 rows - `cns107d` — 2,322 rows - `com101a` — 564 rows - `com101b` — 338 rows - `com102a` — 36 rows - `com102b` — 16 rows - `com103a` — 288 rows - `com103f` — 195 rows - `com103p` — 2,322 rows - `com103r` — 2,322 rows - `com103s` — 2,322 rows - `com103t` — 1,782 rows - `com103u` — 1,782 rows - `com103v` — 1,782 rows - `com104a` — 99 rows - `com104b` — 69 rows - `com106c` — 20 rows - `com1071` — 2,526 rows - `com1072` — 2,526 rows - `com1073` — 2,526 rows - `com1074` — 2,526 rows - `com1075` — 2,526 rows - `com1076` — 2,526 rows - `com1081` — 1,290 rows - `com1082` — 1,290 rows - `com1083` — 1,290 rows - `com1084` — 1,290 rows - `com1085` — 1,290 rows - `com1086` — 1,290 rows - `com109b` — 594 rows - `con101n` — 9,596 rows - `con101o` — 60 rows - `con101p` — 48 rows - `con101q` — 59.3K rows - `con101r` — 10.6K rows - `con101s` — 68 rows - `con101t` — 54 rows - `con101u` — 61.4K rows - `con101v` — 656 rows - `con101w` — 724 rows - `con101x` — 574 rows - `con101y` — 342 rows - `con101z` — 64 rows - `con102a` — 2,126 rows - `con102b` — 1,609 rows - `con102d` — 123.9K rows - `con103a` — 3,621 rows - `con103b` — 200 rows - `con103c` — 784 rows - `con103h` — 794 rows - `con103i` — 1,344 rows - `con103j` — 17.1K rows - `con104p` — 4,000 rows - `con104q` — 3,625 rows - `con104r` — 3,596 rows - `con104s` — 3,596 rows - `con104t` — 3,625 rows - `con104u` — 3,625 rows - `con104v` — 3,509 rows - `con104w` — 3,509 rows - `con106h` — 3,875 rows - `con106i` — 3,751 rows - `con106j` — 3,509 rows - `con106k` — 3,509 rows - `con106l` — 3,625 rows - `con106m` — 3,625 rows - `con106n` — 3,625 rows - `con107b` — 155 rows - `con108a` — 937 rows - `con108b` — 1,485 rows - `con108c` — 3,663 rows - `con109a` — 941 rows - `con109b` — 1,485 rows - `con109c` — 3,663 rows - `con110a` — 320 rows - `con110c` — 320 rows - `con110e` — 341 rows - `con110f` — 341 rows - `con111a` — 79.2K rows … and 1,356 more — see manifest.json ## Performance notes - There are no indexes in a lakehouse. The physical sort order plus Parquet row-group min/max statistics ARE the index. Predicates on the leading sort columns prune whole row groups; everything else is a full column scan. - `ILIKE '%needle%'` cannot prune: it decompresses that whole column. Prefer prefix predicates on the lowercased search companion columns where they exist. - Every file URL under `/v//` is immutable. Cache it as aggressively as you like. - Files are never rewritten in place — a new ingest writes a new version path. Re-read the manifest to pick up updates rather than polling the file URLs. - Pull only the columns you need. Parquet is columnar and the reader range-GETs what it reads. ## Do not - Do not scrape https://data.bunnytech.app HTML. Every number on those pages comes from the manifest above. - Do not hit the upstream source (http://statistici.insse.ro:8077/tempo-online/) in bulk. This mirror exists so you do not have to. - Do not read DuckLake internal data files with a plain Parquet reader. They come with positional delete files, and ignoring those silently returns deleted rows. Use the ducklake extension, or use the published exports above. - Do not republish without the attribution line, and do not imply endorsement.