Files
worldmonitor/scripts/data/pipelines-gas.json
Elie Habib df91e99142 feat(energy): expand 5 curated registries to 100% of plan target (#3337)
* feat(energy): expand gas pipeline registry 12 → 28 (phase 1a batch 1)

Data validation after v1 launch showed pipelines shipped at ~16% of the
plan target (12 gas + 12 oil vs. the plan's 75 + 75 critical
pipelines). This commit closes ~20% of the gas gap with 16 hand-curated
global additions, every entry carrying a full evidence bundle matching
the schema enforced by scripts/_pipeline-registry.mjs.

New additions by region:

North Sea / NW Europe (6):
  europipe-1, europipe-2, franpipe, zeepipe, interconnector-uk-be, bbl

Mediterranean / North Africa (3):
  transmed (Enrico Mattei), greenstream (LY→IT, reduced),
  meg-maghreb-europe (DZ→ES via MA, offline since Oct 2021)

Middle East (1):
  arab-gas-pipeline (EG→LB via JO/SY, offline under Caesar Act)

Former Soviet / Turkey (1):
  blue-stream (RU→TR, carries EU sanctions ref)

Asia (3):
  west-east-3 (CN internal, 7378 km), myanmar-china-gas (shwe),
  igb (interconnector-greece-bulgaria, 2022)

Africa / LatAm (2):
  wagp (west african gas pipeline, 4-country transit),
  gasbol (bolivia-brazil, 3150 km)

Badge distribution on new entries:
  flowing: 12, reduced: 2, offline: 2
  First non-Russia-exposure offline entries (MEG — Morocco-Algeria
  diplomatic closure, Arab Gas — Syria sanctions) — broadens the
  geographic distribution of evidence-bundle-backed non-positive badges.

Registry tests: 17/17 pass (identity, geometry bounds, ISO2 country
codes, evidence contract, capacity-commodity pairing, validateRegistry
negative cases).

Next batches in this phase: oil pipelines +16, then second batches
each commodity to reach plan target (75+75). Tracked in
docs/internal/energy-atlas-registry-expansion.md.

* feat(energy): expand oil pipeline registry 12 → 28 (phase 1a batch 2)

Mirror of the gas batch — 16 hand-curated global additions with full
evidence bundles. Closes ~20% of the oil gap.

New additions by region:

North America (6):
  enbridge-mainline (CA→US 3.15 mbd), enbridge-line-3-replacement (2021),
  flanagan-south, seaway (Cushing→Gulf), marketlink (TC, Cushing→Gulf),
  spearhead

Middle East (3):
  sumed (EG crude bypass of Suez, 2.8 mbd),
  east-west-saudi (Petroline, 5 mbd — largest single oil pipeline in
  the registry by capacity),
  ipsa-2 (IQ→SA, offline since Iraq invasion of Kuwait 1990, later
  converted to gas on the western stretch)

Central Asia (1):
  kazakhstan-china-crude (KZ→CN Alashankou, 2228 km)

Africa (1):
  chad-cameroon-cotco (TD→CM Kribi, 1070 km)

South America (2):
  ocp-ecuador (heavy crude, 450 kbd),
  sote-ecuador (lighter grades, 360 kbd)

Europe (3):
  tal-trieste-ingolstadt (IT→DE via AT, 770 kbd),
  janaf-adria (HR→RS→HU, 280 kbd),
  norpipe-oil (NO→DE North Sea crude, 900 kbd)

Badge distribution on new entries:
  flowing: 15, offline: 1 (IPSA-2, regulator-sourced + nationalisation
  statement backing the offline badge per the evidence-contract rules).

Registry totals after this batch:
  gas:  12 → 28  (37% of plan target 75)
  oil:  12 → 28  (37% of plan target 75)
  total: 24 → 56

Registry tests: 17/17 registry + 23/23 evidence-derivation = 40/40 pass.
Typecheck-free (JSON only).

Next batches (per docs/internal/energy-atlas-registry-expansion.md):
  gas batch 2: +22 → 50 (North Sea remainder, Caspian, Asia)
  oil batch 2: +22 → 50 (North Sea remainder, Russia diversified,
                         Asia long-haul)

* feat(energy): expand gas pipeline registry 28 → 50 (phase 1a batch 3)

Second gas batch, 22 additions, bringing gas to ~67% of the 75-pipeline
plan target. Geographic distribution deliberately skewed this batch
toward under-represented regions (Middle East, Central Asia, South
America, Africa, Southeast Asia) since the first batch filled Europe
and North America.

New additions (22):

North Sea / UK (2):
  vesterled (NO→GB, 13 bcm/yr),
  cats (UK, 9.6 bcm/yr)

Iran family (3):
  iran-turkey-gas (Tabriz→Ankara, 14 bcm/yr, OFAC sanctions ref),
  iran-armenia-gas (2.3 bcm/yr),
  iran-iraq-basra-gas (reduced state — waiver-dependent flows)

Central Asia (2):
  central-asia-center (TM→RU via UZ/KZ, 44 bcm/yr nominal, reduced),
  turkmenistan-iran-korpeje (expired contract, reduced)

Caucasus / Turkey (2):
  south-caucasus-scp (BTE predecessor to TANAP, 22 bcm/yr),
  sakarya-black-sea-tr (2023 Turkish offshore)

China (2):
  west-east-1 (4200 km, 17 bcm/yr),
  west-east-2 (8700 km, 30 bcm/yr)

South America (2):
  bolivia-argentina-yacuiba (reduced),
  antonio-ricaurte (CO→VE, offline since 2015, PDVSA sanctions)

Saudi / Middle East (2):
  saudi-master-gas-system (SA internal, 95 bcm/yr — largest capacity
  in the registry), egypt-jordan-aqaba (AGP south leg, flowing)

Israel-Egypt (1):
  israel-egypt-arish-ashkelon (reverse-flow since 2020, IL→EG export)

Planned / FID-stage (5):
  galsi-planned (DZ→IT, consortium paused),
  eastmed-planned (IL→CY→GR, US political support withdrawn Jan 2022),
  trans-saharan-planned (NG→DZ via NE, insurgency + financing unresolved),
  morocco-nigeria-offshore-planned (NG→MA 11-country offshore route),
  power-of-siberia-2-planned (RU→CN via MN, no binding CNPC contract),
  kirkuk-dohuk-turkey-gas-planned (IQ→TR, Baghdad-Erbil dispute)

Badge distribution on new batch:
  flowing: 10 (incl. Sakarya 2023 commissioned)
  reduced: 3 (CAC, BO-AR, IR-IQ)
  offline: 1 (Antonio Ricaurte, CO-VE, with operator statement + sanction)
  unknown: 6 (all planned/FID-stage, classifierConfidence 0.6-0.75)

All non-flowing badges have evidence (sanction refs, operator
statements, or press sourcing) per the evidence-contract validator.

Registry totals after this batch:
  gas:  28 → 50  (67% of plan target; gas ≥60 gate threshold not yet
                  hit but approaching)
  oil:  28 (unchanged — batch 4 will target oil to 50)
  total: 56 → 78

Registry tests: 17/17 pass. Includes 8 new fully-hedged "unknown" /
planned-status entries; validator accepts them.

Next: oil batch 2 (+22 → 50), then gas batch 3 (+10 → 60), oil batch 3
(+10 → 60). After that the gate criteria on pipelines hit and we can
focus on storage / shortages / disruptions.

* feat(energy): expand oil pipeline registry 28 → 50 (phase 1a batch 4)

Second oil batch, 22 additions, bringing oil to 67% of plan target and
matching gas (50 each, 100 total pipelines).

New additions (22):

Russia Baltic export (2):
  bps-1 (Primorsk, 1.3 mbd — largest single line in oil registry),
  bps-2 (Ust-Luga, 0.75 mbd). Both carry G7+EU price-cap sanctions ref.

North America diversified (3):
  enbridge-line-5 (CA→CA via US Straits of Mackinac, ongoing litigation),
  keystone-xl-cancelled (CA→US, permit revoked 2021, Biden; TC
  terminated Jun 2021; listed for historical + geopolitical
  completeness, physicalState=unknown by deriver rule),
  trans-panama-pipeline (PA, 0.9 mbd cross-isthmus)

Europe remaining (3):
  rotterdam-rhine-rrp (NL→DE, 275 km),
  spse (FR→DE Lyon→Karlsruhe, 769 km),
  forties-pipeline (UK North Sea, 0.6 mbd),
  brent-pipeline (NO→GB Sullom Voe, reduced — Brent field in
  decommissioning)

Middle East (2):
  khafji-neutral-zone (SA/KW, reduced post-2015 neutral-zone dispute),
  ab-1-bahrain (SA→BH, 2018, 0.35 mbd)

Africa (4):
  greater-nile-petroleum (SS→SD Port Sudan, 1610 km),
  djeno-congo (CG terminal system),
  nigeria-forcados-export (reduced — recurring force-majeure),
  nigeria-bonny-export (Trans Niger Pipeline, reduced)

Latin America (2):
  pemex-nuevo-cactus (MX, 0.44 mbd),
  trans-andino (AR→CL, offline since 2006 export restrictions)

Ukraine (1):
  odesa-brody (offline, under EU 2022/879 Russian-crude embargo
  framework)

Asia (1):
  myanmar-china-crude (MM→CN Kunming, 771 km parallel to
  myanmar-china-gas)

Caspian (1):
  baku-novorossiysk-northern (AZ→RU historical route, reduced, carries
  Russian crude price-cap ref)

Historical / planned (2):
  kirkuk-haifa-idle (IQ→IL via JO, closed 1948 — listed for
  completeness; periodically floated as reopening proposal),
  uganda-tanzania-eacop-planned (UG→TZ, under construction, Western
  bank-financing pulled but TotalEnergies continues)

Badge distribution on new batch:
  flowing: 10
  reduced: 6 (Brent decommissioning, Khafji dispute, Greater Nile,
              Forcados, Bonny, Baku-Novorossiysk)
  offline: 2 (Odesa-Brody, Trans-Andino, Kirkuk-Haifa)
  unknown: 2 (Keystone XL cancelled, EACOP under construction)
  Wait, Kirkuk-Haifa is offline not among 2. Corrected count:
  flowing: 10, reduced: 6, offline: 3 (Odesa-Brody, Trans-Andino,
  Kirkuk-Haifa), unknown: 2, plus 1 flowing Myanmar-China-crude = 22.

All non-flowing badges carry supporting evidence (operator statements,
sanction refs, or press citations) per the evidence-contract validator.

Registry totals after this batch:
  gas:  50 (67% of plan target)
  oil:  28 → 50 (67% of plan target)
  total: 78 → 100

Registry tests: 17/17 + 23/23 evidence-derivation = 40/40 pass.

Next batches to hit the 60-each gate criteria from
docs/internal/energy-atlas-registry-expansion.md:
  gas batch 3: +10 → 60 (EastMed details, Galsi alternative routes,
              minor EU-interconnectors, Nigeria LNG feeder gas lines)
  oil batch 3: +10 → 60 (Pluto crude, Chinese Huabei system, Latam
              infill: Brazil Campos, Peru Northern Trunk)

After 60/60: hit gate, move to storage expansion.

* feat(energy): gas registry 50 → 75 — plan target hit

Batch 3 adds 25 more gas pipelines, bringing gas to 100% of the
75-pipeline plan target.

New additions by region (25):
- Norwegian transport spine: statpipe, sleipner-karsto, troll-a,
  oseberg-gas-transport, asgard-transport (covers the major offshore
  export collectors — the rest of the Gassco system)
- Australia: dampier-bunbury (1594 km), moomba-sydney (1299 km)
- Africa: mozambique-rompco (MZ→ZA), escravos-lagos-gas (NG),
  tanzania-mtwara-dar, ghana-gas (atuabo)
- Southeast Asia: thailand-malaysia-cakerawala, indonesia-singapore
  west-natuna + grissik-sakra
- German hubs for Nord Stream continuation: nel-pipeline, opal-pipeline,
  eugal-pipeline (built but dormant after NS2 halt/destruction),
  megal-pipeline, gascade-jagal, zeelink-germany
- Russia/Ukraine/EU transit: progress-urengoy-uzhhorod (halted 1 Jan
  2025 when Ukraine did not renew transit agreement), trans-austria-gas
- Iran: kish-iran-gas, iran-pakistan-gas-planned (Pakistani segment
  stalled since 2014)
- China/HK: china-hong-kong-gas

Badge distribution on new batch: 15 flowing, 4 reduced (NEL, OPAL,
TAG, Escravos-Lagos), 2 offline (EUGAL dormant post-NS2,
Urengoy-Uzhhorod transit halt), 4 sanction-exposed (NS-continuation
pipelines + TAG + Urengoy), 1 unknown (Iran-Pakistan stalled
completion).

Plan progress: gas 50 → 75 (100% of plan target).
Registry tests: 17/17 pass.

* feat(energy): oil registry 50 → 75 — plan target hit

Batch 4 adds 25 more oil pipelines, bringing oil to 100% of the
75-pipeline plan target. Combined with gas at 75, total registry is
150 pipelines — full plan coverage for Phase 1a.

New additions by region (25):
- Latin America: colombia-cano-limon-covenas (ELN-sabotaged, reduced),
  colombia-ocensa (main trunk), peru-norperuano (reduced from jungle
  spills + protests), ecuador-lago-agrio-orellana,
  venezuela-anzoategui-puerto-la-cruz (under OFAC PDVSA sanctions),
  mexico-salina-cruz-minatitlan, mexico-madero-cadereyta,
  mexico-gulf-coast-pipeline (Tuxpan-Mexico City)
- Africa: angola-cabinda-offshore, south-sudan-kenya-lamu-planned
  (LAPSSET)
- Middle East: iran-abadan-isfahan, iran-neka-tehran (reduced,
  Caspian swap arrangements), saudi-abqaiq-yanbu-products,
  iraq-strategic-pipeline (1000 km north-south), iraq-bai-hassan,
  oman-muscat-export (Fahud-Mina al-Fahal), uae-habshan-ruwais
- Asia-Pacific: india-salaya-mathura (1770 km, largest Indian crude
  trunk), india-vadinar-kandla, india-mundra-bhatinda,
  china-qinhuangdao-tianjin-huabei, china-yangzi-hefei-hangzhou
- Russia East: russia-sakhalin-2-crude, russia-komsomolsk-perevoznaya,
  russia-omsk-pavlodar (cross-border to KZ)

Badge distribution on this batch: 18 flowing, 6 reduced, 1 unknown
(LAPSSET planned). Sanctions-exposure diversified: Iran framework (3),
Venezuela/PDVSA (1), Russian price-cap (3). All non-flowing badges
carry supporting evidence per validator rules.

Phase 1a final state (pipelines):
  gas: 12 → 75 (100% of plan target, 6 batches)
  oil: 12 → 75 (100% of plan target, 6 batches)
  total: 24 → 150

Geographic distribution now global:
  - Russia-exposure: ~22 of 150 entries (~15%, down from 50% at v1)
  - US-only: ~8 (~5%, down from 33% storage-side skew)
  - Six continents represented in active infrastructure
  - Historical + planned pipelines (Kirkuk-Haifa, Keystone XL cancelled,
    EACOP u/c, EastMed planned, GALSI planned, TSGP planned,
    Nigeria-Morocco offshore, Power of Siberia 2, Iran-Pakistan Peace,
    LAPSSET) listed with honest 'unknown' physicalState per validator

Registry tests: 17/17 pass.

Phase 1a complete. Next phase (per
docs/internal/energy-atlas-registry-expansion.md):
  - Phase 2: storage 21 → ~200 (+179) via curation + GIIGNL/GIE/EIA
  - Phase 3: shortages 14 → 28 countries
  - Phase 4: disruptions 12 → 50 events

* feat(energy): shortages 15 → 29 entries across 28 countries — plan target hit

+14 country additions matching the 28-country plan target. The
validator's 'confirmed severity requires authoritative source' rule
caught two of my drafts (Myanmar + Sudan) where I had labeled them
confirmed with press-only evidence because regulator/operator sources
under a junta + active civil war are not independently verifiable.
Downgraded both to 'watch' with an inline note explaining the
evidence-quality choice — exactly the validator's intended behavior
(better to under-claim than over-claim severity when the authoritative
channel is broken).

New shortages (14):
- BD diesel: BPC LC delays, regulator-confirmed
- ZA diesel: loadshedding demand spike
- AO diesel: Luanda/Benguela depot delays
- MZ diesel: FX-allocation import constraints
- ZM diesel: mining-sector demand + TAZAMA product tightness
- MW diesel: FX shortfalls + MERA rationing
- GH petrol: Tema port congestion
- MM diesel: post-coup chronic (watch, press-only evidence)
- MN diesel: winter logistics
- CO diesel: trucker strike cycles
- UA diesel: war-driven chronic (confirmed — Ministry of Energy source)
- SY diesel: Caesar Act chronic (confirmed — Syrian Ministry statement)
- SD diesel: civil-war disruption (watch, press-only)
- DE heating_oil: Rhine low-water logistics (watch)

Badge distribution on new batch: 3 confirmed (BD, UA, SY — all with
regulator/operator evidence), 11 watch.

Plan progress:
  shortages: 15 → 29 entries (28 unique countries = 100% of plan)
  gas: 75 (100%)
  oil: 75 (100%)
  storage: 21 (unchanged, next batch)
  disruptions: 12 (unchanged, next batch)

Registry tests: 19/19 pass.

* feat(energy): disruption event log 12 → 52 events — plan target hit

+40 historical and ongoing events covering the asset registry,
bringing disruptions to 104% of the 50-event plan target. Every event
ties to an assetId now in pipelines/storage registries (following the
75-gas + 75-oil + 21-storage registry expansion in the preceding
commits).

New additions by eventType:

Sabotage / war (7):
- abqaiq-khurais-drone-strike-2019 (Saudi, 5.7 mbd removed 11 days)
- russia-refinery-drone-strikes-2024 (Ukrainian drone strike series)
- houthi-red-sea-attacks-2024 (indirect SuMed demand impact)
- russia-ukraine-oil-depot-strikes-2022 (series)
- nigeria-trans-niger-attacks-2024 (Bonny system)
- bai-hassan-attack-2022 (Iraq Bai Hassan)
- sudan-pipeline-attacks-2023 (Greater Nile disruption)

Sanctions (7):
- russia-price-cap-implementation-2022 (G7+EU $60/bbl cap)
- eu-oil-embargo-2022 (6th package)
- pdvsa-designation-2019 (Venezuela)
- btc-kurdistan-shutdown-2023 (ICC ruling, ongoing)
- ipsa-nationalization-2001 (SA nationalised after Iraq invasion of Kuwait)
- arctic-lng-2-foreign-partner-withdrawal-2024
- yamal-lng-arctic-sanctions-ongoing (Novatek)
- ogm-moldova-transit-2022

Mechanical (4):
- druzhba-contamination-2019 (chlorides, 3-month shut)
- keystone-milepost-14-leak-2022 (Kansas, 22-day shut, 14k bbl spill)
- forties-crack-2017 (Red Moss hairline)
- ocensa-ocp-ecuador-suspensions-2022 (Amazon landslide)

Weather (2):
- hurricane-ida-lng-2021 (Gulf coast LNG shutdown)
- rotterdam-hub-low-water-2022 (Rhine 2.5-month disruption)

Commercial (9):
- cpc-blockage-threat-2022 (Russian court 30-day halt threat)
- gme-closure-2021 (Algeria-Morocco MEG)
- ukraine-transit-end-2025 (Progress pipeline halted 1 Jan 2025)
- eugal-dormant-since-2022 (NS2 knock-on)
- keystone-xl-permit-revoked-2021 (Biden day-1)
- antonio-ricaurte-halt-2015 (CO→VE gas export halt)
- langeled-brent-decommissioning-2020
- eacop-financing-2023 (Western bank withdrawal)
- dolphin-qatar-uae-commercial-2024 (contract renegotiation)
- trans-austria-gas-reduction-2022 (Gazprom volume drops)
- cushing-stocks-tank-bottoms-2022
- spr-drawdown-2022-2023 (largest ever 180 mbbl release)
- zhoushan-storage-expansion-2023
- fujairah-stockbuild-2024
- futtsu-lng-demand-decline-2024
- bolivia-diesel-import-cut-2023 (GASBOL)
- myanmar-china-gas-reduced-2023
- yamal-europe-poland-halt-follow-on-2024

Maintenance (1): gladstone-lng-maintenance-2023

Ongoing events (endAt=null): 31 of 52 (~60%). Reflects the structural
reality that many 2022-era sanctions + war events remain live in 2026.

Plan progress:
  gas: 75 (100%)
  oil: 75 (100%)
  storage: 21 (unchanged, next batch)
  shortages: 29 (100% — 28 countries)
  disruptions: 12 → 52 events (104% of plan)

Registry tests: 16/16 pass.

* feat(energy): storage registry 21 → 66 (storage batch 1)

+45 facilities, 33% of plan. Focus: European UGS + second LNG wave.

European UGS additions (35 — mostly filling the gap against GIE AGSI+
coverage which has ~140 EU sites; we now register the majority of
operationally significant ones with non-trivial working capacity):

Germany (9): bierwang, etzel-salt-cavern, jemgum, krummhoern,
  peckensen, reckrod, uelsen, xanten, epe-salt-cavern
Netherlands (3): alkmaar, norg (largest NL, 59.2 TWh), zuidwending
Austria (3): 7fields-schonkirchen (24.6 TWh), baumgarten-uhs,
  puchkirchen
France (7): chemery (38.5 TWh), cerville-velaine, etrez, manosque,
  lussagnet (35 TWh), izaute
Italy (4): minerbio (45 TWh, largest IT), ripalta, sergnano,
  brugherio
UK (2): rough (reduced, post-2017 partial reopening 2022), hornsea
Central/Eastern Europe (8): damborice (CZ), lobodice (CZ),
  lab-slovakia (36 TWh), hajduszoboszlo (HU), mogilno (PL),
  lille-torup (DK), incukalns (LV), gaviota (ES)

Russia (1): kasimovskoe (124 TWh — Gazprom UGS flagship; EU sanctions
  ref carried as evidence)

LNG terminals (9 additions to round out global coverage):
- US: freeport-lng, cameron-lng, cove-point-lng, elba-island-lng
- Middle East: qalhat-lng (Oman), adgas-das-island (UAE)
- Russia: sakhalin-2-lng (sanctions-exposed)
- Indonesia: tangguh-lng, bontang-lng (reduced — declining upstream)

Badge distribution on this batch: 43 operational, 2 reduced (Rough,
Bontang). Most entries from GIE AGSI+ fill-disclosed data; Russian
site + LNG terminals fill-not-disclosed (operator choice + sanctions).

Plan progress:
  gas pipelines: 75 (100%)
  oil pipelines: 75 (100%)
  fuel shortages: 29 / 28 countries (100%)
  disruptions: 52 (104%)
  storage: 21 → 66 (33% of ~200 target)

Registry tests: 21/21 pass.

Next storage batches remaining:
  batch 2 (+45): more European UGS tail + Asian national reserves
                 (CN SPR, IN SPR, JP national reserves, KR KNOC)
  batch 3 (+45): LNG import terminals + additional US tank farms +
                 European tank farms (Rotterdam detail, ARA sub-sites)
  batch 4 (+45): remainder to ~200

* feat(energy): storage registry 66 → 110 (storage batch 2)

+44 facilities. Focus: Asian national reserves + global LNG coverage
+ Singapore/ARA tank-farm detail.

Asian national reserves (11):
- IN ISPRL: vizag (9.8 Mb), mangalore (11 Mb), padur (17.4 Mb)
- CN: zhanjiang (45 Mb), huangdao (20 Mb) — fill opaque, press-only
- JP JOGMEC: shibushi (31.2 Mb), kiire (22 Mb), mutsu-ogawara (28 Mb)
- KR KNOC: yeosu (42 Mb), ulsan (33 Mb), geoje (47 Mb)

LNG export additions (11):
- Australia: pluto-lng, prelude-flng (reduced), darwin-lng (reduced
  upstream)
- Southeast Asia: mlng-bintulu (29.3 Mtpa — largest in registry),
  brunei-lng, donggi-senoro-lng
- Africa: angola-lng (reduced), equatorial-guinea-lng, hilli-episeyo-flng
- Pacific: png-lng
- Caribbean: trinidad-atlantic-lng (reduced)
- Mexico: costa-azul-lng (2025 reverse-to-export commissioning)

LNG import (12):
- UK: south-hook-lng (21 Mtpa), dragon-lng
- EU: zeebrugge-lng, dunkerque-lng, fos-cavaou-lng,
  montoir-de-bretagne-lng, gate-terminal (Rotterdam),
  revithoussa-lng
- Turkey: aliaga-ege-gaz-lng
- Chile: mejillones-lng, quintero-bay-lng

Tank farms (10):
- Africa: saldanha-bay (ZA 45 Mb)
- Norway: mongstad-crude
- ARA: antwerp-petroleum-hub (BE 55 Mb), amsterdam-petroleum-hub
- Asia hubs: singapore-jurong (120 Mb — largest in registry),
  singapore-pulau-ayer-chawan, thailand-sriracha, korea-gwangyang-crude
- Russia Baltic: ust-luga-crude-terminal, primorsk-crude-terminal
  (both carry Russian price-cap sanction refs)

Badge distribution on this batch: 39 operational, 5 reduced (Prelude,
Darwin, Angola, Bontang — no wait Bontang already in. Correct: Prelude,
Darwin, Angola, Trinidad).

Plan progress:
  gas pipelines: 75 (100%)
  oil pipelines: 75 (100%)
  fuel shortages: 29 / 28 countries (100%)
  disruptions: 52 (104%)
  storage: 66 → 110 (55% of ~200 target)

Registry tests: 21/21 pass.

Next batches remaining: ~90 more storage to hit ~200
  batch 3 (+45): Middle East tank farms, Chinese coastal commercial
                 storage, EU UGS tail, African LNG import
  batch 4 (+45): remainder to 200

* feat(energy): storage registry 110 → 155 (storage batch 3)

Adds 45 facilities toward 200 plan target:
- 7 Middle East export terminals (Kharg, Sidi Kerir, Mina al-Ahmadi,
  Mesaieed, Jebel Dhanna, Mina al-Fahal, Bandar Imam Khomeini)
- 10 EU UGS tail (Reitbrook, Empelde, Kirchheilingen, Stockstadt,
  Nüttermoor, Grijpskerk, Târgu Mureș, Třanovice, Uhřice, Háje)
- 4 Chinese coastal crude (Yangshan, Qingdao, Rizhao, Maoming)
- 6 EU LNG import tail (La Spezia, Adriatic, OLT Livorno, Klaipeda,
  Mugardos, Cartagena)
- 5 Indian LNG import (Hazira, Kochi reduced, Ennore, Mundra, Dabhol)
- 6 Japan/Korea LNG import (Chita, Negishi, Sodegaura, Himeji,
  Pyeongtaek, Incheon)
- 5 NA tank farms (Lake Charles, Corpus Christi, Patoka, Edmonton,
  Hardisty)
- 2 Asia-Pacific (Kaohsiung, Nghi Son)

Registry validator: 21/21 tests pass.

* feat(energy): storage registry 155 → 200 (storage batch 4 — plan target hit)

Final batch brings storage to the 200-facility plan target with broad
geographic + facility-type coverage.

New entries (45):
- 6 LNG export: NLNG Bonny (NG, reduced), Arzew (DZ), Skikda (DZ),
  Perú LNG, Calcasieu Pass (US), North West Shelf Karratha (AU)
- 7 LNG import: Świnoujście (PL), Krk FSRU (HR), Wilhelmshaven FSRU (DE),
  Brunsbüttel (DE), Map Ta Phut (TH), Port Qasim (PK), Batangas (PH)
- 6 UGS: Bilche-Volytsko-Uherske (UA, 154 TWh — largest Europe), Banatski
  Dvor (RS), Okoli (HR), Yela (ES), Loenhout (BE), Kushchevskoe (RU)
- 26 crude tank farms: José Terminal (VE, sanctioned), Santos (BR),
  TEBAR São Sebastião (BR), Dos Bocas (MX), Bonny (NG, reduced), Es
  Sider (LY, reduced), Ras Lanuf (LY, reduced), Ceyhan (TR), Puerto
  Rosales (AR), Novorossiysk Sheskharis (RU, sanctioned), Kozmino (RU,
  sanctioned), Tema (GH, reduced), Mombasa (KE), Abidjan SIR (CI),
  Juaymah (SA), Ras Tanura (SA), Yanbu (SA), Kirkuk (IQ, reduced),
  Basra Gulf (IQ), Djibouti Horizon (DJ), Yokkaichi (JP), Mailiao
  (TW), Ventspils (LV, reduced), Gdańsk Naftoport (PL), Constanța
  (RO), Wood River IL (US).

Geographic balance improved: Africa coverage (NG, DZ, LY, GH, KE, CI,
DJ) from 5 to 12 countries; first Iraq + Saudi entries; Balkans +
Ukraine + Romania now covered. Type mix: UGS 56, SPR 15, LNG export 33,
LNG import 38, crude tank farm 58.

Non-operational entries all carry authoritative evidence (press
operator statements + sanctionRefs for Russia/Venezuela).

Registry validator: 21/21 tests pass. Total: 200 facilities across 55
countries. Plan target hit.

* fix(energy): address Greptile review findings on registries

P1 — abqaiq-khurais-drone-strike-2019 (energy-disruptions.json):
capacityOfflineMbd was 5.7 (plant-level Saudi production loss headline)
against assetId east-west-saudi (5.0 mbd pipeline). Capped offline
figure at the linked pipeline's 5.0 mbd ceiling; moved the 5.7 mbd
historical headline into shortDescription with an explanatory note.
Preserves capacity-offline ≤ asset-capacity invariant for downstream
consumers.

P1 — russia-price-cap-implementation-2022 (energy-disruptions.json):
was linked to assetId espo (land pipeline to China — explicitly out of
scope for G7/EU price cap). Relinked to primorsk-crude-terminal
(largest Baltic seaborne crude export terminal, directly affected);
assetType pipeline → storage. Updated shortDescription to clarify
tanker-shipment scope + out-of-scope note for ESPO.

P2 — 13 reduced-state pipelines missing press citation text
(pipelines-gas.json × 8 + pipelines-oil.json × 5):
Added operatorStatement sentences naming the press/regulator sources
backing each reduction claim (Reuters, NNPC/Chevron releases, NIGC,
Pemex annual reports, S&P Platts, IEA Gas Market Report, BBC, etc.).
Clears the evidence-source-type gap flagged by Greptile for entries
that declared physicalStateSource: "press" with a null statement.

All 6583 data tests + 94 registry tests still pass.

* style(energy): restore compact registry formatting (preserve Greptile-fix evidence)

Prior commit 44b2c6859 accidentally reformatted pipelines-gas.json
and pipelines-oil.json from their compact mixed format to fully-
expanded JSON via json.dump(indent=2), producing 2479 lines of noise
for 13 one-line semantic changes.

This commit restores the original compact formatting while preserving
the 12 operatorStatement text additions from the Greptile P2 fix
(peru-norperuano was already fine — it carries a structured
operatorStatement object; the other 12 entries correctly gained press
citation text).

No data change vs 44b2c6859 — only whitespace reverts to original
layout. Pipeline registry tests (40/40) + full test:data (6583/6583)
still pass.
2026-04-23 12:32:29 +04:00

1483 lines
63 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"source": "Curated from operator disclosures, regulator filings, ENTSOG, GEM (CC-BY 4.0)",
"methodologyUrl": "/docs/methodology/pipelines",
"version": "v1",
"referenceYear": 2026,
"classifierVersion": "v1",
"pipelines": {
"nord-stream-1": {
"id": "nord-stream-1",
"name": "Nord Stream 1",
"operator": "Nord Stream AG",
"commodityType": "gas",
"fromCountry": "RU",
"toCountry": "DE",
"transitCountries": [],
"capacityBcmYr": 55,
"lengthKm": 1224,
"inService": 2011,
"startPoint": { "lat": 60.08, "lon": 29.05 },
"endPoint": { "lat": 54.14, "lon": 13.66 },
"evidence": {
"physicalState": "offline",
"physicalStateSource": "operator",
"operatorStatement": {
"text": "Pipelines damaged by underwater explosions in Swedish/Danish EEZ (Sep 2022); operator filed for insolvency.",
"url": "https://www.nordstream.com/press-info/",
"date": "2022-09-26"
},
"commercialState": "suspended",
"sanctionRefs": [
{ "authority": "EU", "listId": "2022/1269 (energy sanctions package 8)", "date": "2022-10-06", "url": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32022R1269" }
],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.98
}
},
"nord-stream-2": {
"id": "nord-stream-2",
"name": "Nord Stream 2",
"operator": "Nord Stream 2 AG",
"commodityType": "gas",
"fromCountry": "RU",
"toCountry": "DE",
"transitCountries": [],
"capacityBcmYr": 55,
"lengthKm": 1234,
"inService": null,
"startPoint": { "lat": 60.08, "lon": 29.05 },
"endPoint": { "lat": 54.14, "lon": 13.66 },
"evidence": {
"physicalState": "offline",
"physicalStateSource": "operator",
"operatorStatement": {
"text": "One of two lines damaged in Sep 2022 sabotage; commissioning halted by Germany in Feb 2022.",
"url": "https://www.bundesregierung.de/breg-en/news/baerbock-ukraine-russia-nordstream2-2005934",
"date": "2022-02-22"
},
"commercialState": "suspended",
"sanctionRefs": [
{ "authority": "US", "listId": "OFAC (PEESA)", "date": "2022-02-23", "url": "https://home.treasury.gov/news/press-releases/jy0602" }
],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.95
}
},
"turkstream": {
"id": "turkstream",
"name": "TurkStream",
"operator": "South Stream Transport B.V. (Gazprom)",
"commodityType": "gas",
"fromCountry": "RU",
"toCountry": "TR",
"transitCountries": [],
"capacityBcmYr": 31.5,
"lengthKm": 930,
"inService": 2020,
"startPoint": { "lat": 44.95, "lon": 37.32 },
"endPoint": { "lat": 41.89, "lon": 28.02 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.85
}
},
"yamal-europe": {
"id": "yamal-europe",
"name": "YamalEurope Pipeline",
"operator": "Gazprom / EuRoPol GAZ / WinGas",
"commodityType": "gas",
"fromCountry": "RU",
"toCountry": "DE",
"transitCountries": ["BY", "PL"],
"capacityBcmYr": 33,
"lengthKm": 4107,
"inService": 1999,
"startPoint": { "lat": 66.52, "lon": 66.60 },
"endPoint": { "lat": 52.27, "lon": 14.64 },
"evidence": {
"physicalState": "offline",
"physicalStateSource": "press",
"operatorStatement": null,
"commercialState": "expired",
"sanctionRefs": [
{ "authority": "Poland", "listId": "Retaliatory counter-sanctions on EuRoPol GAZ", "date": "2022-04-26", "url": "https://www.gov.pl/web/aktywa-panstwowe/" }
],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.9
}
},
"brotherhood-soyuz": {
"id": "brotherhood-soyuz",
"name": "Brotherhood & Soyuz (Transit via Ukraine)",
"operator": "Gazprom / Naftogaz",
"commodityType": "gas",
"fromCountry": "RU",
"toCountry": "SK",
"transitCountries": ["UA"],
"capacityBcmYr": 142,
"lengthKm": 4451,
"inService": 1983,
"startPoint": { "lat": 58.00, "lon": 56.00 },
"endPoint": { "lat": 48.60, "lon": 22.14 },
"evidence": {
"physicalState": "offline",
"physicalStateSource": "operator",
"operatorStatement": {
"text": "Ukraine transit contract expired 2024-12-31; Naftogaz did not renew.",
"url": "https://www.naftogaz.com/en/news",
"date": "2025-01-01"
},
"commercialState": "expired",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.92
}
},
"power-of-siberia": {
"id": "power-of-siberia",
"name": "Power of Siberia",
"operator": "Gazprom / CNPC",
"commodityType": "gas",
"fromCountry": "RU",
"toCountry": "CN",
"transitCountries": [],
"capacityBcmYr": 38,
"lengthKm": 3000,
"inService": 2019,
"startPoint": { "lat": 62.45, "lon": 129.73 },
"endPoint": { "lat": 49.58, "lon": 127.52 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.9
}
},
"dolphin": {
"id": "dolphin",
"name": "Dolphin Gas Pipeline",
"operator": "Dolphin Energy Ltd",
"commodityType": "gas",
"fromCountry": "QA",
"toCountry": "AE",
"transitCountries": [],
"capacityBcmYr": 20.4,
"lengthKm": 364,
"inService": 2007,
"startPoint": { "lat": 25.90, "lon": 51.50 },
"endPoint": { "lat": 24.47, "lon": 54.37 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.92
}
},
"medgaz": {
"id": "medgaz",
"name": "Medgaz",
"operator": "Medgaz S.A. (Sonatrach / Naturgy)",
"commodityType": "gas",
"fromCountry": "DZ",
"toCountry": "ES",
"transitCountries": [],
"capacityBcmYr": 10.5,
"lengthKm": 757,
"inService": 2011,
"startPoint": { "lat": 35.67, "lon": -0.64 },
"endPoint": { "lat": 36.73, "lon": -2.59 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.9
}
},
"tap": {
"id": "tap",
"name": "Trans-Adriatic Pipeline (TAP)",
"operator": "TAP AG",
"commodityType": "gas",
"fromCountry": "TR",
"toCountry": "IT",
"transitCountries": ["GR", "AL"],
"capacityBcmYr": 10,
"lengthKm": 878,
"inService": 2020,
"startPoint": { "lat": 40.91, "lon": 26.27 },
"endPoint": { "lat": 40.53, "lon": 17.85 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.92
}
},
"tanap": {
"id": "tanap",
"name": "Trans-Anatolian Pipeline (TANAP)",
"operator": "TANAP Doğalgaz İletim A.Ş.",
"commodityType": "gas",
"fromCountry": "AZ",
"toCountry": "TR",
"transitCountries": ["GE"],
"capacityBcmYr": 16,
"lengthKm": 1850,
"inService": 2018,
"startPoint": { "lat": 41.17, "lon": 42.85 },
"endPoint": { "lat": 40.91, "lon": 26.27 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.9
}
},
"central-asia-china": {
"id": "central-asia-china",
"name": "Central AsiaChina Gas Pipeline",
"operator": "CNPC / Turkmengaz / KazTransGas",
"commodityType": "gas",
"fromCountry": "TM",
"toCountry": "CN",
"transitCountries": ["UZ", "KZ"],
"capacityBcmYr": 55,
"lengthKm": 1833,
"inService": 2009,
"startPoint": { "lat": 40.00, "lon": 62.50 },
"endPoint": { "lat": 42.88, "lon": 80.20 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.88
}
},
"langeled": {
"id": "langeled",
"name": "Langeled",
"operator": "Gassco",
"commodityType": "gas",
"fromCountry": "NO",
"toCountry": "GB",
"transitCountries": [],
"capacityBcmYr": 25.5,
"lengthKm": 1166,
"inService": 2006,
"startPoint": { "lat": 64.82, "lon": 6.70 },
"endPoint": { "lat": 53.71, "lon": -0.31 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.95
}
},
"europipe-1": {
"id": "europipe-1",
"name": "Europipe I",
"operator": "Gassco",
"commodityType": "gas",
"fromCountry": "NO",
"toCountry": "DE",
"transitCountries": [],
"capacityBcmYr": 16,
"lengthKm": 620,
"inService": 1995,
"startPoint": { "lat": 56.55, "lon": 3.22 },
"endPoint": { "lat": 53.50, "lon": 7.12 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.95
}
},
"europipe-2": {
"id": "europipe-2",
"name": "Europipe II",
"operator": "Gassco",
"commodityType": "gas",
"fromCountry": "NO",
"toCountry": "DE",
"transitCountries": [],
"capacityBcmYr": 24,
"lengthKm": 658,
"inService": 1999,
"startPoint": { "lat": 58.85, "lon": 2.07 },
"endPoint": { "lat": 53.50, "lon": 7.12 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.95
}
},
"franpipe": {
"id": "franpipe",
"name": "Franpipe",
"operator": "Gassco",
"commodityType": "gas",
"fromCountry": "NO",
"toCountry": "FR",
"transitCountries": [],
"capacityBcmYr": 19.2,
"lengthKm": 840,
"inService": 1998,
"startPoint": { "lat": 56.54, "lon": 3.22 },
"endPoint": { "lat": 51.08, "lon": 2.35 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.95
}
},
"zeepipe": {
"id": "zeepipe",
"name": "Zeepipe",
"operator": "Gassco",
"commodityType": "gas",
"fromCountry": "NO",
"toCountry": "BE",
"transitCountries": [],
"capacityBcmYr": 15,
"lengthKm": 814,
"inService": 1993,
"startPoint": { "lat": 60.62, "lon": 3.33 },
"endPoint": { "lat": 51.33, "lon": 3.20 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.95
}
},
"interconnector-uk-be": {
"id": "interconnector-uk-be",
"name": "Interconnector UKBelgium",
"operator": "Interconnector (UK) Limited",
"commodityType": "gas",
"fromCountry": "GB",
"toCountry": "BE",
"transitCountries": [],
"capacityBcmYr": 25.5,
"lengthKm": 235,
"inService": 1998,
"startPoint": { "lat": 52.08, "lon": 1.67 },
"endPoint": { "lat": 51.33, "lon": 3.20 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.92
}
},
"bbl": {
"id": "bbl",
"name": "BBL (BalgzandBacton Line)",
"operator": "BBL Company",
"commodityType": "gas",
"fromCountry": "NL",
"toCountry": "GB",
"transitCountries": [],
"capacityBcmYr": 19,
"lengthKm": 235,
"inService": 2006,
"startPoint": { "lat": 52.93, "lon": 4.83 },
"endPoint": { "lat": 52.85, "lon": 1.45 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.92
}
},
"transmed": {
"id": "transmed",
"name": "Trans-Mediterranean (Enrico Mattei)",
"operator": "Sonatrach / Eni",
"commodityType": "gas",
"fromCountry": "DZ",
"toCountry": "IT",
"transitCountries": ["TN"],
"capacityBcmYr": 33.5,
"lengthKm": 2475,
"inService": 1983,
"startPoint": { "lat": 31.67, "lon": 5.02 },
"endPoint": { "lat": 37.63, "lon": 12.73 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.92
}
},
"greenstream": {
"id": "greenstream",
"name": "Greenstream",
"operator": "Eni / Mellitah Oil & Gas",
"commodityType": "gas",
"fromCountry": "LY",
"toCountry": "IT",
"transitCountries": [],
"capacityBcmYr": 8,
"lengthKm": 520,
"inService": 2004,
"startPoint": { "lat": 32.60, "lon": 12.47 },
"endPoint": { "lat": 37.12, "lon": 14.28 },
"evidence": {
"physicalState": "reduced",
"physicalStateSource": "press",
"operatorStatement": "Libya supply constrained since 2011 civil conflict; Eni/Mellitah flows reportedly well below 8 Bcm/yr nameplate per Reuters and Eni operator statements (2020-2024).",
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.78
}
},
"meg-maghreb-europe": {
"id": "meg-maghreb-europe",
"name": "MaghrebEurope Gas Pipeline (GME)",
"operator": "Metragaz / Enagás",
"commodityType": "gas",
"fromCountry": "DZ",
"toCountry": "ES",
"transitCountries": ["MA"],
"capacityBcmYr": 12,
"lengthKm": 1620,
"inService": 1996,
"startPoint": { "lat": 32.13, "lon": -0.67 },
"endPoint": { "lat": 36.15, "lon": -5.45 },
"evidence": {
"physicalState": "offline",
"physicalStateSource": "regulator",
"operatorStatement": {
"text": "Contract not renewed Oct 2021; pipeline closed between Algeria and Morocco amid diplomatic dispute.",
"url": "https://www.energy.gov.dz/",
"date": "2021-10-31"
},
"commercialState": "expired",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.9
}
},
"igb": {
"id": "igb",
"name": "Interconnector GreeceBulgaria (IGB)",
"operator": "ICGB",
"commodityType": "gas",
"fromCountry": "GR",
"toCountry": "BG",
"transitCountries": [],
"capacityBcmYr": 3,
"lengthKm": 182,
"inService": 2022,
"startPoint": { "lat": 40.93, "lon": 25.14 },
"endPoint": { "lat": 42.15, "lon": 24.75 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.9
}
},
"arab-gas-pipeline": {
"id": "arab-gas-pipeline",
"name": "Arab Gas Pipeline",
"operator": "Arab Gas Pipeline Consortium",
"commodityType": "gas",
"fromCountry": "EG",
"toCountry": "LB",
"transitCountries": ["JO", "SY"],
"capacityBcmYr": 10.3,
"lengthKm": 1200,
"inService": 2003,
"startPoint": { "lat": 31.33, "lon": 32.28 },
"endPoint": { "lat": 34.27, "lon": 35.67 },
"evidence": {
"physicalState": "offline",
"physicalStateSource": "press",
"operatorStatement": null,
"commercialState": "suspended",
"sanctionRefs": [
{ "authority": "US", "listId": "Caesar Act (Syria)", "date": "2020-06-17", "url": "https://www.congress.gov/bill/116th-congress/house-bill/31" }
],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.85
}
},
"blue-stream": {
"id": "blue-stream",
"name": "Blue Stream",
"operator": "Gazprom / Eni (Blue Stream Pipeline Company)",
"commodityType": "gas",
"fromCountry": "RU",
"toCountry": "TR",
"transitCountries": [],
"capacityBcmYr": 16,
"lengthKm": 1213,
"inService": 2003,
"startPoint": { "lat": 44.72, "lon": 37.75 },
"endPoint": { "lat": 41.05, "lon": 34.58 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [
{ "authority": "EU", "listId": "2022/1269 (energy sanctions package 8)", "date": "2022-10-06", "url": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32022R1269" }
],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.9
}
},
"west-east-3": {
"id": "west-east-3",
"name": "WestEast Gas Pipeline 3 (China)",
"operator": "PetroChina",
"commodityType": "gas",
"fromCountry": "CN",
"toCountry": "CN",
"transitCountries": [],
"capacityBcmYr": 30,
"lengthKm": 7378,
"inService": 2014,
"startPoint": { "lat": 42.95, "lon": 80.35 },
"endPoint": { "lat": 26.08, "lon": 119.30 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.88
}
},
"myanmar-china-gas": {
"id": "myanmar-china-gas",
"name": "MyanmarChina Gas Pipeline (Shwe)",
"operator": "South East Asia Gas Pipeline Company (CNPC-led)",
"commodityType": "gas",
"fromCountry": "MM",
"toCountry": "CN",
"transitCountries": [],
"capacityBcmYr": 12,
"lengthKm": 793,
"inService": 2013,
"startPoint": { "lat": 20.15, "lon": 93.53 },
"endPoint": { "lat": 24.45, "lon": 98.58 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.85
}
},
"wagp": {
"id": "wagp",
"name": "West African Gas Pipeline (WAGP)",
"operator": "WAPCo (Chevron-led consortium)",
"commodityType": "gas",
"fromCountry": "NG",
"toCountry": "GH",
"transitCountries": ["BJ", "TG"],
"capacityBcmYr": 5,
"lengthKm": 678,
"inService": 2010,
"startPoint": { "lat": 6.35, "lon": 3.38 },
"endPoint": { "lat": 5.10, "lon": -1.27 },
"evidence": {
"physicalState": "reduced",
"physicalStateSource": "press",
"operatorStatement": "Chronic feedgas shortages from Nigerian domestic demand + recurring vandalism of Escravos-Lagos feeder have kept WAGP throughput intermittent since 2012 per GhanaWeb / Reuters coverage and operator WAPCo status notices.",
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.78
}
},
"gasbol": {
"id": "gasbol",
"name": "BoliviaBrazil Gas Pipeline (GASBOL)",
"operator": "TBG / GTB",
"commodityType": "gas",
"fromCountry": "BO",
"toCountry": "BR",
"transitCountries": [],
"capacityBcmYr": 11,
"lengthKm": 3150,
"inService": 1999,
"startPoint": { "lat": -18.85, "lon": -57.85 },
"endPoint": { "lat": -29.95, "lon": -51.13 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.9
}
},
"vesterled": {
"id": "vesterled",
"name": "Vesterled",
"operator": "Gassco",
"commodityType": "gas",
"fromCountry": "NO",
"toCountry": "GB",
"transitCountries": [],
"capacityBcmYr": 13,
"lengthKm": 363,
"inService": 2001,
"startPoint": { "lat": 59.90, "lon": 1.85 },
"endPoint": { "lat": 57.60, "lon": -1.80 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.92
}
},
"cats": {
"id": "cats",
"name": "Central Area Transmission System (CATS)",
"operator": "Kellas Midstream",
"commodityType": "gas",
"fromCountry": "GB",
"toCountry": "GB",
"transitCountries": [],
"capacityBcmYr": 9.6,
"lengthKm": 404,
"inService": 1993,
"startPoint": { "lat": 57.83, "lon": 0.90 },
"endPoint": { "lat": 54.63, "lon": -1.17 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.9
}
},
"iran-turkey-gas": {
"id": "iran-turkey-gas",
"name": "IranTurkey Gas Pipeline (TabrizAnkara)",
"operator": "NIGC / BOTAŞ",
"commodityType": "gas",
"fromCountry": "IR",
"toCountry": "TR",
"transitCountries": [],
"capacityBcmYr": 14,
"lengthKm": 2577,
"inService": 2001,
"startPoint": { "lat": 38.08, "lon": 46.30 },
"endPoint": { "lat": 39.92, "lon": 32.85 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [
{ "authority": "US", "listId": "OFAC Iran energy sanctions framework", "date": "2018-08-07", "url": "https://home.treasury.gov/policy-issues/financial-sanctions/sanctions-programs-and-country-information/iran-sanctions" }
],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.85
}
},
"iran-armenia-gas": {
"id": "iran-armenia-gas",
"name": "IranArmenia Gas Pipeline",
"operator": "Gazprom Armenia",
"commodityType": "gas",
"fromCountry": "IR",
"toCountry": "AM",
"transitCountries": [],
"capacityBcmYr": 2.3,
"lengthKm": 140,
"inService": 2007,
"startPoint": { "lat": 38.92, "lon": 46.08 },
"endPoint": { "lat": 39.33, "lon": 45.35 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [
{ "authority": "US", "listId": "OFAC Iran energy sanctions framework", "date": "2018-08-07", "url": "https://home.treasury.gov/policy-issues/financial-sanctions/sanctions-programs-and-country-information/iran-sanctions" }
],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.82
}
},
"iran-iraq-basra-gas": {
"id": "iran-iraq-basra-gas",
"name": "IranIraq Gas Pipeline (Basra line)",
"operator": "NIGC / Iraq Ministry of Electricity",
"commodityType": "gas",
"fromCountry": "IR",
"toCountry": "IQ",
"transitCountries": [],
"capacityBcmYr": 9,
"lengthKm": 270,
"inService": 2017,
"startPoint": { "lat": 31.35, "lon": 48.67 },
"endPoint": { "lat": 30.50, "lon": 47.80 },
"evidence": {
"physicalState": "reduced",
"physicalStateSource": "press",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [
{ "authority": "US", "listId": "OFAC Iran energy sanctions framework (US waivers intermittent)", "date": "2018-08-07", "url": "https://home.treasury.gov/policy-issues/financial-sanctions/sanctions-programs-and-country-information/iran-sanctions" }
],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.78
}
},
"central-asia-center": {
"id": "central-asia-center",
"name": "Central AsiaCenter (CAC)",
"operator": "Gazprom / TürkmenGaz",
"commodityType": "gas",
"fromCountry": "TM",
"toCountry": "RU",
"transitCountries": ["UZ", "KZ"],
"capacityBcmYr": 44,
"lengthKm": 5000,
"inService": 1967,
"startPoint": { "lat": 40.80, "lon": 54.02 },
"endPoint": { "lat": 51.53, "lon": 45.72 },
"evidence": {
"physicalState": "reduced",
"physicalStateSource": "press",
"operatorStatement": "Gazprom terminated Turkmen imports in 2016 over price dispute; limited 2019+ reactivation at well below nameplate per Reuters and TASS coverage.",
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.75
}
},
"south-caucasus-scp": {
"id": "south-caucasus-scp",
"name": "South Caucasus Pipeline (SCP / BakuTbilisiErzurum)",
"operator": "BP (South Caucasus Pipeline Company)",
"commodityType": "gas",
"fromCountry": "AZ",
"toCountry": "TR",
"transitCountries": ["GE"],
"capacityBcmYr": 22,
"lengthKm": 692,
"inService": 2006,
"startPoint": { "lat": 40.37, "lon": 50.25 },
"endPoint": { "lat": 39.90, "lon": 41.27 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.92
}
},
"west-east-1": {
"id": "west-east-1",
"name": "WestEast Gas Pipeline 1 (China)",
"operator": "PetroChina",
"commodityType": "gas",
"fromCountry": "CN",
"toCountry": "CN",
"transitCountries": [],
"capacityBcmYr": 17,
"lengthKm": 4200,
"inService": 2004,
"startPoint": { "lat": 39.47, "lon": 84.98 },
"endPoint": { "lat": 31.23, "lon": 121.47 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.88
}
},
"west-east-2": {
"id": "west-east-2",
"name": "WestEast Gas Pipeline 2 (China)",
"operator": "PetroChina",
"commodityType": "gas",
"fromCountry": "CN",
"toCountry": "CN",
"transitCountries": [],
"capacityBcmYr": 30,
"lengthKm": 8700,
"inService": 2011,
"startPoint": { "lat": 45.13, "lon": 82.57 },
"endPoint": { "lat": 22.95, "lon": 113.40 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.88
}
},
"bolivia-argentina-yacuiba": {
"id": "bolivia-argentina-yacuiba",
"name": "BoliviaArgentina Gas Pipeline (GIJA / Yacuiba)",
"operator": "YPFB / Energía Argentina",
"commodityType": "gas",
"fromCountry": "BO",
"toCountry": "AR",
"transitCountries": [],
"capacityBcmYr": 7.7,
"lengthKm": 441,
"inService": 1972,
"startPoint": { "lat": -22.02, "lon": -63.67 },
"endPoint": { "lat": -24.15, "lon": -65.30 },
"evidence": {
"physicalState": "reduced",
"physicalStateSource": "press",
"operatorStatement": "Bolivian upstream output declining since 2018; YPFB-CIESA exports fell from 22 MMcm/d to <14 MMcm/d by 2023 per IEA Gas Market Report + BNamericas coverage.",
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.78
}
},
"antonio-ricaurte": {
"id": "antonio-ricaurte",
"name": "Antonio Ricaurte Pipeline (ColombiaVenezuela)",
"operator": "TGI / PDVSA",
"commodityType": "gas",
"fromCountry": "CO",
"toCountry": "VE",
"transitCountries": [],
"capacityBcmYr": 5,
"lengthKm": 224,
"inService": 2007,
"startPoint": { "lat": 11.38, "lon": -72.47 },
"endPoint": { "lat": 10.67, "lon": -71.67 },
"evidence": {
"physicalState": "offline",
"physicalStateSource": "press",
"operatorStatement": {
"text": "Exports halted 2015; both sides have floated restarts but no flows recorded in recent GIE / industry data.",
"url": "https://www.tgi.com.co/",
"date": "2015-08-01"
},
"commercialState": "suspended",
"sanctionRefs": [
{ "authority": "US", "listId": "OFAC Venezuela/PDVSA sanctions", "date": "2019-01-28", "url": "https://home.treasury.gov/policy-issues/financial-sanctions/sanctions-programs-and-country-information/venezuela-related-sanctions" }
],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.85
}
},
"saudi-master-gas-system": {
"id": "saudi-master-gas-system",
"name": "Saudi Master Gas System",
"operator": "Saudi Aramco",
"commodityType": "gas",
"fromCountry": "SA",
"toCountry": "SA",
"transitCountries": [],
"capacityBcmYr": 95,
"lengthKm": 2400,
"inService": 1982,
"startPoint": { "lat": 26.10, "lon": 49.87 },
"endPoint": { "lat": 22.20, "lon": 39.13 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.9
}
},
"galsi-planned": {
"id": "galsi-planned",
"name": "GALSI (AlgeriaSardiniaItaly, planned)",
"operator": "Enagás / Edison / Sonatrach (consortium paused)",
"commodityType": "gas",
"fromCountry": "DZ",
"toCountry": "IT",
"transitCountries": [],
"capacityBcmYr": 8,
"lengthKm": 1470,
"inService": 0,
"startPoint": { "lat": 37.12, "lon": 8.83 },
"endPoint": { "lat": 40.55, "lon": 9.73 },
"evidence": {
"physicalState": "unknown",
"physicalStateSource": "press",
"operatorStatement": {
"text": "Proposed AlgeriaSardiniaItaly gas pipeline; construction not commenced. Project paused but periodically revived in policy commentary around EU gas diversification.",
"url": "https://www.edison.it/",
"date": "2023-01-01"
},
"commercialState": "unknown",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.72
}
},
"eastmed-planned": {
"id": "eastmed-planned",
"name": "EastMed Pipeline (IsraelCyprusGreece, planned)",
"operator": "IGI Poseidon (DEPA / Edison)",
"commodityType": "gas",
"fromCountry": "IL",
"toCountry": "GR",
"transitCountries": ["CY"],
"capacityBcmYr": 10,
"lengthKm": 1900,
"inService": 0,
"startPoint": { "lat": 32.40, "lon": 34.13 },
"endPoint": { "lat": 38.93, "lon": 21.76 },
"evidence": {
"physicalState": "unknown",
"physicalStateSource": "press",
"operatorStatement": {
"text": "Proposed East Mediterranean gas pipeline. US withdrew prior political support Jan 2022; EU funding for GreeceCyprus segment ongoing as an electrical interconnector pivot. Gas pipeline construction not commenced.",
"url": "https://www.igi-poseidon.com/",
"date": "2022-01-10"
},
"commercialState": "unknown",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.75
}
},
"trans-saharan-planned": {
"id": "trans-saharan-planned",
"name": "Trans-Saharan Gas Pipeline (NigeriaAlgeria, planned)",
"operator": "NNPC / Sonatrach / Sonidep (MoU consortium)",
"commodityType": "gas",
"fromCountry": "NG",
"toCountry": "DZ",
"transitCountries": ["NE"],
"capacityBcmYr": 30,
"lengthKm": 4128,
"inService": 0,
"startPoint": { "lat": 9.07, "lon": 7.48 },
"endPoint": { "lat": 36.75, "lon": 3.05 },
"evidence": {
"physicalState": "unknown",
"physicalStateSource": "press",
"operatorStatement": {
"text": "MoU signed 2022, revived after MEG closure. Route crosses high-insurgency areas; security and financing unresolved. Construction not commenced on main trunk.",
"url": "https://nnpcgroup.com/",
"date": "2022-07-28"
},
"commercialState": "unknown",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.65
}
},
"israel-egypt-arish-ashkelon": {
"id": "israel-egypt-arish-ashkelon",
"name": "ArishAshkelon Pipeline (reverse flow IL→EG)",
"operator": "EMG / East Gas Company",
"commodityType": "gas",
"fromCountry": "IL",
"toCountry": "EG",
"transitCountries": [],
"capacityBcmYr": 7,
"lengthKm": 90,
"inService": 2020,
"startPoint": { "lat": 31.67, "lon": 34.58 },
"endPoint": { "lat": 31.13, "lon": 33.80 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.85
}
},
"turkmenistan-iran-korpeje": {
"id": "turkmenistan-iran-korpeje",
"name": "KorpejeKurt Kui (TurkmenistanIran)",
"operator": "TürkmenGaz / NIGC",
"commodityType": "gas",
"fromCountry": "TM",
"toCountry": "IR",
"transitCountries": [],
"capacityBcmYr": 8,
"lengthKm": 200,
"inService": 1997,
"startPoint": { "lat": 39.42, "lon": 54.83 },
"endPoint": { "lat": 37.47, "lon": 54.67 },
"evidence": {
"physicalState": "reduced",
"physicalStateSource": "press",
"operatorStatement": "Flows suspended Jan 2017 over NIGC/Turkmenistan payment dispute; intermittent partial restart reported by NIGC press office + Reuters.",
"commercialState": "expired",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.75
}
},
"morocco-nigeria-offshore-planned": {
"id": "morocco-nigeria-offshore-planned",
"name": "NigeriaMorocco Offshore Gas Pipeline (planned)",
"operator": "NNPC / ONHYM",
"commodityType": "gas",
"fromCountry": "NG",
"toCountry": "MA",
"transitCountries": ["BJ", "TG", "GH", "CI", "LR", "SL", "GN", "GW", "SN", "MR"],
"capacityBcmYr": 30,
"lengthKm": 6800,
"inService": 0,
"startPoint": { "lat": 6.35, "lon": 3.38 },
"endPoint": { "lat": 35.75, "lon": -5.80 },
"evidence": {
"physicalState": "unknown",
"physicalStateSource": "press",
"operatorStatement": {
"text": "FID not reached; FEED phase complete 2024. Seen as competing vision to the Trans-Saharan overland route. Construction not commenced.",
"url": "https://nnpcgroup.com/",
"date": "2024-09-01"
},
"commercialState": "unknown",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.6
}
},
"power-of-siberia-2-planned": {
"id": "power-of-siberia-2-planned",
"name": "Power of Siberia 2 (planned)",
"operator": "Gazprom / CNPC",
"commodityType": "gas",
"fromCountry": "RU",
"toCountry": "CN",
"transitCountries": ["MN"],
"capacityBcmYr": 50,
"lengthKm": 6700,
"inService": 0,
"startPoint": { "lat": 67.50, "lon": 80.57 },
"endPoint": { "lat": 43.82, "lon": 125.32 },
"evidence": {
"physicalState": "unknown",
"physicalStateSource": "press",
"operatorStatement": {
"text": "Mongolia route announced; CNPC has not signed binding capacity contract as of reference date. Project remains a talking point between Gazprom and CNPC without construction on the China-segment trunk.",
"url": "https://www.gazprom.com/",
"date": "2024-05-01"
},
"commercialState": "unknown",
"sanctionRefs": [
{ "authority": "EU", "listId": "2022/1269 (energy sanctions package 8)", "date": "2022-10-06", "url": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32022R1269" }
],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.7
}
},
"egypt-jordan-aqaba": {
"id": "egypt-jordan-aqaba",
"name": "EgyptJordanAqaba Gas Pipeline (AGP south leg)",
"operator": "EGAS / NEPCO",
"commodityType": "gas",
"fromCountry": "EG",
"toCountry": "JO",
"transitCountries": [],
"capacityBcmYr": 3.5,
"lengthKm": 390,
"inService": 2003,
"startPoint": { "lat": 29.93, "lon": 32.57 },
"endPoint": { "lat": 29.52, "lon": 35.00 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.82
}
},
"sakarya-black-sea-tr": {
"id": "sakarya-black-sea-tr",
"name": "Sakarya Gas Field Pipeline (Turkish Black Sea)",
"operator": "TPAO",
"commodityType": "gas",
"fromCountry": "TR",
"toCountry": "TR",
"transitCountries": [],
"capacityBcmYr": 14,
"lengthKm": 170,
"inService": 2023,
"startPoint": { "lat": 42.38, "lon": 31.85 },
"endPoint": { "lat": 41.27, "lon": 31.40 },
"evidence": {
"physicalState": "flowing",
"physicalStateSource": "operator",
"operatorStatement": null,
"commercialState": "under_contract",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.85
}
},
"kirkuk-dohuk-turkey-gas-planned": {
"id": "kirkuk-dohuk-turkey-gas-planned",
"name": "KirkukDohukTurkey Gas Pipeline (planned)",
"operator": "KRG / BOTAŞ (commercial framework TBD)",
"commodityType": "gas",
"fromCountry": "IQ",
"toCountry": "TR",
"transitCountries": [],
"capacityBcmYr": 10,
"lengthKm": 430,
"inService": 0,
"startPoint": { "lat": 35.47, "lon": 44.40 },
"endPoint": { "lat": 37.07, "lon": 37.33 },
"evidence": {
"physicalState": "unknown",
"physicalStateSource": "press",
"operatorStatement": {
"text": "Proposed northern Iraq gas corridor into Turkey; subject to BaghdadErbil revenue dispute and Turkey's existing IGAT/SCP capacity. Construction not commenced.",
"url": "https://www.botas.gov.tr/",
"date": "2024-02-01"
},
"commercialState": "unknown",
"sanctionRefs": [],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z",
"classifierVersion": "v1",
"classifierConfidence": 0.62
}
},
"statpipe": {
"id": "statpipe", "name": "Statpipe", "operator": "Gassco", "commodityType": "gas",
"fromCountry": "NO", "toCountry": "NO", "transitCountries": [],
"capacityBcmYr": 25, "lengthKm": 880, "inService": 1985,
"startPoint": { "lat": 61.25, "lon": 1.85 }, "endPoint": { "lat": 59.28, "lon": 5.42 },
"evidence": { "physicalState": "flowing", "physicalStateSource": "operator", "operatorStatement": null, "commercialState": "under_contract", "sanctionRefs": [], "lastEvidenceUpdate": "2026-04-22T00:00:00Z", "classifierVersion": "v1", "classifierConfidence": 0.9 }
},
"sleipner-karsto": {
"id": "sleipner-karsto", "name": "SleipnerKårstø", "operator": "Gassco", "commodityType": "gas",
"fromCountry": "NO", "toCountry": "NO", "transitCountries": [],
"capacityBcmYr": 12, "lengthKm": 245, "inService": 1993,
"startPoint": { "lat": 58.37, "lon": 1.90 }, "endPoint": { "lat": 59.28, "lon": 5.42 },
"evidence": { "physicalState": "flowing", "physicalStateSource": "operator", "operatorStatement": null, "commercialState": "under_contract", "sanctionRefs": [], "lastEvidenceUpdate": "2026-04-22T00:00:00Z", "classifierVersion": "v1", "classifierConfidence": 0.88 }
},
"troll-a-gas-pipeline": {
"id": "troll-a-gas-pipeline", "name": "Troll A Kollsnes", "operator": "Gassco", "commodityType": "gas",
"fromCountry": "NO", "toCountry": "NO", "transitCountries": [],
"capacityBcmYr": 30, "lengthKm": 67, "inService": 1996,
"startPoint": { "lat": 60.65, "lon": 3.72 }, "endPoint": { "lat": 60.55, "lon": 4.85 },
"evidence": { "physicalState": "flowing", "physicalStateSource": "operator", "operatorStatement": null, "commercialState": "under_contract", "sanctionRefs": [], "lastEvidenceUpdate": "2026-04-22T00:00:00Z", "classifierVersion": "v1", "classifierConfidence": 0.92 }
},
"oseberg-gas-transport": {
"id": "oseberg-gas-transport", "name": "Oseberg Gas Transport (OGT)", "operator": "Gassco", "commodityType": "gas",
"fromCountry": "NO", "toCountry": "NO", "transitCountries": [],
"capacityBcmYr": 9, "lengthKm": 109, "inService": 2000,
"startPoint": { "lat": 60.48, "lon": 2.82 }, "endPoint": { "lat": 60.55, "lon": 4.85 },
"evidence": { "physicalState": "flowing", "physicalStateSource": "operator", "operatorStatement": null, "commercialState": "under_contract", "sanctionRefs": [], "lastEvidenceUpdate": "2026-04-22T00:00:00Z", "classifierVersion": "v1", "classifierConfidence": 0.88 }
},
"asgard-transport": {
"id": "asgard-transport", "name": "Åsgard Transport", "operator": "Gassco", "commodityType": "gas",
"fromCountry": "NO", "toCountry": "NO", "transitCountries": [],
"capacityBcmYr": 14, "lengthKm": 707, "inService": 2000,
"startPoint": { "lat": 65.05, "lon": 6.78 }, "endPoint": { "lat": 59.28, "lon": 5.42 },
"evidence": { "physicalState": "flowing", "physicalStateSource": "operator", "operatorStatement": null, "commercialState": "under_contract", "sanctionRefs": [], "lastEvidenceUpdate": "2026-04-22T00:00:00Z", "classifierVersion": "v1", "classifierConfidence": 0.88 }
},
"dampier-bunbury": {
"id": "dampier-bunbury", "name": "Dampier to Bunbury Natural Gas Pipeline", "operator": "DBNGP WA", "commodityType": "gas",
"fromCountry": "AU", "toCountry": "AU", "transitCountries": [],
"capacityBcmYr": 8.6, "lengthKm": 1594, "inService": 1984,
"startPoint": { "lat": -20.68, "lon": 116.72 }, "endPoint": { "lat": -33.33, "lon": 115.63 },
"evidence": { "physicalState": "flowing", "physicalStateSource": "operator", "operatorStatement": null, "commercialState": "under_contract", "sanctionRefs": [], "lastEvidenceUpdate": "2026-04-22T00:00:00Z", "classifierVersion": "v1", "classifierConfidence": 0.9 }
},
"moomba-sydney": {
"id": "moomba-sydney", "name": "MoombaSydney Pipeline", "operator": "APA Group", "commodityType": "gas",
"fromCountry": "AU", "toCountry": "AU", "transitCountries": [],
"capacityBcmYr": 5.5, "lengthKm": 1299, "inService": 1976,
"startPoint": { "lat": -28.12, "lon": 140.20 }, "endPoint": { "lat": -33.87, "lon": 151.20 },
"evidence": { "physicalState": "flowing", "physicalStateSource": "operator", "operatorStatement": null, "commercialState": "under_contract", "sanctionRefs": [], "lastEvidenceUpdate": "2026-04-22T00:00:00Z", "classifierVersion": "v1", "classifierConfidence": 0.88 }
},
"mozambique-rompco": {
"id": "mozambique-rompco", "name": "ROMPCO (MozambiqueSouth Africa)", "operator": "Sasol / CEF / Companhia Moçambicana de Gasoduto", "commodityType": "gas",
"fromCountry": "MZ", "toCountry": "ZA", "transitCountries": [],
"capacityBcmYr": 5.5, "lengthKm": 865, "inService": 2004,
"startPoint": { "lat": -22.93, "lon": 31.33 }, "endPoint": { "lat": -26.20, "lon": 28.02 },
"evidence": { "physicalState": "flowing", "physicalStateSource": "operator", "operatorStatement": null, "commercialState": "under_contract", "sanctionRefs": [], "lastEvidenceUpdate": "2026-04-22T00:00:00Z", "classifierVersion": "v1", "classifierConfidence": 0.85 }
},
"escravos-lagos-gas": {
"id": "escravos-lagos-gas", "name": "EscravosLagos Pipeline System", "operator": "NNPC / Chevron Nigeria", "commodityType": "gas",
"fromCountry": "NG", "toCountry": "NG", "transitCountries": [],
"capacityBcmYr": 9, "lengthKm": 342, "inService": 1989,
"startPoint": { "lat": 5.62, "lon": 5.20 }, "endPoint": { "lat": 6.46, "lon": 3.37 },
"evidence": { "physicalState": "reduced", "physicalStateSource": "press", "operatorStatement": "Regular pipeline vandalism and NNPC/Chevron force-majeure declarations (2020-2024) per NNPC press releases + Reuters Lagos coverage.", "commercialState": "under_contract", "sanctionRefs": [], "lastEvidenceUpdate": "2026-04-22T00:00:00Z", "classifierVersion": "v1", "classifierConfidence": 0.75 }
},
"tanzania-mtwara-dar": {
"id": "tanzania-mtwara-dar", "name": "MtwaraDar es Salaam Gas Pipeline", "operator": "TPDC / CPI-CPP consortium", "commodityType": "gas",
"fromCountry": "TZ", "toCountry": "TZ", "transitCountries": [],
"capacityBcmYr": 2, "lengthKm": 542, "inService": 2015,
"startPoint": { "lat": -10.27, "lon": 40.18 }, "endPoint": { "lat": -6.80, "lon": 39.28 },
"evidence": { "physicalState": "flowing", "physicalStateSource": "operator", "operatorStatement": null, "commercialState": "under_contract", "sanctionRefs": [], "lastEvidenceUpdate": "2026-04-22T00:00:00Z", "classifierVersion": "v1", "classifierConfidence": 0.78 }
},
"thailand-malaysia-cakerawala": {
"id": "thailand-malaysia-cakerawala", "name": "CakerawalaPengerang (ThaiMalaysia JDA)", "operator": "Carigali-PTTEPI Operating Company", "commodityType": "gas",
"fromCountry": "TH", "toCountry": "MY", "transitCountries": [],
"capacityBcmYr": 14, "lengthKm": 270, "inService": 2005,
"startPoint": { "lat": 6.78, "lon": 102.75 }, "endPoint": { "lat": 6.43, "lon": 99.67 },
"evidence": { "physicalState": "flowing", "physicalStateSource": "operator", "operatorStatement": null, "commercialState": "under_contract", "sanctionRefs": [], "lastEvidenceUpdate": "2026-04-22T00:00:00Z", "classifierVersion": "v1", "classifierConfidence": 0.82 }
},
"indonesia-singapore-west-natuna": {
"id": "indonesia-singapore-west-natuna", "name": "West NatunaSingapore Gas Pipeline", "operator": "ConocoPhillips / SembGas", "commodityType": "gas",
"fromCountry": "ID", "toCountry": "SG", "transitCountries": [],
"capacityBcmYr": 3.7, "lengthKm": 656, "inService": 2001,
"startPoint": { "lat": 3.67, "lon": 108.32 }, "endPoint": { "lat": 1.31, "lon": 103.65 },
"evidence": { "physicalState": "flowing", "physicalStateSource": "operator", "operatorStatement": null, "commercialState": "under_contract", "sanctionRefs": [], "lastEvidenceUpdate": "2026-04-22T00:00:00Z", "classifierVersion": "v1", "classifierConfidence": 0.82 }
},
"indonesia-singapore-grissik-sakra": {
"id": "indonesia-singapore-grissik-sakra", "name": "GrissikSakra Gas Pipeline", "operator": "ConocoPhillips / SembGas", "commodityType": "gas",
"fromCountry": "ID", "toCountry": "SG", "transitCountries": [],
"capacityBcmYr": 3.5, "lengthKm": 470, "inService": 2003,
"startPoint": { "lat": -2.08, "lon": 103.77 }, "endPoint": { "lat": 1.31, "lon": 103.65 },
"evidence": { "physicalState": "flowing", "physicalStateSource": "operator", "operatorStatement": null, "commercialState": "under_contract", "sanctionRefs": [], "lastEvidenceUpdate": "2026-04-22T00:00:00Z", "classifierVersion": "v1", "classifierConfidence": 0.82 }
},
"nel-pipeline-germany": {
"id": "nel-pipeline-germany", "name": "NEL Pipeline (Nord Stream continuation)", "operator": "Gasunie Deutschland / Fluxys / WIGA", "commodityType": "gas",
"fromCountry": "DE", "toCountry": "DE", "transitCountries": [],
"capacityBcmYr": 20, "lengthKm": 440, "inService": 2013,
"startPoint": { "lat": 54.14, "lon": 13.66 }, "endPoint": { "lat": 52.52, "lon": 7.77 },
"evidence": { "physicalState": "reduced", "physicalStateSource": "press", "operatorStatement": "Direct Nord Stream 1 continuation; flows reduced to zero post-Sep-2022 sabotage per Gasunie Deutschland operator notice + BBC coverage.", "commercialState": "under_contract", "sanctionRefs": [], "lastEvidenceUpdate": "2026-04-22T00:00:00Z", "classifierVersion": "v1", "classifierConfidence": 0.8 }
},
"opal-pipeline-germany": {
"id": "opal-pipeline-germany", "name": "OPAL Pipeline (Nord Stream continuation)", "operator": "OPAL Gastransport (WIGA joint venture)", "commodityType": "gas",
"fromCountry": "DE", "toCountry": "CZ", "transitCountries": [],
"capacityBcmYr": 36, "lengthKm": 470, "inService": 2011,
"startPoint": { "lat": 54.14, "lon": 13.66 }, "endPoint": { "lat": 50.73, "lon": 14.03 },
"evidence": { "physicalState": "reduced", "physicalStateSource": "press", "operatorStatement": "Direct Nord Stream 1 continuation; flows reduced to zero post-Sep-2022 sabotage per OPAL operator notice + BBC coverage.", "commercialState": "under_contract", "sanctionRefs": [], "lastEvidenceUpdate": "2026-04-22T00:00:00Z", "classifierVersion": "v1", "classifierConfidence": 0.8 }
},
"eugal-pipeline-germany": {
"id": "eugal-pipeline-germany", "name": "EUGAL Pipeline (Nord Stream 2 continuation)", "operator": "EUGAL Gastransport consortium", "commodityType": "gas",
"fromCountry": "DE", "toCountry": "CZ", "transitCountries": [],
"capacityBcmYr": 55, "lengthKm": 485, "inService": 2020,
"startPoint": { "lat": 54.14, "lon": 13.66 }, "endPoint": { "lat": 50.73, "lon": 14.03 },
"evidence": {
"physicalState": "offline", "physicalStateSource": "press",
"operatorStatement": {
"text": "Built to carry Nord Stream 2 volumes into Central/Southern Europe; never reached commercial operation after NS2 certification was halted (Feb 2022) and NS2 was damaged (Sep 2022). Pipeline physically complete but dormant.",
"url": "https://www.eugal.de/en/",
"date": "2022-02-22"
},
"commercialState": "suspended",
"sanctionRefs": [
{ "authority": "EU", "listId": "2022/1269 (energy sanctions package 8)", "date": "2022-10-06", "url": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32022R1269" }
],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z", "classifierVersion": "v1", "classifierConfidence": 0.88
}
},
"megal-pipeline": {
"id": "megal-pipeline", "name": "Mid-European Gas Pipeline (MEGAL)", "operator": "GRTgaz Deutschland / OGE", "commodityType": "gas",
"fromCountry": "DE", "toCountry": "FR", "transitCountries": [],
"capacityBcmYr": 37, "lengthKm": 1101, "inService": 1980,
"startPoint": { "lat": 48.93, "lon": 12.35 }, "endPoint": { "lat": 48.28, "lon": 6.97 },
"evidence": { "physicalState": "flowing", "physicalStateSource": "operator", "operatorStatement": null, "commercialState": "under_contract", "sanctionRefs": [], "lastEvidenceUpdate": "2026-04-22T00:00:00Z", "classifierVersion": "v1", "classifierConfidence": 0.88 }
},
"trans-austria-gas": {
"id": "trans-austria-gas", "name": "Trans Austria Gas Pipeline (TAG)", "operator": "Trans Austria Gasleitung GmbH", "commodityType": "gas",
"fromCountry": "AT", "toCountry": "IT", "transitCountries": [],
"capacityBcmYr": 45, "lengthKm": 380, "inService": 1974,
"startPoint": { "lat": 48.35, "lon": 16.87 }, "endPoint": { "lat": 45.90, "lon": 13.20 },
"evidence": { "physicalState": "reduced", "physicalStateSource": "press", "operatorStatement": null, "commercialState": "under_contract", "sanctionRefs": [
{ "authority": "EU", "listId": "2022/1269 (energy sanctions package 8)", "date": "2022-10-06", "url": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32022R1269" }
], "lastEvidenceUpdate": "2026-04-22T00:00:00Z", "classifierVersion": "v1", "classifierConfidence": 0.82 }
},
"progress-urengoy-uzhhorod": {
"id": "progress-urengoy-uzhhorod", "name": "UrengoyPomaryUzhhorod (Progress)", "operator": "Gazprom / Naftogaz", "commodityType": "gas",
"fromCountry": "RU", "toCountry": "SK", "transitCountries": ["UA"],
"capacityBcmYr": 32, "lengthKm": 4451, "inService": 1984,
"startPoint": { "lat": 65.97, "lon": 76.55 }, "endPoint": { "lat": 48.62, "lon": 22.30 },
"evidence": { "physicalState": "offline", "physicalStateSource": "regulator", "operatorStatement": {
"text": "Ukraine did not renew the 2019 transit agreement; transit via Sudzha halted 1 Jan 2025. Pipeline physically intact; flow zero.",
"url": "https://naftogaz.com/",
"date": "2025-01-01"
}, "commercialState": "expired", "sanctionRefs": [
{ "authority": "EU", "listId": "2022/1269 (energy sanctions package 8)", "date": "2022-10-06", "url": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32022R1269" }
], "lastEvidenceUpdate": "2026-04-22T00:00:00Z", "classifierVersion": "v1", "classifierConfidence": 0.92 }
},
"kish-iran-gas": {
"id": "kish-iran-gas", "name": "Kish IslandIran Mainland Gas Pipeline", "operator": "NIGC", "commodityType": "gas",
"fromCountry": "IR", "toCountry": "IR", "transitCountries": [],
"capacityBcmYr": 2.5, "lengthKm": 42, "inService": 2010,
"startPoint": { "lat": 26.53, "lon": 53.95 }, "endPoint": { "lat": 27.20, "lon": 53.57 },
"evidence": { "physicalState": "flowing", "physicalStateSource": "operator", "operatorStatement": null, "commercialState": "under_contract", "sanctionRefs": [
{ "authority": "US", "listId": "OFAC Iran energy sanctions framework", "date": "2018-08-07", "url": "https://home.treasury.gov/policy-issues/financial-sanctions/sanctions-programs-and-country-information/iran-sanctions" }
], "lastEvidenceUpdate": "2026-04-22T00:00:00Z", "classifierVersion": "v1", "classifierConfidence": 0.75 }
},
"ghana-gas": {
"id": "ghana-gas", "name": "Ghana Gas Company Pipeline (Atuabo)", "operator": "Ghana National Gas Company", "commodityType": "gas",
"fromCountry": "GH", "toCountry": "GH", "transitCountries": [],
"capacityBcmYr": 1.5, "lengthKm": 111, "inService": 2015,
"startPoint": { "lat": 4.85, "lon": -2.33 }, "endPoint": { "lat": 4.90, "lon": -1.73 },
"evidence": { "physicalState": "flowing", "physicalStateSource": "operator", "operatorStatement": null, "commercialState": "under_contract", "sanctionRefs": [], "lastEvidenceUpdate": "2026-04-22T00:00:00Z", "classifierVersion": "v1", "classifierConfidence": 0.75 }
},
"iran-pakistan-gas-planned": {
"id": "iran-pakistan-gas-planned", "name": "IranPakistan Gas Pipeline (Peace, Pakistani segment stalled)", "operator": "NIGC / ISGS Pakistan", "commodityType": "gas",
"fromCountry": "IR", "toCountry": "PK", "transitCountries": [],
"capacityBcmYr": 11, "lengthKm": 1931, "inService": 0,
"startPoint": { "lat": 25.62, "lon": 60.90 }, "endPoint": { "lat": 25.00, "lon": 67.03 },
"evidence": {
"physicalState": "unknown", "physicalStateSource": "press",
"operatorStatement": {
"text": "Iranian segment completed to border 2013. Pakistani segment stalled since 2014 amid US sanction risk on completion; NIOC served arbitration notice 2023. Pipeline not operational end-to-end.",
"url": "https://isgs.gov.pk/",
"date": "2024-02-01"
},
"commercialState": "expired",
"sanctionRefs": [
{ "authority": "US", "listId": "OFAC Iran energy sanctions framework (applied to Pakistani completion)", "date": "2018-08-07", "url": "https://home.treasury.gov/policy-issues/financial-sanctions/sanctions-programs-and-country-information/iran-sanctions" }
],
"lastEvidenceUpdate": "2026-04-22T00:00:00Z", "classifierVersion": "v1", "classifierConfidence": 0.8
}
},
"gascade-jagal": {
"id": "gascade-jagal", "name": "JAGAL (North German gas link)", "operator": "GASCADE", "commodityType": "gas",
"fromCountry": "DE", "toCountry": "DE", "transitCountries": [],
"capacityBcmYr": 16, "lengthKm": 340, "inService": 1999,
"startPoint": { "lat": 53.87, "lon": 14.27 }, "endPoint": { "lat": 51.87, "lon": 10.57 },
"evidence": { "physicalState": "flowing", "physicalStateSource": "operator", "operatorStatement": null, "commercialState": "under_contract", "sanctionRefs": [], "lastEvidenceUpdate": "2026-04-22T00:00:00Z", "classifierVersion": "v1", "classifierConfidence": 0.8 }
},
"zeelink-germany": {
"id": "zeelink-germany", "name": "ZEELINK (H-gas conversion pipeline)", "operator": "OGE / Thyssengas", "commodityType": "gas",
"fromCountry": "BE", "toCountry": "DE", "transitCountries": [],
"capacityBcmYr": 10, "lengthKm": 216, "inService": 2021,
"startPoint": { "lat": 51.33, "lon": 3.20 }, "endPoint": { "lat": 50.33, "lon": 7.57 },
"evidence": { "physicalState": "flowing", "physicalStateSource": "operator", "operatorStatement": null, "commercialState": "under_contract", "sanctionRefs": [], "lastEvidenceUpdate": "2026-04-22T00:00:00Z", "classifierVersion": "v1", "classifierConfidence": 0.85 }
},
"china-hong-kong-gas": {
"id": "china-hong-kong-gas", "name": "MainlandHong Kong Gas Pipeline", "operator": "CNOOC Gas & Power / Towngas", "commodityType": "gas",
"fromCountry": "CN", "toCountry": "HK", "transitCountries": [],
"capacityBcmYr": 2.5, "lengthKm": 92, "inService": 2006,
"startPoint": { "lat": 22.68, "lon": 113.83 }, "endPoint": { "lat": 22.35, "lon": 114.18 },
"evidence": { "physicalState": "flowing", "physicalStateSource": "operator", "operatorStatement": null, "commercialState": "under_contract", "sanctionRefs": [], "lastEvidenceUpdate": "2026-04-22T00:00:00Z", "classifierVersion": "v1", "classifierConfidence": 0.8 }
}
}
}