Production Forecasting Functions
Decline curve analysis, decline diagnostics and field production profiles.
83 functions
PO.DCA.Arps.Rate
Calculates rate using Arps (1945) decline curve, [L3/T]. Units of volume [L3] and time [T] must be consistent. Use b=0 for exponential, 0<b<1 for hyperbolic, b=1 for harmonic.
PO.DCA.Arps.Prod
Calculates cumulative production using Arps (1945) decline curve, [L3]. Units of volume [L3] and time [T] must be consistent. Use b=0 for exponential, 0<b<1 for hyperbolic, b=1 for harmonic.
PO.DCA.Arps.Time
Time to reach an economic rate limit for Arps decline, [T]. Returns the time when the production rate falls to the specified economic limit.
PO.DCA.Arps.EUR
Estimated Ultimate Recovery (EUR) to an economic rate limit for Arps decline, [L3]. Returns cumulative production up to the time the rate reaches the economic limit.
PO.DCA.Arps.Fit
Fit Arps decline to rate-time data and return parameters as a row array [Qi, Di, b].
PO.DCA.Arps.WFit
Fit Arps decline to rate-time data with weights and return parameters as a row array [Qi, Di, b].
PO.DCA.ModHyp.Rate
Calculates rate using modified hyperbolic production decline curve. Units of volume [L3] and time [T] must be consistent.
PO.DCA.ModHyp.Prod
Calculates cumulative production using modified hyperbolic production decline curve. Units of volume [L3] and time [T] must be consistent.
PO.DCA.ModHyp.Time
Time to reach an economic rate limit for modified hyperbolic decline, [T]. Returns the time when the production rate falls to the specified economic limit.
PO.DCA.ModHyp.EUR
Estimated Ultimate Recovery (EUR) to an economic rate limit for modified hyperbolic decline, [L3]. Returns cumulative production up to the time the rate reaches the economic limit.
PO.DCA.ModHyp.Fit
Fit Modified Hyperbolic decline to rate-time data and return parameters as a row array [Qi, Di, Dlim, b].
PO.DCA.ModHyp.WFit
Weighted fit of Modified Hyperbolic decline to rate-time data and return parameters as a row array [Qi, Di, Dlim, b].
PO.DCA.THM.Rate
Calculates production rate using Transient Hyperbolic Model. Units of volume [L3] and time [T] must be consistent.
PO.DCA.THM.Prod
Calculates cumulative production using Transient Hyperbolic Model. Units of volume [L3] and time [T] must be consistent.
PO.DCA.THM.Time
Time to reach an economic rate limit for Transient Hyperbolic Model, [T].
PO.DCA.THM.EUR
Estimated Ultimate Recovery (EUR) to an economic rate limit for Transient Hyperbolic Model, [L3].
PO.DCA.THM.Fit
Fit Transient Hyperbolic Model to rate-time data and return parameters as a row array [Qi, Di, bi, bf, telf].
PO.DCA.THM.WFit
Weighted fit of Transient Hyperbolic Model to rate-time data and return parameters as a row array [Qi, Di, bi, bf, telf].
PO.DCA.PLE.Rate
Calculates production rate using Power Law Exponential (PLE) rate decline model. Units of volume [L3] and time [T] must be consistent.
PO.DCA.PLE.Prod
Calculates cumulative production using Power Law Exponential (PLE) rate decline model. Units of volume [L3] and time [T] must be consistent.
PO.DCA.PLE.Time
Time to reach an economic rate limit for Power Law Exponential (PLE) decline, [T]. Returns the time when the production rate falls to the specified economic limit.
PO.DCA.PLE.EUR
Estimated Ultimate Recovery (EUR) to an economic rate limit for Power Law Exponential (PLE) decline, [L3]. Returns cumulative production up to the time the rate reaches the economic limit.
PO.DCA.PLE.Fit
Fit Power Law Exponential (PLE) decline to rate-time data and return parameters as a row array [Qi_intercept, Di_intercept, D_inf, n].
PO.DCA.PLE.WFit
Weighted fit of Power Law Exponential (PLE) decline to rate-time data and return parameters as a row array [Qi_intercept, Di_intercept, D_inf, n].
PO.DCA.SEDM.Rate
Calculates production rate using Stretched Exponential decline model. Units of volume [L3] and time [T] must be consistent.
PO.DCA.SEDM.Prod
Calculates cumulative production using Stretched Exponential decline model. Units of volume [L3] and time [T] must be consistent.
PO.DCA.SEDM.Time
Time to reach an economic rate limit for Stretched Exponential decline, [T].
PO.DCA.SEDM.EUR
Estimated Ultimate Recovery (EUR) to an economic rate limit for Stretched Exponential decline, [L3].
PO.DCA.SEDM.Fit
Fit Stretched Exponential decline to rate-time data and return parameters as a row array [Qi, Tau, N].
PO.DCA.SEDM.WFit
Weighted fit of Stretched Exponential decline to rate-time data and return parameters as a row array [Qi, Tau, N].
PO.DCA.EEDM.Rate
Calculates production rate using Extended Exponential Decline Model (EEDM). Units of volume [L3] and time [T] must be consistent.
PO.DCA.EEDM.Prod
Calculates cumulative production using Extended Exponential Decline Model (EEDM). Units of volume [L3] and time [T] must be consistent.
PO.DCA.EEDM.Time
Time to reach an economic rate limit for Extended Exponential Decline Model (EEDM), [T].
PO.DCA.EEDM.EUR
Estimated Ultimate Recovery (EUR) for Extended Exponential Decline Model (EEDM). Returns Q0/BetaL (approximate EUR based on terminal decline), [L3].
PO.DCA.EEDM.Fit
Fit Extended Exponential Decline Model (EEDM) to rate-time data and return parameters as a row array [Q0, BetaL, BetaE, n].
PO.DCA.EEDM.WFit
Weighted fit of Extended Exponential Decline Model (EEDM) to rate-time data and return parameters as a row array [Q0, BetaL, BetaE, n].
PO.DCA.Duong.Rate
Calculates rate using Duong decline model, [L3/T]. Units of volume [L3] and time [T] must be consistent.
PO.DCA.Duong.Prod
Calculates cumulative production using Duong decline model, [L3]. Units of volume [L3] and time [T] must be consistent.
PO.DCA.Duong.Time
Time to reach an economic rate limit for Duong decline, [T]. Returns the time when the rate falls to the specified limit.
PO.DCA.Duong.EUR
Estimated Ultimate Recovery (EUR) to an economic rate limit for Duong decline, [L3].
PO.DCA.Duong.Fit
Fit Duong decline to rate-time data and return parameters as a row array [q1, qInf, a, m].
PO.DCA.Duong.WFit
Weighted fit of Duong decline to rate-time data and return parameters as a row array [q1, qInf, a, m].
PO.DCA.LGM.Rate
Calculates production rate using Logistic Growth Model (LGM). Units of volume [L3] and time [T] must be consistent.
PO.DCA.LGM.Prod
Calculates cumulative production using Logistic Growth Model (LGM). Units of volume [L3] and time [T] must be consistent.
PO.DCA.LGM.Time
Time to reach an economic rate limit for Logistic Growth Model (LGM), [T].
PO.DCA.LGM.EUR
Estimated Ultimate Recovery (EUR) for Logistic Growth Model (LGM). Returns K (carrying capacity), [L3].
PO.DCA.LGM.Fit
Fit Logistic Growth Model (LGM) to rate-time data and return parameters as a row array [K, a, n].
PO.DCA.LGM.WFit
Weighted fit of Logistic Growth Model (LGM) to rate-time data and return parameters as a row array [K, a, n].
PO.DCA.AKB.Rate
Calculates production rate using Ansah-Knowles-Buba (2000) semi-analytical decline model for bounded reservoirs. Units of volume [L3] and time [T] must be consistent.
PO.DCA.AKB.Prod
Calculates cumulative production using Ansah-Knowles-Buba (2000) semi-analytical decline model for bounded reservoirs. Units of volume [L3] and time [T] must be consistent.
PO.DCA.AKB.Time
Time to reach an economic rate limit for Ansah-Knowles-Buba (2000) decline, [T]. Returns the time when the production rate falls to the specified economic limit.
PO.DCA.AKB.EUR
Estimated Ultimate Recovery (EUR) to an economic rate limit for Ansah-Knowles-Buba (2000) decline, [L3]. Returns cumulative production up to the time the rate reaches the economic limit.
PO.DCA.AKB.Fit
Fit Ansah-Knowles-Buba (2000) decline to rate-time data and return parameters as a row array [Qi, Alpha, Beta].
PO.DCA.AKB.WFit
Weighted fit of Ansah-Knowles-Buba (2000) decline to rate-time data and return parameters as a row array [Qi, Alpha, Beta].
PO.DCA.Diag.Bourdet
Calculates the Bourdet (smoothed) derivative at point t. Used for flow regime identification and production diagnostics.
PO.DCA.Diag.Beta
Computes the beta diagnostic β = t×D(t) for flow regime identification. β≈0.5: linear flow, β≈0.25: bilinear, β≈1.0: boundary-dominated.
PO.DCA.Diag.bParam
Computes the time-varying Arps b-parameter. b=0: exponential, 0<b<1: hyperbolic, b=1: harmonic, b>1: transient (unconventional).
PO.DCA.Arps.D
Calculates instantaneous decline rate D(t) for Arps decline, [1/T]. D(t) = Di/(1+b×Di×t). Computed numerically.
PO.DCA.ModHyp.D
Calculates instantaneous decline rate D(t) for Modified Hyperbolic decline, [1/T]. Computed numerically.
PO.DCA.PLE.D
Calculates instantaneous decline rate D(t) for Power Law Exponential (PLE) model, [1/T]. D(t) = D∞ + n×Di0×t^(n-1). Computed numerically.
PO.DCA.SEDM.D
Calculates instantaneous decline rate D(t) for Stretched Exponential model, [1/T]. D(t) = (n/τ)×(t/τ)^(n-1). Computed numerically.
PO.DCA.EEDM.D
Calculates instantaneous decline rate D(t) for Extended Exponential Decline Model (EEDM), [1/T]. Computed analytically.
PO.DCA.Duong.D
Calculates instantaneous decline rate D(t) for Duong model, [1/T]. Computed numerically.
PO.DCA.LGM.D
Calculates instantaneous decline rate D(t) for Logistic Growth Model (LGM), [1/T]. Computed analytically.
PO.DCA.THM.D
Calculates instantaneous decline rate D(t) for Transient Hyperbolic Model, [1/T]. Computed analytically.
PO.DCA.AKB.D
Calculates instantaneous decline rate D(t) for Ansah-Knowles-Buba (2000) decline, [1/T]. Computed numerically.
PO.DCA.Convert.NominalToEffective
Converts nominal (continuous) decline rate to effective (periodic) decline rate. De = 1 - exp(-Dn).
PO.DCA.Convert.EffectiveToNominal
Converts effective (periodic) decline rate to nominal (continuous) decline rate. Dn = -ln(1 - De).
PO.DCA.Convert.AnnualToMonthly
Converts annual effective decline rate to monthly effective decline rate using compound conversion.
PO.DCA.Convert.MonthlyToAnnual
Converts monthly effective decline rate to annual effective decline rate using compound conversion.
PO.DCA.Convert.DailyToAnnual
Converts daily effective decline rate to annual effective decline rate using compound conversion.
PO.DCA.Data.OutlierFlag
Flags outliers using rolling window Z-score analysis. Returns TRUE for data points that are outliers based on local statistics.
PO.DCA.Data.Clean
Cleans production data by interpolating over outlier points. Returns cleaned rate array with outliers replaced by interpolated values.
PO.Stats.SSE
Computes the sum of squared errors (SSE) between observed and predicted rate sequences. Returns a scalar value.
PO.Stats.WSSE
Computes the weighted SSE between observed and predicted sequences.
PO.Stats.LogSSE
Computes the sum of squared errors (SSE) in log-space between observed and predicted rate sequences. Small positive epsilon added before taking logs to avoid log(0).
PO.Stats.WLogSSE
Computes the weighted log-space SSE between observed and predicted sequences. Small positive epsilon added before taking logs to avoid log(0).
PO.Stats.RMSE
Computes the root mean squared error (RMSE) between observed and predicted sequences. RMSE = sqrt(SSE/n).
PO.Stats.R2
Computes the coefficient of determination (R²) between observed and predicted sequences. R² = 1 - SSE/TSS. Returns 1.0 for perfect fit.
PO.FPP.Field.Rate
Calculates field production rate at time t using buildup-plateau-decline model. Linear ramp during buildup, constant rate during plateau, Arps decline after. Supports exponential (b=0), hyperbolic (0<b<1), and harmonic (b=1) decline.
PO.FPP.Field.Prod
Calculates cumulative field production at time t using buildup-plateau-decline model. Integrates rate over buildup, plateau, and decline phases. Supports exponential (b=0), hyperbolic (0<b<1), and harmonic (b=1) decline.
PO.FPP.Sched.Rate
Calculates aggregated field rate from drilling schedule. Uses convolution of well profile with drilling schedule.
PO.FPP.Sched.Prod
Calculates cumulative field production from drilling schedule. Uses trapezoidal integration of aggregated rate profile.