← worldenergydata · open data outputs
Deterministic core No API key Public BSEE data

Shenandoah Field Economics

Per-well and field-level NPV from public BSEE data.

Provenance. Computed by a monthly cashflow model (build_field_npv_timeline) over public BSEE OGOR-A production and drilling records, life-to-date through the latest available OGOR-A month.

Data limits & honest caveats

The NPV shown is the model truth, presented as-is — not reframed as value-positive. Every Lower-Tertiary field here is NPV-negative at a 10% discount rate life-to-date. Operation markers (drilling/completion dates) are annotations only and do not feed the cashflow model.

#Shenandoah Field Economics Report

Development: Shenandoah (subsea20) · Lease: 2 leases (G25232, G31938) · First oil: 2025-02-01 · Discount rate: 10% annual

Data window: 2000-09 -> 2026-04

#Summary

On public BSEE production + cost data, Shenandoah is NPV-negative at 10% life-to-date: terminal cumulative NPV $-991.3 M.

Generated from public BSEE OGOR-A production and drilling/WAR records run through a monthly cashflow + trimmed-discount model (build_field_npv_timeline), covering field life through the latest available BSEE OGOR-A month. The NPV timeline below is an additive presentation layer over that model; it does not alter the computed final NPV.

#NPV Timeline

Cumulative discounted NPV evolution over field life, with critical well operations annotated. Terminal cumulative NPV = $-991.3 M.

Cumulative NPV path (by year): █▇▇▇▇▇▆▅▅▅▅▅▅▅▅▃▂▁▁ start $-140M → trough $-1,086M (2025) → latest $-991M

Year Net Cashflow ($MM) Cumulative NPV ($MM) Critical Operations
2008-143.2-139.8Drilling (spud): 001
2009-16.8-155.7
20100.0-155.7
20110.0-155.7
2012-140.0-248.7Plug & abandon: 001 (608124003402)
Drilling (spud): 001
Plug & abandon: 001 (608124007500)
Drilling (spud): 002
2013-22.4-263.2Temporary abandonment: 002 (608124007900)
2014-140.0-340.8Drilling (spud): 002
Sidetrack: 002 (608124009300)
Plug & abandon: 002 (608124009301)
2015-153.6-417.9Drilling (spud): 003
Sidetrack: 003 (608124010101)
2016-104.0-466.6Plug & abandon: 003 (608124010103)
Drilling (spud): SA005
Drilling (spud): 003
2017-44.8-486.2Drilling (spud): 003
Sidetrack: 003 (608124011300)
Sidetrack: 003 (608124011301)
Drilling (spud): SA006
Temporary abandonment: SA006 (608124011302)
20180.0-486.2
20190.0-486.2
20200.0-486.2
20210.0-486.2
2022-59.2-501.1Drilling (spud): SA008
Drilling (spud): SA009
2023-853.9-705.5Sidetrack: SA007 (608124014001)
2024-1,033.8-927.6Temporary abandonment: SA010 (608124013900)
Temporary abandonment: SA008 (608124014100)
Temporary abandonment: SA009 (608124014400)
Completion: SA008 (608124014100)
Completion: SA009 (608124014400)
2025-747.8-1,086.3Well online (first production): API 608124014400
Well online (first production): API 608124014100
Plug & abandon: SA006 (608124011302)
Plug & abandon: 002 (608124007900)
Well online (first production): API 608124013900
Well online (first production): API 608124014003
Workover: SA010 (608124013900)
2026514.4-991.3

#Critical Operations Detail

Date Operation Well Cumulative NPV at event ($MM)
2008-06-04Drilling (spud)001-15.2
2008-07-03Drilling (spud)001-38.2
2008-11-11Drilling (spud)001-116.2
2012-01-07Plug & abandon001 (608124003402)-155.7
2012-06-29Drilling (spud)001-156.8
2012-09-09Plug & abandon001 (608124007500)-200.4
2012-09-17Drilling (spud)002-200.4
2013-03-10Temporary abandonment002 (608124007900)-263.2
2014-05-29Drilling (spud)002-264.6
2014-12-07Drilling (spud)002-340.8
2014-12-07Sidetrack002 (608124009300)-340.8
2014-12-28Plug & abandon002 (608124009301)-340.8
2015-05-26Drilling (spud)003-343.2
2015-09-08Drilling (spud)003-388.3
2015-10-25Sidetrack003 (608124010101)-396.7
2015-10-26Drilling (spud)003-396.7
2015-12-21Drilling (spud)003-417.9
2016-01-10Plug & abandon003 (608124010103)-418.3
2016-03-14Drilling (spud)SA005-425.2
2016-12-16Drilling (spud)003-466.6
2017-02-19Drilling (spud)003-482.1
2017-02-19Sidetrack003 (608124011300)-482.1
2017-03-05Sidetrack003 (608124011301)-486.2
2017-03-08Drilling (spud)SA006-486.2
2017-04-16Temporary abandonmentSA006 (608124011302)-486.2
2022-11-22Drilling (spud)SA008-488.7
2022-11-28Drilling (spud)SA009-488.7
2023-12-17SidetrackSA007 (608124014001)-705.5
2024-01-10Temporary abandonmentSA010 (608124013900)-719.6
2024-01-10Temporary abandonmentSA008 (608124014100)-719.6
2024-01-30Temporary abandonmentSA009 (608124014400)-719.6
2024-07-07CompletionSA008 (608124014100)-802.2
2024-11-02CompletionSA009 (608124014400)-897.1
2025-02-01Well online (first production)API 608124014400-1,166.4
2025-07-01Well online (first production)API 608124014100-1,167.8
2025-07-31Plug & abandonSA006 (608124011302)-1,167.8
2025-08-01Plug & abandon002 (608124007900)-1,160.5
2025-08-01Well online (first production)API 608124013900-1,160.5
2025-08-01Well online (first production)API 608124014003-1,160.5
2025-09-24WorkoverSA010 (608124013900)-1,147.0

