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

World Oil April 2026 Article — Validation

All four article tables validated against the BSEE-derived model: reconciliation, article errata, BOEM cross-check, and change log.

Provenance. Every WED number is computed by repository code from BSEE/BOEM raw data (WAR, OGOR-A, Reserves Inventory, Deepwater Qualified Fields); modeled and operator-announced columns are flagged, not recomputed.

Data limits & honest caveats

BOEM reserves reflect the 31-Dec-2023 vintage (developments with later first oil are unbooked); STOIIP has no government source and is deliberately excluded.

#World Oil April 2026 article — validation against worldenergydata

Status: validated 2026-07-06 · all 4 tables dispositioned Benchmark name: "World Oil April 2026 article" (World Oil Lower-Tertiary series, part 2; BSEE-derived data thru Nov 2025) Canonical model artifact: docs/modules/bsee/analysis/production/FDAS_V30/financial_project_summary.xlsx (+ assumptions in lease_assumptions.xlsx) Model basis: the worldenergydata ("wed") toolset is the canonical model going forward. It reproduces the frozen V30 baseline (2025-09-29) to within ±0.1 % and carries the extended V50 production window (through 2026-04) on one code path. Economics below are quoted on the V50 (latest-OGOR-A) basis, with the frozen V30 reference shown alongside; D&C days are version-independent (identical under V30 and V50). Full three-revision comparison, script differences, missed-file inventory and bug review: FDAS revision comparison (§6.1). Live reconciliation page: /completion/verification.html


#0. Executive summary

This document is the durable, single-source record of the validation — every number, discrepancy, and open question lives HERE (email carries only brief pointers to it).

1. The apparent 2× well-days gap is resolved. Our page had headlined drilling-only days; on a like-for-like drilling-plus-completion basis our BSEE-derived extract reconciles with the article's Table 1 within a few percent, with every per-development difference itemized in §3 and kept current on the live verification page. 2. Buckskin is recovered. It was missing from our extract because the pipeline read a shelf-only dataset; the canonical extractor now reads the raw Keathley Canyon WAR data directly and Buckskin lands within one sidetrack and ~2.6% of the article's figures (§3). 3. All four article tables are dispositioned (§2): BSEE-derived columns reconcile through our code end-to-end; modeled and operator-announced columns are flagged, never recomputed. 4. Five discrepancies were found and are documented with WED evidence and side-by-side comparison tables for QA hand-back (§4). 5. Free BOEM reserves + discovery dates are now in our refresh pipeline (§5.1), which surfaced one substantive reserves discrepancy on Stones to resolve with the article team. 6. Open asks to the article team (§5): STOIIP basis, cost-deck vintage, and the appraisal-well definition. 7. Refreshing to the current WAR vintage adds only 53 D&C days (Big Foot +33, Stones +20) — all late-life well-servicing on wells drilled years ago; the nine matched developments are unchanged since the article's Nov-2025 cutoff (§3.1).

#1. Headline finding

The article's four tables are this repository's FDAS V30 model output: financial_project_summary.xlsx reproduces Tables 1 and 2 column-for-column (spud dates 9/9, wellbores, D&C days, oil volumes and revenues in band). Validation therefore splits cleanly:

#2. Table-by-table disposition

Table Content BSEE-derived verdict Modeled / announced
1Well metrics (wells, sidetracks, D&C days)✅ reconciles — see §3costs = V30 deck
2Project financials✅ spud dates 9/9 exact; oil/revenue in bandNPV10 = V30 deck
3BSEE dataset summary✅ mean project NPV −$1.19B reproducedappraisal-well subset definition is theirs
4STOIIP / recovery✅ recovered volumes match 7/9 (see discrepancies D1, D5)STOIIP wholly external — see §5

#3. Field-level D&C reconciliation (Table 1)

On the latest (V50/wed) basis, D&C is fully reconciled: V50 = wed to the day, Δ = 0 for every field (same byte-identical extractor, same WAR). The per-field drilling / completion / D&C split (V30 / V50 / wed + discrepancy) is on the comparison page §4.4. The table below reconciles our extraction against the article as published.

