Methodology

Petrolyt implements industry-standard decline curve models from peer-reviewed SPE publications, plus the data-cleaning and Smart Fit workflow engineers use day to day.

Scope: Petrolyt focuses on cleaning messy CSV/Excel production data, fitting and plotting decline curves with the graphs engineers need day-to-day, and running well / multi-well screening economics. It is not a full enterprise reserves suite, RTA/nodal package, or a substitute for certified reserves booking or formal audit sign-off.

1. Day-One Workflow & Data Requirements

Most engineering time is spent cleaning production files — not solving equations. Petrolyt’s primary workflow is:

  • Import — CSV (Starter+) or Excel (Field+) with flexible column mapping; oil, gas, or dual wells.
  • Clean — shut-in filtering, ramp skip, optional fit-window bounds; import summary shows what changed.
  • Fit — basic Auto-Fit / manual 8-model forecast on Starter; Smart Auto-Fit (Field+) ranks all 8 models by R² via Levenberg–Marquardt.
  • Report — residuals, model compare, optional Monte Carlo P90/P50/P10, interactive qi/Di/b scenarios, PDF/CSV export (Field+).

Headline EUR uses the best-fit model when its forecast clears the economic limit; otherwise EUR/life fall back to the next R²-ranked model with a positive economic forecast. Results are for engineering screening — not sole basis for reserves booking.

Starter vs Field (what “8 models” means)

  • Starter — upload CSV, run basic Auto-Fit, and use the manual Full Decline Forecast across all 8 SPE models (enter or adjust parameters yourself). Demo well included. No interactive scenarios, full Smart Fit report, or PDF/CSV exports.
  • Field+ — Smart Auto-Fit ranks all 8 models automatically for oil or gas (and dual-phase), with residuals, Monte Carlo bands, interactive scenarios, Excel upload, PDF/CSV, chart zoom, and API.
  • Engineer+ — adds VP-DCA, Fetkovich type curves, multi-segment fits, Bourdet / flow-regime / data QC, and screening economics with price decks.

File formats & columns

  • Formats — CSV on every plan; Excel (.xlsx) on Field+.
  • Required — a date (or month) column and at least one rate column (oil STB/d and/or gas Mscf/d).
  • Optional — cumulative production; bottomhole / tubing pressure for VP-DCA; reservoir pressure + cumulative gas for P/Z.
  • Mapping — the importer suggests column roles; you can override before commit.

Cleaning defaults

  • Shut-ins — near-zero rate months are filtered from the fit window (shown in the import summary).
  • Ramp skip — early ramp-up months can be excluded so the decline stem starts after peak.
  • Fit window — optional start/end bounds so workovers or late-life noise do not dominate the regression.

Which tool should I use?

Situation Tool Tier
Day-to-day oil or gas rate–time DCA Smart Auto-Fit (oil or gas) Field+
Oil and gas columns on one well Dual-phase Smart Fit Field+
Volumetric gas with pressure + Gp P/Z material balance Field+
Varying flowing pressure / Pwf history Variable-Pressure DCA Engineer
Type-curve match / drainage screening Fetkovich type curves Engineer
Clear regime change in history Multi-segment Auto-Fit Engineer
NPV / IRR / break-even on the forecast Well economics + decks Engineer
Trying the product without your file Demo well / sample CSV Starter

2. Classical Arps Decline Models

The foundation of production decline analysis (Arps, 1945). These empirical rate–time models describe boundary-dominated flow. Petrolyt uses them for oil and gas Smart Fit, manual forecasts, and as the ranking set inside Variable-Pressure DCA.

Exponential Decline (b = 0)
Constant fractional decline. Common when pressure support keeps decline roughly steady.
$$q(t) = q_i \cdot e^{-D_i t}$$
Parameters: \(q_i\) = initial rate (bbl/d or Mscf/d), \(D_i\) = initial decline (1/month), \(t\) = time (months)
$$N_p(t) = \frac{q_i}{D_i}\left(1 - e^{-D_i t}\right)$$
Arps, J.J. 1945. "Analysis of Decline Curves." Transactions of the AIME, 160(1): 228-247.
Hyperbolic Decline (0 < b < 1)
Decline rate decreases over time. Most common primary-depletion oil model.
$$q(t) = \frac{q_i}{(1 + b \cdot D_i \cdot t)^{1/b}}$$
Parameters: \(q_i\), \(D_i\), \(b\) (hyperbolic exponent), \(t\)
$$N_p(t) = \frac{q_i^b}{D_i(1-b)}\left[q_i^{(1-b)} - q(t)^{(1-b)}\right]$$
Arps, J.J. 1945. "Analysis of Decline Curves." Transactions of the AIME, 160(1): 228-247.
Harmonic Decline (b = 1)
Special case of hyperbolic with \(b = 1\). Seen in some gravity-drainage and gas settings.
$$q(t) = \frac{q_i}{1 + D_i \cdot t}$$
$$N_p(t) = \frac{q_i}{D_i} \ln(1 + D_i \cdot t)$$
Arps, J.J. 1945. "Analysis of Decline Curves." Transactions of the AIME, 160(1): 228-247.

