Skip to content

Decline Curve Analysis

Decline curve analysis (DCA) for all three flowing phases can be performed within whitson+, both automatically and manually. User-friendly, "drag-and-drop" curve-fitting functionality is also provided.

1. Input

The inputs for this analysis are:

  • DCA parameters (\(b\), \(a_i\), \(q_i\))
  • Start (day or month)
  • Total production period (years)
  • Limited Decline Rate (\(a_{lim}\) or \(d_{lim}\)). More info here.

The user can decide whether to lock in the start day and the DCA parameters, or if these should change freely during the curve fitting.

2. Theory

2.1 Fundamentals

The classical equation that provides that basis for this module is


\(q_i\) = initial flow rate
\(a_i\) = nominal decline rate at time zero
\(b\) = rate exponent
\(q(t)\) = flow rate at time t

Equation 1 is a three-parameter performance-matching equation. When the \(b\) is equal to zero, the flow rate decline is exponential, when \(b\) is 1, the rate decline is called harmonic, and when b is between zero and one, the rate decline is hyperbolic. Some general guidelines for b and how it relates to the description of the reservoir are provided below.

\(b\) value Context
0 Single-phase oil, or single-phase gas at high pressure
0.1-0.4 Solution gas drive
0.4-0.5 Single-phase gas flow
0.5-1 Layered reservoirs
>1 Infinite acting flow

2.1.1 Exponential Decline (b=0)

where \(N(\infty)\) is the ultimate cumulative production.

2.1.2 Hyperbolic Decline (0 < b < 1)

2.1.3 Harmonic Decline (b = 1)

2.1.4 Beyond Hyperbolic (b > 1)

2.2 DCA Summary

Type Decline Rate Producing Rate, q Elapsed Time, t Cum. Production, \(Q_{t}\)
Exponential \(a_t = ln(\frac{q_i}{q_t})/t\) \(q_ie^{-a_it}\) \(ln(\frac{q_i}{q_t})/a_i\) \(\frac{q_i-q_t}{a_i}\)
Hyperbolic \(\frac{a_i}{a_t} = (\frac{q_i}{q_t})^b\) \(q_i(1+ba_it)^{-1/b}\) \(\frac{(q_i/q_t)^b-1}{ba_i}\) \(\frac{q_i}{a_i(1-b)}(1-\frac{q_t}{q_i}^{1-b})\)
Harmonic \(\frac{a_i}{a_t} = \frac{q_i}{q_t}\) \(q_i(1+a_it)^{-1}\) \(\frac{(q_i-q_t)}{a_iq_t}\) \(\frac{q_i}{D_i}ln(\frac{q_i}{q_t})\)

where \(q_i\) is the initial production rate, \(q_t\) is the production rate at time t, \(a_i\) is the initial decline rate and \(a_t\) is the decline rate at time t.

2.3 Effective Decline

Nominal annual decline rate is denoted "a". The effective annual decline rate is denoted "d", with units %/yr. There are two common ways the industry converts annual decline into effective decline,

"Effective Hyperbolic Decline"

"Effective Exponential Decline"

Both of these properties can be converted back by the following equations


These numbers are mere conversions to and from \(a_{i}\) and should yield identical results irrespective of what is chosen. For most folks, it's mainly the matter of preference when it comes to what is communicated in terms of the final results.

The symbols for the different terms can vary somewhat from software to software, so here is a little overview for some handpicked softwares.

Name whitson+ ARIES Harmony PhdWin
Nominal annual decline rate \(a_{i}\) \(A_{i}\) \(a_{i}\) \(D_{i}\)
Effective hyperbolic annual decline rate \(d_{hyp}\) \(D_{b}\) \(d_{sec}\) \(D_{esi}\)
Effective exponential annual decline rate \(d_{exp}\) \(D_{h}\) \(d_{tan}\) \(D_{ei}\)
Rate exponent b n b b

2.4 Limited / Modified Decline

