FULL-COVERAGE ingest of the U.S. EIA bulk download files. Source: https://api.eia.gov/bulk/manifest.txt -- lists every bulk dataset zip (PET, NG, ELEC, EBA, COAL, TOTAL, SEDS, STEO, INTL, EMISS, NUC_STATUS, PET_IMPORTS, IEO, AEO.<year>, ...). Each zip contains a single line-delimited JSON file:…
U.S. Energy Information Administration. Retrieved from https://www.eia.gov. Compiled and redistributed by the Elkassabgi Data Library.
Processing: Retrieved from the official source, normalized to a long {series_key, obs_date, value} schema (period-start dates), de-duplicated, and stored as zstd Parquet. Compiled and redistributed by the Elkassabgi Data Library.
FULL-COVERAGE ingest of the U.S. EIA bulk download files. Source: https://api.eia.gov/bulk/manifest.txt -- lists every bulk dataset zip (PET, NG, ELEC, EBA, COAL, TOTAL, SEDS, STEO, INTL, EMISS, NUC_STATUS, PET_IMPORTS, IEO, AEO.<year>, ...). Each zip contains a single line-delimited JSON file: most lines are SERIES records, some are CATEGORY (taxonomy) records. SERIES record (one per line): {"series_id","name","units","f","unitsshort","description","copyright", "source","iso3166","geography","start","end","last_updated", "data": [[period, value], ...]} CATEGORY record (no observations -> skipped): {"category_id","parent_category_id","name","notes","childseries"} Period tokens by frequency `f`: A annual "YYYY" -> Dec-31 Q quarterly "YYYYQn" -> first day of quarter M monthly "YYYYMM" -> 1st of month W weekly "YYYYMMDD" -> that date D daily "YYYYMMDD" -> that date H hourly UTC "YYYYMMDDThh" -> that date (hour kept in `period`) HL hourly local"YYYYMMDDThh-07" -> that date (hour+tz kept in `period`) GROUPED storage (mirrors jobs/ingest_bls.py / ingest_eurostat.py / ingest_sec_edgar.py): ONE Parquet per bulk dataset -> data/clean_full/eia/<DATASET>.parquet with a `series_id` column inside. Columns: series_id, obs_date (date32), value (float64), period (str, raw EIA period token -> lossless for hourly), freq (str). Memory is bounded: the zip's single text member is streamed line-by-line and flushed to the ParquetWriter in row-group batches (the 148M-row EBA dataset never sits in RAM whole). Sidecar metadata: ONE Parquet per dataset -> data/clean_full/eia/_meta/<DATASET>.parquet with one row per series (series_id, name, units, freq, geography, iso3166, start, end, copyright, source, n_obs) so the catalog ingest can build SeriesMeta rows without re-reading the giant data file. License: us-public-domain (configs/sources.yaml). EIA ToS: attribute to EIA; public-domain values; copyright carve-out is captured per-series in the `copyright` sidecar column for serve-time filtering. Usage: python jobs/ingest_eia.py --probe # parse small datasets, print, no big writes python jobs/ingest_eia.py --only NG,STEO # one/few datasets python jobs/ingest_eia.py # full run (all bulk datasets) python jobs/ingest_eia.py --skip-download # reuse already-downloaded zips
{
"@context": "https://schema.org/",
"@type": "Dataset",
"name": "U.S. Energy Information Administration",
"description": "FULL-COVERAGE ingest of the U.S. EIA bulk download files. Source: https://api.eia.gov/bulk/manifest.txt -- lists every bulk dataset zip (PET, NG, ELEC, EBA, COAL, TOTAL, SEDS, STEO, INTL, EMISS, NUC_STATUS, PET_IMPORTS, IEO, AEO.<year>, ...). Each zip contains a single line-delimited JSON file:…",
"url": "https://econdatalibrary.com/eia.html",
"identifier": "eia",
"isAccessibleForFree": true,
"publisher": {
"@type": "Organization",
"name": "Econ Data Library",
"url": "https://econdatalibrary.com"
},
"creator": {
"@type": "Organization",
"name": "U.S. Energy Information Administration"
},
"license": "https://www.usa.gov/government-works",
"keywords": [
"energy",
"eia"
],
"temporalCoverage": "1983-01-07/2026-05-26",
"repeatFrequency": [
"P1D",
"P1M",
"P1W"
],
"citation": "U.S. Energy Information Administration. Retrieved from https://www.eia.gov. Compiled and redistributed by the Elkassabgi Data Library.",
"sameAs": [
"https://huggingface.co/datasets/econdatalibrary-eia",
"https://zenodo.org/communities/econdatalibrary"
],
"distribution": [
{
"@type": "DataDownload",
"encodingFormat": "text/csv",
"contentUrl": "https://econdatalibrary.com/download.html?source=eia",
"license": "https://www.usa.gov/government-works"
}
]
}{
"@context": {
"@language": "en",
"@vocab": "https://schema.org/",
"cr": "http://mlcommons.org/croissant/",
"data": {
"@id": "cr:data",
"@type": "@json"
},
"dataType": {
"@id": "cr:dataType",
"@type": "@vocab"
},
"sc": "https://schema.org/",
"conformsTo": "dct:conformsTo",
"dct": "http://purl.org/dc/terms/"
},
"@type": "sc:Dataset",
"conformsTo": "http://mlcommons.org/croissant/1.0",
"name": "eia",
"description": "FULL-COVERAGE ingest of the U.S. EIA bulk download files. Source: https://api.eia.gov/bulk/manifest.txt -- lists every bulk dataset zip (PET, NG, ELEC, EBA, COAL, TOTAL, SEDS, STEO, INTL, EMISS, NUC_STATUS, PET_IMPORTS, IEO, AEO.<year>, ...). Each zip contains a single line-delimited JSON file:…",
"url": "https://econdatalibrary.com/eia.html",
"creator": {
"@type": "sc:Organization",
"name": "U.S. Energy Information Administration"
},
"publisher": {
"@type": "sc:Organization",
"name": "Econ Data Library",
"url": "https://econdatalibrary.com"
},
"license": "https://www.usa.gov/government-works",
"keywords": [
"energy"
],
"temporalCoverage": "1983-01-07/2026-05-26",
"citation": "U.S. Energy Information Administration. Retrieved from https://www.eia.gov. Compiled and redistributed by the Elkassabgi Data Library.",
"distribution": [
{
"@type": "cr:FileObject",
"@id": "eia-csv",
"name": "eia-csv",
"description": "Per-series CSV, downloadable with a free API key.",
"contentUrl": "https://econdatalibrary.com/download.html?source=eia",
"encodingFormat": "text/csv"
}
]
}