Our full-raw candidate extraction (canonical extractor reading raw BSEE WAR .bin; wed PR #851, issue #842) vs the article, total D&C days:

The Δ since Nov '25 column (added 2026-07-06) reports, of our current D&C total, how many days accrued after the article's November-2025 data cutoff — computed by re-running the canonical extractor against the 2026-02-19 WAR vintage twice (uncapped vs. capped at 2025-11-30) and differencing; see the delta-increase analysis in §3.1.

Development WED bores WO bores WED D&C WO D&C Δ vs WO Δ since Nov '25 Status
Anchor17171,8251,82500exact
Cascade Chinook14142,4672,46700exact
Stones22222,6252,6250+20exact vs WO; +20 post-cutoff well-servicing days (§3.1)
Julia991,6871,68700exact
Kaskida7784184100exact
Tiber2225025000exact
North Platte232097197100days exact; +3 zero-day sidetracks
Shenandoah23232,3702,346+240resolved (frozen V30 was −357); Δ pre-dates cutoff
Buckskin25242,0562,004+520recovered — was missing entirely (shelf-only extract)
Jack St Malo73737,0476,928+1190open — suspect over-counted post-TD completion days; deferred bug #846
Big Foot383,265+33WED-only: article excluded Big Foot; +33 post-cutoff well-servicing days (§3.1)
Total (all 11)25,404+53253 wells; +53 days since the Nov-2025 cutoff

Fidelity anchor: the candidate extraction reproduces the frozen V30 workbook exactly on Anchor (821 drilling / 1,004 completion days), pinned by tests/integration/test_kc_ingest_fidelity.py. Candidate totals: 253 wells / 25,404 D&C days across 26 leases, 11 developments.

The like-for-like frozen-V30 reconciliation (217 wells, 22,478 WED vs 21,944 WO D&C days; matched-9 −2.5%) lives on the verification page and in scripts/completion/build_completion_report.py (WO_APRIL_2026_ARTICLE frozen benchmark).

#3.1 D&C days accrued since the article's Nov-2025 cutoff

The article's Table 1 was built on BSEE WAR data through November 2025. Our current extract reads the 2026-02-19 WAR vintage (latest rig-on-well activity 2026-02-16). To isolate what the newer data adds, the canonical extractor was re-run twice — once uncapped (which reproduces the WED D&C column above *to the day*: 25,404 total) and once with every WAR activity interval capped at 2025-11-30 — and the two differenced. The gap is the D&C days accrued after the article's cutoff:

Development WED D&C (Feb-2026 vintage) …capped at 2025-11-30 Δ since Nov '25 Nature of the added days Latest activity
Big Foot3,2653,232+33post-TD rig-days on one well (TD 2020)2026-01-02
Stones2,6252,605+20post-TD rig-days on three wells (TD 2018–2022)2025-12-17
All nine other developments0no rig-on-well activity after the cutoff≤ 2025-09-29
Total25,40425,351+532026-02-16

Findings from the delta-increase analysis:

1. The increment is small and concentrated: 53 D&C days, entirely on Big Foot (+33) and Stones (+20). Every other Lower-Tertiary development shows zero post-cutoff activity in our feed — the article's November-2025 window already captured essentially all of their drilling and completion. 2. All 53 added days are completion-phase, none drilling (drill_delta = 0 for every well). Each traces to rig-on-well days on wells that reached total depth years ago (Big Foot 2020; Stones 2018–2022), so they are late-life well-servicing / intervention days, not new-well D&C — swept in by the extractor's simplified rule that counts every rig-day after TD as "completion" (the same accounting behaviour tracked for Jack St Malo in #846). 3. None of the WED-vs-article Δ days in §3 come from this newer data. Shenandoah (+24), Buckskin (+52) and Jack St Malo (+119) all pre-date the cutoff (latest activity 2025-09, 2024-05 and 2025-05 respectively); those differences are recompletion accounting, the Buckskin recovery, and the JSM over-count — orthogonal to the data vintage. Refreshing to the Feb-2026 vintage therefore leaves the reconciliation of the nine matched developments unchanged, and the article stands as printed for them.

*Reproduce:* re-run docs/modules/bsee/analysis/production/FDAS_V30/extract_drilling_completion_days.py against the 2026-02-19 WAR .bin feed with leases_v21_kc.csv, applying an activity-day > 2025-11-30 filter on the same WAR_START_DT/WAR_END_DT daily index the extractor already unions.

#4. Discrepancies found in the article (QA hand-back)

Surfaced by the BSEE-grounded cross-check. Each discrepancy gets its own side-by-side comparison table (same treatment as the §3 day-count table) so the exact cell where the two bases diverge is visible at a glance. Every WED figure is computed by repository code from the canonical workbook (financial_project_summary.xlsx) or raw BSEE OGOR-A; per-field detail lives on the live economics pages linked in each table.

Summary:

# Discrepancy WED evidence (detail below)
D1Table 4 prints recovered = "1" for Anchor and Shenandoah — looks like a placeholder that survived into print; it also disagrees with the article's own Table 2 production valuesBSEE OGOR-A cumulative oil for both fields is material and growing month-on-month — §4.1
D2The Stones NPV/NCF entries match the Tiber row to the dollar — consistent with a row-copy slip during table assemblyWED canonical Tiber NPV equals the printed "Stones" value exactly; the real Stones values are far larger in magnitude — §4.2
D3Cascade Chinook net cash flow prints positive while its own NPV prints negative — the underlying revenue/OPEX stack cannot produce a positive NCFFull cash-stack rebuild from the canonical workbook — §4.3
D4Julia and Stones OPEX print as zero for fields producing since 2016Lifetime variable + fixed OPEX from the canonical workbook — §4.4
D5Jack St Malo recovery factor prints 10% where the article's own recovered/recoverable figures give 8.4%Arithmetic on the article's own Table 4 cells; WED OGOR-A cumulative confirms the recovered figure — §4.5

#4.1 D1 — Table 4 "recovered" for Anchor and Shenandoah

Development WO Table 4 recovered (MMbbl) WED, frozen V30 window (thru 2025-05) WED, latest OGOR-A WED evidence
Anchor16.918.6Anchor economics (live) · financial_project_summary.xlsx Project_Summary · field_economics_anchor_v50.md
Shenandoah10.004 (first oil 2025-02; window ends 2025-05)21.2Shenandoah economics (live) · field_economics_shenandoah_v50.md

Both fields' produced volumes are material in the BSEE record and rising month-on-month, so "1" reads as a stale placeholder rather than a data point — and Table 2 of the article itself carries production for both.

#4.2 D2 — Stones NPV/NCF entries match the Tiber row exactly

Metric ($M) WO prints for "Stones" WED canonical Tiber WED canonical Stones
NPV @10%−228−228.0−1,479.5 (V30; −1,461 on the V50 latest-OGOR rerun)
Net cash flow−275−275.0−3,305.5

The printed "Stones" values equal WED's Tiber row to the dollar (Tiber: two exploration bores, never developed — small numbers by construction). The real Stones values are roughly six to twelve times larger in magnitude. WED evidence: Stones economics (live) · financial_project_summary.xlsx sheets Stones / Tiber.

#4.3 D3 — Cascade Chinook net cash flow cannot be positive

Cash-stack line ($M, lifetime thru 2025-05) WED canonical
Revenue2,326.9
− Royalty436.3
− OPEX (variable 137.3 + fixed 1,700.0)1,837.3
= Margin before capital+53.3
− Host CAPEX1,200.0
− SURF600.0
− Drilling + completion cost1,973.6
= Net cash flow−3,820.3
WO prints+3,656

With barely break-even lifetime margin before capital, no assignment of the capital stack can produce a positive NCF — and the article's own NPV for the same field prints negative (−1,122), which is internally inconsistent with a positive NCF of that size. WED evidence: Cascade–Chinook economics (live) · financial_project_summary.xlsx sheet Cascade Chinook.

#4.4 D4 — Julia and Stones OPEX print as zero

Development (producing since) WO OPEX ($M) WED variable WED fixed WED total
Julia (2016)0425.6693.81,119.4
Stones (2016)0334.61,275.01,609.6

Both fields have produced continuously for roughly a decade; zero lifetime OPEX is not plausible on any basis. WED evidence: Julia economics (live) · Stones economics (live) · financial_project_summary.xlsx sheets Julia / Stones.

#4.5 D5 — Jack St Malo recovery factor

Quantity Value Source
Recovered (article's own Table 4)420 MMbblWO Table 4
Recoverable/STOIIP basis (article's own Table 4)5,000 MMbblWO Table 4
Implied recovery factor8.4%420 ÷ 5,000
Printed recovery factor10%WO Table 4
WED OGOR-A cumulative oil (V30 window)406.6 MMbblfinancial_project_summary.xlsx; consistent with ~420 at the latest OGOR-A month

Pure arithmetic on the article's own cells; the recovered figure itself checks out against WED. WED evidence: Jack / St. Malo economics (live).

#4.6 Project-cost basis (full stack, per development)

The article's Table 1/2 cost columns are the V30 assumptions deck (lease_assumptions.xlsx) run through our model — so this table IS the WED side of any cost comparison. If any article cost cell disagrees, the divergent cell locates exactly where the bases differ (and feeds ask §5.2, deck vintage). All values $M, lifetime thru 2025-05, from financial_project_summary.xlsx Project_Summary:

Development Host CAPEX SURF Boost/WI pumps Dry-well system Facilities total Drilling cost Completion cost D&C total Revenue Royalty OPEX NCF NPV @10%
Anchor1,500700002,4006571,1041,76147689167−3,941−1,733
Big Foot2,000006302,7309668221,7874,7388881,058−1,725−1,063
Cascade Chinook1,200600001,9009641,0101,9742,3274361,837−3,820−1,474
Jack St Malo1,2005,20090007,4002,3593,0915,45025,6494,8093,201+4,788−881
Julia01,00027501,3756427081,3504,7158841,119−13−531
Kaskida00000612314925000−925−625
North Platte000007433261,068000−1,068−784
Shenandoah1,500350002,0509908261,8170.30.113−3,879−1,166
Stones1,2002,40045004,1501,1669162,0825,5821,0471,610−3,306−1,480
Tiber0000023540275000−275−228

(Boost/WI pumps = booster + water-injection pump capital combined; OPEX = variable + fixed. Pre-FID fields carry exploration/appraisal D&C only.)

#4.7 Project financials — full WED model output (the article's Table 2 equivalent)

The complete per-development financial summary from the same canonical workbook, published so the article team can inspect the WED side of every Table 2 cell and gain confidence in the tables we produce. Production and wells are BSEE-derived (OGOR-A / WAR); dollars are the V30 model on the assumptions deck; all money in $M, lifetime thru 2025-05:

Development First oil Oil produced (MMbbl) Producer / injector wells Total bores Revenue Royalty OPEX Net cash flow NPV @10% MIRR (annual)
Anchor2024-086.92 / 01547689167−3,941−1,733−17.7%
Big Foot2018-1166.97 / 1384,7388881,058−1,725−1,0633.5%
Cascade Chinook2014-0134.33 / 0142,3274361,837−3,820−1,474−1.8%
Jack St Malo2014-12406.622 / 47325,6494,8093,201+4,788−8818.5%
Julia2016-0370.94 / 094,7158841,119−13−5316.3%
Kaskidapre-FID00 / 07000−925−625
North Plattepre-FID00 / 014000−1,068−784
Shenandoah2025-020.0041 / 0230.30.113−3,879−1,166
Stones2016-0983.710 / 2225,5821,0471,610−3,306−1,4802.7%
Tibernever00 / 02000−275−228

Cross-checks a reader can do immediately: the D2 duplicate row is visible here (Tiber's −275 / −228 are the values the article prints for Stones); D3's Cascade Chinook NCF is here in context; D4's OPEX columns are non-zero for Julia and Stones; Table 3's mean project NPV (−$1.19B) is the average of the NPV column. Per-field monthly cash-flow detail: the live economics pages (Anchor · Big Foot · Cascade–Chinook · Jack/St. Malo · Julia · Shenandoah · Stones) and the portfolio summary. Sanctioned-baseline figures are CI-guarded against golden_baseline_v30.yml — see capabilities § validation.

#5. Open asks to Roy / Chuck (their inputs, cited as theirs)

1. STOIIP source for Table 4 *(hard gap)* — no BOEM/BSEE source exists for STOIIP/OOIP; public record is operator FID press only (Buckskin ~5 Bbbl, Julia 6 Bbbl, Stones >2 Bboe, Tiber 4–6 Bbbl; Cascade/Chinook has no clean public figure). Need their basis for a consistent column. 2. Cost / rate-deck vintage confirmation — are Table 1/2 costs the V30 lease_assumptions.xlsx deck we hold, or a revised deck? 3. Complete recoverable-reserves (STB) set + appraisal-well definition — we hold a few in BOE. BOEM's free Reserves Inventory (field-level, 31-Dec-2023 vintage) + Deepwater Qualified Fields (discovery/first-oil dates) are NOW IN the refresh pipeline (#847, landed 2026-07-06 — see §5.1); WO Table 4 recoverable figures for Anchor 440 / JSM 500 / Stones 250 match operator press exactly, but BOEM's booked figure for Stones does not (§5.1) — which basis does the article intend?

#5.1 BOEM cross-check (added 2026-07-06, #847 implementation)

The free BOEM Reserves Inventory (Table 4, 31-Dec-2023 vintage) is now in the refresh pipeline; curated output data/modules/offshore_assets/curated/lt_reserves_discovery.csv. Cross-check against the WO Table 4 / operator-announced recoverable figures (all MMBOE):

Development BOEM original (mean) Operator/WO announced Verdict
Jack St Malo550.6500consistent (+10%)
Stones128.3250−48.7% — discrepancy flagged (lt_reserves_discrepancies.csv); ask Roy/Chuck which basis WO intends
Anchornot booked in 2023 vintage (FO 2024)440BOEM cross-check possible from the next vintage
Buckskin456.6— (WO carries no figure)BOEM fills the gap
Big Foot / Cascade Chinook / Julia176.9 / 74.0 / 127.6new BOEM columns
Kaskida / North Platte / Tiber / Shenandoahnot booked (pre-FID / FO 2025)rows kept with vintage caveat

Discovery + first-production dates now sourced from BSEE Deepwater Qualified Fields (weekly cadence), field-level first-prod preferred (per-lease dates can post-date field first oil — Buckskin 2019-06 vs a 2026 lease date).

#6. Provenance and versioning

#6.1 Revision lineage (V30 → V50 → wed) and canonical basis

The full three-way comparison — scripts, inputs, months of BSEE data, result tables, script-by-script differences, the missed-file inventory, and an adversarial bug review — is its own living page: FDAS revision comparison. Summary:

Dimension V30 (2025-09-29) V50 (2026-06-26) wed (2026-07-06)
BSEE production window2000-09 → 2025-052000-09 → 2026-04 (+11 mo)reproduces both
D&C extractormd5 1b89c23eidenticalidentical (version-independent)
ogora_to_chronologicalV23_001rewrite Version 008ships old V23_001
Financial generator_V30 (pre-tax)_V50 (after-tax)_V30 (V50 not committed)
lease_assumptionsbaseline13 cost cells changedV30 values (not propagated)
Result workbookshipped .xlsxnone shippedYAML + markdown reports
Portfolio NPV @10 %−$8,327.8 MM−$7,895.3 MM (+$432.5 MM)reproduces both

Roy's V50 script has now been run and reconciled field-by-field against wed (2026-07-07; full tables on the comparison page §4.4–§4.6). Headline result, to verify D&C and financials on the latest (V50/wed) basis:

Check Result
D&C days (D, C, D&C per field)V50 = wed exactly — Δ = 0 for every field (byte-identical extractor, same WAR); 253 wells / 25,404 D&C
Produced oilV50 = wed, all fields (same OGOR-A window)
NPV @10%7 producers within −$103M…+$197M (the 13 cost cells); 3 exploration-only fields exact; Jack St Malo −$3.1B — the sole material gap
After-tax vs pre-taxsmall, real — severance/ad-valorem = 0, but 21% corporate tax hits the 3 fields with positive *lifetime* cash flow: JSM −$103M NPV, Julia −$4.4M, Buckskin −$3.9M; the other 8 (negative cash flow) pay none
Article Table-2 errataRoy's V50 script corrects them (Stones≠Tiber, Cascade NCF sign, zero-OPEX) — his code agrees with §4.1–§4.5 here

The one open item for the article team: the Jack St Malo gap is ≈ $3.0B the NPV discount-reference convention (Roy discounts "from Day 1 / first spud" (2000), wed from first cashflow; JSM's 14-year spud→first-oil gap makes it swing) plus ~$103M corporate tax; undiscounted cash flows reconcile. (The 13 cost cells account for only ±$100–200M per field; severance/ad-valorem are 0; the 21% corporate tax is a small real effect on the 3 fields with positive lifetime cash flow. NPV-negative does not imply zero tax.)

Ref What
wed #841 (merged)/completion/ Total-D&C column + verification page
wed #843 (merged)like-for-like reframe + Buckskin identity surfaced
wed #851 (merged)KC deepwater ingest — raw .bin extractor + Buckskin leases + fidelity tests
wed #852 (merged)benchmark renamed "World Oil April 2026 article" on the live pages
wed #861 (merged)#847 implementation: BOEM reserves + discovery in the refresh pipeline; curated lt_reserves_discovery.csv
wed #842KC ingest issue; V30-supersede decision recorded (open pending article-team confirmation)
wed #844living cost-basis time-series
wed #846JSM D&C overshoot (+119)
wed #847 (closed)BOEM reserves + discovery-date ingest
wed #855future BOEM source family (field monthly production, reserve history 1975–2023, older vintages)
wshub #3385"Verified against references & baselines" section epic

#8. Change log (session notes — the durable record)

Date What happened
2026-07-05Article-team QA question received (well-days basis). Root cause found the same day: our /completion/ page headlined drilling-only days; true D&C total reconciles (§3). PR #841: verification page + Total-D&C column shipped.
2026-07-06Consistency review found the original headline comparison was not like-for-like (offsetting Big Foot-vs-Buckskin); reframed via PR #843. Buckskin identity recovered (six Keathley Canyon leases; the shelf-only extract had dropped it).
2026-07-06All four article tables validated against financial_project_summary.xlsx (§1–2); five discrepancies documented with comparison tables (§4); STOIIP confirmed to have no government source (§5).
2026-07-06KC deepwater ingest landed (PR #851): canonical extractor reads raw WAR .bin; Buckskin becomes a matched row (§3); Anchor fidelity pinned exactly by test. Benchmark renamed to "World Oil April 2026 article" everywhere (PR #852). This report committed (PR #853).
2026-07-06BOEM reserves + discovery ingest landed (#847 / PR #861, plan #854 with two adversarial review rounds): annual Table 4 workbook + Deepwater Qualified Fields on refresh cadence; curated per-development table with citation columns; Stones reserves discrepancy surfaced (§5.1). Follow-on source family filed as #855.
2026-07-06Delta-increase analysis added (§3.1): current 2026-02-19 WAR vintage vs the article's Nov-2025 cutoff yields +53 D&C days (Big Foot +33, Stones +20), all post-TD well-servicing; Table 1 gains a Δ since Nov '25 column. Section permalinks + an "On this page" contents nav added to the page.
2026-07-06Migrated the model basis to V50 (latest OGOR-A) with V30 as the frozen reference; added §6.1 revision lineage and a full companion page (FDAS revision comparison) covering the three-revision comparison, V30→V50 script differences, missed-file inventory, and an adversarial bug review of the wed scripts (V30/V50 source archives backed up to /mnt/ace/.../fdas_revisions/). Surfaced two reconciliation items for the article team: pre-tax vs after-tax, and 13 changed V50 cost cells.