The limited decline rate begins when the hyperbolic decline curve transitions into an exponential decline curve at a specified limiting effective decline rate, \(d_{lim}\). The limiting effective decline rate is converted to a limiting nominal decline rate, \(a_{lim}\), and the following equations are applied:

When \(d_{tan}\) > \(d_{lim}\):

when \(d_{tan}\) <= \(d_{lim}\):


3. Autofit

The autofit algorithm finds the last segment of the data that is consecutively (continously) non-zero, and fits the DCA parameters to this part of the data only. A single or set of zero rates in the data is typically associated with a shut-in, in which re-initialization of the DCA fit should be performed.

3.1 Residual Function

The fitting routine uses the following residual function in the least square routine.

where \(r_i\) is the residual at time \(i\), \(w_i\) is the weight factor of time \(i\), \(t_0\) is the time index and q is the actual rate.

3.2 Default Bounds

Parameter Lower Bound Higher Bound Unit
\(q_i\) 0 10% higher than max observed q volume unit / time
\(a_i\) 0 10 /yr
\(b\) 0 4 -

3.3 Weighting factors

By default, all days have a weighting factor of 1, except from the days when q = 0, in which the weighting factor is 0.

4. Fit the DCA parameters to a physics based forecast

If a physics based forecast has been established for this well, an option to include this data will appear. This allows for physics-based, DCA forecasts.

5. Export

The results from the DCA feature can to be exported to:

  • Aries
  • ComboCurve
  • Excel
  • PHDWin
  • Mosaic
  • Val Nav

Note that the forecast in the export starts from the end of the uploaded historical data. Hence the best fit qi and decline parameters has to be recalculated for the end of history (as they change with time), as outlined here here.

5.1 Export to Aries

The following outlines how the ARIES export works with a specific example.

For an example well with these parameters.

  • qi = 51.7334 STB/d
  • d_lim = 5.0000 %/yr
  • b = 1.2
  • d_hyp = 43.7863 %/yr
  • Cutoff rate = 3.0 STB/d
  • forecast_time = 582.3934 months

There will be 4 cases, these are all shown assuming the parameters are for the oil phase, but the logic is equally applicable for gas and water.

Case 1 - well reaches cutoff rate before d_lim, the ARIES export would look like this:

We have a single line which shows qi, cutoff rate, b and d

 CUMS 80.1645 0.4055 780.3532
 START 03/2022
 OIL 51.7334 3.0 B/D X MOS B/1.2 43.7863

Case 2 - well reaches cutoff rate after d_lim but before end of forecast period, the ARIES export would look like this:

We have two lines as before, only difference being that instead of putting the period of 582 months (or any number for the case), we put X

 CUMS 80.1645 0.4055 780.3532
 START 03/2022
 OIL 51.7334 X B/D 5.0000 EXP B/1.2 43.7863
 " X 3.0 B/D X MOS EXP 5.0000

Case 3 - well reaches d_lim and does not reach cut off rate until the end of the forecast period, the ARIES export would look like this:

 CUMS 80.1645 0.4055 780.3532
 START 03/2022
 OIL 51.7334 X B/D 5.0000 EXP B/1.2 43.7863
 " X X B/D 582.3934 MOS EXP 5.0000

Case 4 - d_hyp is lower than d_lim:

In addition to these 3 main cases, there is an exceptional case in which d_hyp < d_lim, for example if in the case presented above d_hyp was 3.2561 %/yr instead 43.7863 %/yr. The export to Aries would look as follows.

Case 4a - If cutoff rate is not reached before end of forecast period:

  CUMS 80.1645 0.4055 780.3532
  START 03/2022
  OIL 51.7334 X B/D 582.3934 MOS EXP 3.2561

Case 4b - If cutoff rate is reached before end of forecast period:

  CUMS 80.1645 0.4055 780.3532
  START 03/2022
  OIL 51.7334 3.0 B/D X MOS EXP 3.2561