Busabase
Busabase는 AI 에이전트를 위한 오픈소스(MIT) 데이터베이스 및 작업 공간입니다
퍼미안·이글 포드 가스를 CNG·LNG로 운송해 플레어 대신 얻는 수익을 공개 데이터(EIA 가격·위성 플레어·OSRM 경로)로 보여줍니다
What a producer nets by trucking stranded Permian and Eagle Ford gas as CNG or LNG instead of flaring it. Public data only: EIA prices, World Bank/NOAA satellite flare data, OSRM routes.
데이터Python · JavaScriptGitHub @KaavinB온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
Truck it or flare it? Netback model for trucking stranded Permian & Eagle Ford gas as CNG/LNG
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Should a producer with stranded gas truck it as CNG or LNG, or keep flaring it? This project answers that every trading day for 18 real, satellite-detected flares in the Permian and Eagle Ford. It uses only public data: EIA prices, World Bank/NOAA VIIRS flare detections, EIA basin boundaries and OSRM road routing. A Postgres star schema, idempotent ingestion with data-quality checks, a netback model written in readable SQL, a sensitivity analysis and a dashboard with assumption controls sit on top.
▶ Live dashboard: kaavinb.github.io/virtual-pipeline-netback: no install, works on a phone. Drag the sliders to ask "what if?"; every view is a shareable link.
The bottom-up cost model reproduces the World Bank's independent full-chain estimates within 3–9% (06).
A virtual pipeline (CNG/LNG in ISO containers on trucks) earns its keep where pipelines don't reach. The questions a commercial or BI team asks every day are the ones this model answers:
The pipeline-versus-fuel result is the strategic point: the value sits in delivered-fuel markets, not pipeline injection, and distance only matters at the margin.
flowchart LR
subgraph Sources["Public sources"]
EIA["EIA API v2<br/>Henry Hub daily · diesel weekly"]
WB["World Bank / NOAA VIIRS<br/>flare volumes by location"]
GIS["EIA basin boundaries"]
OSRM["OSRM routing"]
Y["assumptions.yaml<br/>38 sourced / labelled inputs"]
end
subgraph Ingest["Python ingestion (idempotent, logged, retried)"]
I1["eia.py"] --- I2["sites.py"] --- I3["routes.py"] --- I4["assumptions.py"]
end
subgraph PG["PostgreSQL 17"]
CORE[("core<br/>star schema")]
OPS[("ops<br/>ingest runs · DQ results")]
MART["mart (SQL views)<br/>v_netback_daily · v_site_latest<br/>scenarios · tornado · curves"]
end
EIA --> I1 --> CORE
WB --> I2
GIS --> I2 --> CORE
OSRM --> I3 --> CORE
Y --> I4 --> CORE
CORE --> MART
CORE --> DQ["dq.py: 14 checks"] --> OPS
MART --> MB["Metabase dashboard<br/>(live, with assumption controls)"]
MART --> CSV["CSV extracts → Tableau Public"]
Netback = delivered price − (treatment + compression or liquefaction) − trucking − (decompression or regas) − fees, all in $/MMBtu at the wellsite. Trucking is built bottom-up:
trucking $/MMBtu = fixed + 2 × (road miles + last mile) × (diesel $/gal ÷ mpg + non-fuel $/mile) ÷ MMBtu per load
MMBtu per load is computed: the smaller of what the container holds and what is legal at 80,000 lb. Delivered price is Henry Hub + basis for hubs, or diesel parity × (1 − discount) for a fuel customer. Diesel parity is taken on a lower-heating-value basis: engines burn on LHV, gas is sold on HHV, and skipping the correction overstates the gas value by 3.3%. The full walk-through is in 01 — value chain and netback.
All business logic is SQL (sql/migrations). Python only moves data in and
out. What-if analysis never copies the formulas: mart.site_latest_scenario('{"fuel_discount_to_diesel": 0.6}')
sets a transaction-local override that mart.v_assumption honours, and then the same views
recompute. The sensitivity tornado and the dashboard's controls both run through it.
Requirements: Docker, uv, make, and a free EIA API key.
cp .env.example .env # paste EIA_API_KEY, choose a Metabase admin password
make setup # Python 3.12 deps via uv
make all # Postgres → migrations → EIA → sites → assumptions → routes → DQ → sensitivity → CSV extracts (~90 s)
make dashboard # Metabase on http://localhost:3000, dashboard built from code
make test # 70 tests
make help lists every target. make reset && make all rebuilds from an empty database
deterministically: the same 18 sites, and identical numbers for the same
source data.
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