Operations are derived deterministically from BSEE Well Activity Reports (bin/war/) and OGOR-A first-production dates (BSEE OGOR-A pickled .bin DataFrames (zip archives absent in checkout)). Activity codes: DRL=drilling, COM=completion, WO=workover, REC=recompletion, ST=sidetrack; re-entries detected via API completion-suffix changes on a shared wellbore. Markers are annotations only and do not feed the cashflow model.


#Well-Level NPV Stackup

Field terminal NPV decomposed into per-well contributions that sum exactly to the field total. Field NPV = $-991.3 M; sum of per-well net NPV = $-991.3 M (residual $0.0000).

Rank Well (API) Name Oil (MMbbl) Gross well NPV ($MM) Allocated shared cost ($MM) Net well NPV ($MM) % of field NPV
1608124014400SA0096.41-14.0-318.1-332.133.5%
2608124014100SA0085.53-12.7-274.8-287.529.0%
3608124014003SA0075.7354.5-284.4-229.923.2%
4608124013900SA0103.5132.4-174.2-141.814.3%
Reading the ranking. Under production-pro-rata allocation, the largest producer absorbs the most shared capital — so the highest-output well can show the *most negative* net NPV. The Gross well NPV column reflects standalone operating performance; the Net well NPV column reflects each well's share of the fully-loaded field (which is NPV-negative overall, so every well's net is negative). Bottom line: a negative *net* NPV here is an allocation outcome on an NPV-negative field, not a verdict on the well's own performance — read the Gross well NPV column for standalone results.

Per-well net NPV (signed bars; █ = value-additive, ▓ = drag):

SA009      -332.1 M  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
SA008      -287.5 M  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
SA007      -229.9 M  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
SA010      -141.8 M  ▓▓▓▓▓▓▓▓▓▓

Interactive NPV waterfalls → — two views: an over-time NPV bridge (each year's change in cumulative NPV, with the biggest swings annotated by the events that drove them) and this per-well stackup (each well's net NPV stepping to the field total). Hover any bar for detail. Rebuild with uv run --with plotly python scripts/lower_tertiary/build_npv_stackup_chart.py --dev Shenandoah.

Block scope: Single OGOR block (WR 51) for this development; block-level NPV decomposition is not applicable (identical to the field total).

The stackup covers the 1 producing wells. The field's 23 total wellbores also include appraisal and sidetrack/re-drill bores; their drilling & completion capital is part of the shared cost allocated pro-rata (it is not attributed to a single producer).

Allocation assumption. Shared field costs (facilities, fixed opex, host) and the drilling/completion cost of non-producing bores (appraisal/sidetrack wells with no production to stand against) are pooled and allocated to the producing wells pro-rata by each well's share of total field oil production. Each producing well's own revenue, royalty, variable opex, and directly-resolvable D&C are attributed to it. Per-well NPVs sum to the field NPV.


#Well Geometry (3D)

Interactive 3D well-path views — minimum-curvature trajectories from BSEE directional surveys, rendered with Plotly and Three.js — are in development for this field. When verified they will live at:

They are intentionally not linked yet: the geometry render must first be confirmed to cover the same lease-resolved producers shown in the NPV stackup above (same APIs, same field), so the economics and the well paths never describe different wells.


#Financial Summary

Life-to-date field economics on public BSEE data (2000-09 -> 2026-04). D&C and facilities are one-time capital already incurred; revenue, royalty and opex accrue with production.

Metric Value
Revenue$1,459.7 M
Royalty$273.7 M
Variable opex$127.1 M
Fixed opex$137.5 M
D&C cost$1,816.5 M
Facilities cost$2,050.0 M
Net cashflow (undiscounted)$-2,945.1 M
NPV @ 10%$-991.3 M
MIRR (annual)-1.06%
Producers1
Injectors0
Wellbores23

Return metric: MIRR is the return measure used for these developments, not IRR. Deepwater Lower-Tertiary cashflows are heavily front-loaded (large D&C + facilities outflows, then a long production tail), so the net-cashflow sign changes more than once and the IRR polynomial can have multiple — or no — real roots; MIRR (single reinvestment/finance rate at the 10% discount rate) is well-defined and unambiguous. NPV @ 10% remains the primary value metric.

Source-of-record: public BSEE OGOR-A production, drilling and WAR records, run through the field cashflow model.


#Price Sensitivity

NPV is linear in the oil price deck: each +$1/bbl on the realized oil price moves field NPV by $+3.2 M. Life-to-date NPV reaches zero at a flat-equivalent realized WTI of $376/bbl, versus the actual volume-weighted realized $69/bbl over the window.

Flat-equivalent realized WTI ($/bbl) NPV @ 10% ($MM)
49-1,055.9
59-1,023.6
69 ← actual-991.3
79-959.0
89-926.7

Exact, not sampled: NPV is affine in a uniform price multiplier (revenue and royalty scale with price; variable/fixed opex, D&C, facilities and discounting do not), so one base run plus one scaled run define the entire line. 'Flat-equivalent realized WTI' is the volume-weighted average price; the underlying deck is the historical monthly WTI path.


#Next Steps

  # 1. refresh the latest BSEE OGOR-A production (2025 + current year)
  uv run python scripts/refresh_bsee_ogor_recent.py
  # 2. regenerate this report (latest window is the default;
  #    leases are auto-derived for the field)
  uv run python scripts/lower_tertiary/generate_field_economics_report.py --dev Shenandoah