3. Modified Hyperbolic Model

Modified Hyperbolic Decline
Switches from hyperbolic to exponential once instantaneous decline reaches \(D_{min}\), limiting optimistic late-life EUR from high-\(b\) hyperbolic tails.
$$q(t) = \begin{cases} \dfrac{q_i}{(1 + b \cdot D_i \cdot t)^{1/b}} & \text{if } D(t) > D_{min} \\[12pt] q_{switch} \cdot e^{-D_{min}(t - t_{switch})} & \text{if } D(t) \leq D_{min} \end{cases}$$
Switch: \(t_{switch} = \dfrac{D_i - D_{min}}{b \cdot D_i \cdot D_{min}}\), where \(D(t) = \dfrac{D_i}{1 + b \cdot D_i \cdot t}\)
Robertson, S. 1988. "Generalized Hyperbolic Equation." SPE-18731-MS.

4. Unconventional & Tight Reservoir Models

These forms target shale / tight wells where transient linear or bilinear flow can make classical Arps alone a poor early-time description.

Power Law Exponential (PLE) — Smart Fit
Ilk et al. (2008) form used by Smart Fit, gas DCA, and VP-DCA. Instantaneous decline \(D(t)=D_{\infty}+D_1 t^{-n}\) integrates to a bounded EUR.
$$q(t) = q_i \cdot \exp\left[-D_{\infty} t - \frac{D_1}{1-n} t^{1-n}\right] \quad (n \neq 1)$$
Parameters: \(q_i\) = initial rate, \(D_1\) = early-time loss-ratio coefficient, \(D_{\infty}\) = terminal decline, \(n\) = time exponent (typically 0.3–0.8)
Product note: The legacy decline calculator and file-upload auto-fit use this same Ilk 4-parameter form as Smart Fit (no separate cutoff variant).
Ilk, D., Rushing, J.A., Perego, A.D., and Blasingame, T.A. 2008. SPE-116731-MS.
Stretched Exponential (SEPD)
Superposition of exponentials with different time constants — useful for heterogeneous fracture networks.
$$q(t) = q_i \cdot \exp\left[-\left(\frac{t}{\tau}\right)^n\right]$$
$$N_p(\infty) = \frac{q_i \cdot \tau}{n} \cdot \Gamma\left(\frac{1}{n}\right)$$
Valko, P.P. and Lee, W.J. 2010. SPE-134231-MS.
Duong Rate-Decline Model
Fracture-dominated shale form based on a power-law rate–cumulative relationship. Requires \(m \ge 1\); the \(m = 1\) case uses the analytic limit \(q(t)=q_1\,t^{-(1+a)}\).
$$q(t) = q_1 \cdot t^{-m} \cdot \exp\left[\frac{a}{1-m}\left(t^{1-m} - 1\right)\right] \quad (m \neq 1)$$
Typical ranges: \(a\) ≈ 1.0–2.5, \(m\) ≈ 1.0–1.3 for many shale plays.
Duong, A.N. 2011. SPE-137748-PA. SPE Reservoir Evaluation & Engineering, 14(3): 377-387.
Logistic Growth Analysis (LGA)
Logistic cumulative production with carrying capacity \(K\); rate is the time derivative. EUR is bounded by \(K\) as \(t \to \infty\).
$$q(t) = \frac{K \cdot a \cdot n \cdot t^{n-1}}{(a + t^n)^2}$$
$$N_p(t) = \frac{K \cdot t^n}{a + t^n}$$
Clark, A.J., Lake, L.W., and Patzek, T.W. 2011. SPE-144790-MS.

5. Gas DCA & P/Z Material Balance

Smart Auto-Fit (Gas) Field+
Same 8-model ranking as oil Smart Fit, applied to gas rate–time series. EUR reported in MMscf; economic limit in gas rate units.
P/Z Material Balance Field+
Straight-line volumetric gas material balance for OGIP screening when pressure and cumulative gas history are available.
$$\frac{P}{Z} = \frac{P_i}{Z_i}\left(1 - \frac{G_p}{G}\right)$$
Data required: reservoir (or well) pressure series and cumulative gas \(G_p\) at matching times. Gas gravity / temperature / Z-factor defaults are available in the UI when you do not supply custom PVT.
Method: Linear regression of \(P/Z\) vs \(G_p\); OGIP \(G\) from the zero-\(P/Z\) intercept. Abandonment pressure optional for recoverable estimate.
Craft, B.C., Hawkins, M., and Terry, R.E. — classical volumetric gas material balance.

