MaBal — Oil / Gas Material Balance

Gas: P/Z analysis, Cole and Roach diagnostics, OGIP forecasting. Oil: Havlena-Odeh straight line, gas cap sizing, Campbell water-influx diagnostic. Drive mechanism identification on both. All client-side — no data leaves your browser.

Fluid
Fit Quality R²
linear regression all points
Fitted Pi/Zi
psia
should match measured
Current Recovery
%
Gp / OGIP latest
Drive Mechanism
Enter at least three data points to identify the drive mechanism.
Drive Index Breakdown · Pirson awaiting data
Run analysis to compute DDI · WDI · EDI
DDI — depletion WDI — water influx EDI — rock + water
Survey History — Pressure / Production

Static bottomhole pressure at multiple time points. Surface pressures don't work — wellbore hydrostatics corrupt the signal. Drop suspect points rather than include them.

Time (yr) P (psi) Z P/Z Bg Gp (Bcf) Wp (MMbbl)
FIG. P/Z VS Gp  ·  x-intercept gives OGIP. Click points to exclude · drag line center to translate · use Slope ± to rotate · drag dashed green line for Pab.
Recoverable Reserves Forecast
Z @ Pab
Pab/Zab psia
Bg @ Pab rcf/scf
Recoverable Gp,ab
Bcf
Gp at Pab/Zab on fitted line
Recovery Factor
%
Gp,ab / OGIP
Remaining
Bcf
Gp,ab − current Gp
RF Bound Check
expected range for drive
Advanced DiagnosticsOil Material Balance · Havlena-Odeh

When P/Z curves upward, the Cole plot quantifies the aquifer. We model We with Fetkovich finite-aquifer formulation. Iterate J and Wei until F/Eg vs We/Eg is linear with slope ≈ 1.

Cole OGIP
Bcf
y-intercept of F/Eg line
Cole Slope
target ≈ 1.0
Cole R²
linearity F/Eg vs We/Eg
COLE PLOT  ·  F/Eg vs We/Eg · y-intercept = OGIP, slope = 1 confirms aquifer (Havlena-Odeh linearization)

For abnormally pressured reservoirs (initial gradient > 0.6 psi/ft) rock and connate-water expansion contribute materially to reservoir voidage. The naive P/Z plot overstates OGIP. The Roach / Ramagost-Farshad (1981) correction (P/Z)·[1 − ce·ΔP] with ce = (cf + cw·Swi)/(1 − Swi) restores linearity.

Initial Gradient
psi/ft
Pi / TVD
Effective ce
×10⁻⁶/psi
(cf + cw·Swi) / (1 − Swi)
Roach Uplift
%
vs naive P/Z
Roach OGIP
Bcf
corrected for rock + water
Roach R²
linearity (P/Z)* vs Gp
ROACH PLOT  ·  (P/Z)·[1 − ce·ΔP] vs Gp — corrected line projects to true OGIP

Havlena-Odeh linearization: F = G·Eg + We. Plot F (= Gp·Bg + Wp·Bw) versus Eg (= Bg − Bgi). Volumetric: line through origin with slope = G. Curvature → water influx or compartmentalization.

HAVLENA-ODEH  ·  F vs Eg · slope through origin = OGIP for volumetric

Compute OGIP from each individual pressure point (one-point material balance), plot vs time. Stable horizontal → correctly characterized reservoir. Upward drift → unmodeled aquifer / connected reservoir. Downward drift → missing production / compartmentalization.

SINGLE-POINT OGIP  ·  G(i) = Gp(i) / (1 − (P/Z)(i)/(Pi/Zi)) — trend as diagnostic

The gas balance gets away with one straight line because gas has a single expansion term. Oil has four, and they scale differently with pressure, so they are kept apart and the data is allowed to say which are live: F = N(Eo + m·Eg + Efw) + WeBw. Enter the PVT alongside the production, as a laboratory report supplies it, one row per surveyed pressure.

A laboratory PVT report is the right input and stays the default. If there isn’t one, the three fields below generate Bo, Rs and Bg for every row from Standing and Vazquez-Beggs in their published forms.

P, psiaNp, MstbGp, MMscfWp, MbblWi, Mbbl Bo, rb/stbRs, scf/stbBg, rb/scf

Two questions, two methods. A tornado swings one parameter at a time with everything else at base — it says which parameter is worth measuring better, and it is exact. Monte Carlo samples every parameter at once and gives P90/P50/P10 plus a contribution ranking that, unlike the tornado, accounts for interaction. Where the two rankings disagree, that disagreement is the interesting part.

← Back to rfourenergy.com © 2026 RFour Energy