6. VP-DCA, Type Curves & Multi-Segment

Variable-Pressure DCA Engineer
Transforms rate–time data with material-balance / superposition time and normalizes rates to a constant-pressure equivalent, then ranks all 8 decline models on the normalized series. Forecasts are de-normalized to an assumed future \(P_{wf}\). Gas VP-DCA uses real-gas pseudo-pressure \(m(p)=2\int p/(\mu Z)\,dp\) (Lee viscosity + DAK Z-factor).
Data required: production rate history plus flowing bottomhole (or tubing) pressure \(P_{wf}\) over the same months. Future constant \(P_{wf}\) is an input for the de-normalized forecast. Gas cases also use gas gravity / reservoir temperature for pseudo-pressure (UI defaults available).
SPE 218016 — Ruiz Maraggi, Walsh & Lake (time-superposition / variable-pressure framework).
Fetkovich Type Curves Engineer
Combined type-curve match for oil or gas. \(D_i\) and \(b\) (and EUR) are matched on the Arps BDF stem (\(t_{Dd} = D_i \cdot t\) with \(D_i\) in 1/day; also reported as 1/month via ×30.44). Transient \(r_e/r_w\) stems are approximate screening overlays only — not used for EUR — and are not digitized 1980 paper tables. Drainage-area / permeability screening needs \(\phi\), \(\mu\), \(c_t\) when estimating \(k\).
Fetkovich, M.J. 1980. "Decline Curve Analysis Using Type Curves." JPT.
Multi-Segment Auto-Fit Engineer
Auto-detected piecewise fit when a single stem is a poor description of the history — e.g. early transient then BDF. Arps segments are rate-continuous at switches; Duong / LGA segments scale \(q_1\) or \(K\) so the model rate matches at the boundary.

7. Diagnostics & Data QC Engineer

Beyond rate–time overlays, Engineer unlocks diagnostic views that help you judge whether a decline stem is appropriate before you trust EUR:

  • Bourdet-style derivative — pressure / rate diagnostic context for regime identification (paired with type-curve workflows).
  • Flow-regime identification — automatic hints for transient vs boundary-dominated segments to guide fit-window and multi-segment choices.
  • Data QC score — outlier flags and a quality score on uploaded history so dirty months are visible beside the fit.

Field includes a basic rate diagnostic plot. Full Bourdet / flow-regime / QC scoring is Engineer.

8. EUR, Uncertainty & Economics

Discrete monthly summation

Forecast EUR uses discrete monthly summation of predicted rate:

$$EUR = \sum_{t=1}^{T} q(t) \cdot \Delta t$$

with \(\Delta t = 30.44\) days/month (Petrolyt’s standard month length). Forecasts run until the economic limit rate, or the selected forecast horizon (commonly up to 360 months / 30 years in the product UI and API).

Economic limit

Life ends when rate falls below a user-set economic limit (typical defaults: about 5 STB/d oil or 50 Mscf/d gas — always editable). Optional price / royalty / opex inputs can derive a limit rate for economics workflows.

Uncertainty (Field+ full report)

Smart Fit reports can include Monte Carlo-style P90 / P50 / P10 EUR bands and residual diagnostics so fit quality is visible beside the headline number.

Economics Engineer

Screening cash-flow on the forecast production stream:

  • Metrics — NPV, IRR, payback, sensitivity tornado, and break-even helpers.
  • Economic decks — save reusable price / royalty / opex / discount-rate cases and apply them across wells.
  • Multi-phase revenue — when oil and gas (or condensate) streams are available, revenue can combine both under deck prices / yields rather than oil-only.
  • Exports — economics results can be included in engineer-facing PDF outputs alongside the DCA charts.

This is screening economics for decisions and decks — not a full corporate fiscal model or certified reserves booking workflow.

9. Validation & Scope

How we validate

Rate and cumulative formulas for each of the eight decline models are checked against the published equations (independent reference implementations and unit tests). Fit workflows, gas P/Z, VP-DCA transforms, and type-curve helpers are covered by automated regression tests in the codebase.

For the same parameters and month length, Petrolyt’s closed-form rates match the SPE equations closely. Month conventions, shut-in treatment, and optimizer defaults can still shift fitted EUR between tools — always compare under the same assumptions.

Topic Petrolyt Notes
Rate equations SPE publication forms (8 models) Same published SPE / industry DCA equation family used in Excel workflows
EUR method Discrete monthly × 30.44 d Common industry practice for monthly DCA
Auto-fit SciPy least-squares (L-M) Standard nonlinear regression
Data hygiene Messy CSV/Excel cleanup + fit window Core product differentiator vs spreadsheets
Out of scope No full RTA / nodal / maps / reserves suite Use a dedicated package when those workflows are required

Ready to run an analysis?

Starter includes 5 calculations/day and 3 wells. No credit card required.

Start Free