Forecast Segment Calculation

Forcast Segment Calculation

Segments

Exp Decline

  • segmentType: “exp_dec”
  • startDate: user-defined
  • endDate: user-defined
  • diNominal: user-defined
  • diEff: f_{exp\_D\_to\_dEff}(diNominal)
  • qStart: user-defined
  • qEnd: f_{exp}(qStart,\ diNominal,\ startDate,\ endDate)
  • slope: -1

Exp Incline

  • segmentType: “exp_dec”
  • startDate: user-defined
  • endDate: user-defined
  • diNominal: userdiNominalefined
  • diEff: f_{exp\_D\_to\_diEff}(diNominal)
  • qStart: user-defined
  • qEnd: f_{exp}(qStart,\ diNominal,\ startDate,\ endDate)
  • slope: 1

Arps Decline

  • segmentType: “arps”
  • diNominal: user-defined
  • diEff: f_{arps\_D\_to\_diEff}(diNominal,\ b)
  • b: user-defined
  • startDate: user-defined
  • endDate: user-defined
  • qStart: user-defined
  • qEnd: f_{arps}(qStart,\ diNominal,\ b,\ startDate)
  • slope: -1

Arps Incline

  • segmentType: “arps”
  • diNominal: user-defined
  • diEff: f_{arps\_D\_to\_diEff}(diNominal,\ b)
  • b: user-defined
  • startDate: user-defined
  • endDate: user-defined
  • qStart: user-defined
  • qEnd: f_{arps}(qStart,\ diNominal,\ b,\ startDate)
  • slope: 1

Arps Modified

  • segmentType: ‘arps_modified’

  • startDate: user-defined

  • endDate: user-defined

  • qStart: user-defined

  • qEnd: f_{exp}(qSw,\ diNominalExp,\ startDate,\ endDate)

  • slope: -1

  • diEff: f_{arps\_D\_to\_diEff}(diNominal,\ b)

  • diNominal: user-defined

  • b: user-defined

  • targetDSwEffSec: user-defined

  • realizedDSwEffSec: diNominalExpEff

  • swDate: f_{get\_sw\_date}(startDate,\ b,\ diNominal,\ targetDSwEffSec)

  • qSw: f_{arps}(qStart,\ diNominal,\ b,\ startDate,\ swDate)

  • diNominalExp: f_{get\_D\_exp\_arps\_modified}(startDate, b, diNominal, realizedDSwEffSec)

  • diNominalExpEff: f_{exp\_D\_to\_Dieff}(diNominalExp)

Linear

  • segmentType: linear
  • slope: user-defined
  • k: user-defined

Flat

  • segmentType: flat
  • slope: 0
  • c: user-defined

Functions

Predict Exponential

f_{exp}(q_{start},\ D_{exp},\ t_{start},\ t)=q_{start}e^{-D_{exp}\left(t-t_{start}\right)}

Exp D to D Effective

f_{exp\_D\_to\_diEff}(D)=1-e^{-365.25D\ }

Predict Arps

f_{arps}(q_{start},\ D,\ b,\ t_{start},\ t)=\frac{q_{start}}{\left(1+Db\left(t-t_{start}\right)\right)^{\frac{1}{b}}}

Arps D to D Effective

f_{arps\_D\_to\_diEff}(D,\ b)=1-(1+365.25Db)^{-\frac{1}{b}}

Get Switch Index

f_{get\_sw\_date}(t_{start},\ b,\ D,\ D_{target\_eff\_sw})=\begin{cases}D_{target\_eff\_sw} = 0 & t_{start} + 300000 \\ f_{exp\_D\_from\_Dieff}(D_{target\_eff\_sw}) >= D & t_{start} \\ f_{exp\_D\_from\_Dieff}(D_{target\_eff\_sw}) >= D & f_{arps\_get\_date\_from\_D\_new}(t_{start}, D,\ D_{new},\ b) \\ \end{cases}

Get D (Exponential Portion) for Modified Arps

f_{get\_D\_exp\_arps\_modified}(t_{start},\ b,\ D,\ D_{target\_eff\_sw})=\begin{cases}D_{target\_eff\_sw} = 0 & 0 \\ f_{exp\_D\_from\_Deff}(D_{target\_eff\_sw}) >= D & D \\ f_{exp\_D\_from\_Deff}(D_{target\_eff\_sw}) < D & f_{exp\_D\_from\_Deff}(D_{target\_eff\_sw}) \\ \end{cases}

Get index from new D (Arps)

f_{arps\_get\_date\_from\_D\_new}(t_{start}, D,\ D_{new},\ b)=\frac{(\frac{D}{D_{new}})-1}{bD}t_{start}

Exp D Nominal From D Effective

f_{exp\_D\_from\_Dieff}(Di_{eff})=-\frac{\ln(1-Di_{eff})}{365.25}

Predict linear

f_{linear}(t,\ slope,\ k)=slope * t + k

Predict flat

f_{linear}(t,\ slope,\ k)=slope * t + k

Example: Recalculate qStart and diNominal Parameters for Arps Model for Change in startDate

Given an Arps Segment with the parameters q_{start} D b and t_{start}. Calculate a new q_{start'} and D' when t_{start} is changed to t_{start'} such that:

f_{arps}(q_{start},\ D,\ b,\ t_{start}, t) = f_{arps}(q_{start'},\ D',\ b,\ t_{start'}, t)

Calculating a q_{start'} is simple since it’s just substituting t_{start'} for t in the original arps prediction function.

\boxed{q_{start'} = f_{arps}(q_{start},\ D,\ b,\ t_{start'}, t)}

Calculating D' is more involved since changing D changes the vertical asymptote of the arps equation. To set the above equations equal to each other the following limits must be set equal to each other.

f_{-1arps}(q_{start},\ D,\ b,\ t_{start}, t) = f_{-1arps}(q_{start'},\ D',\ b,\ t_{start'}, t)

f_{arps}(q_{start},\ D,\ b,\ t_{start}, Q) = f_{arps}(q_{start'},\ D',\ b,\ t_{start'}, Q)

lim_{Q\to\infty} \frac{q_{start'}}{\left(1+D'b\left(Q-t_{start'}\right)\right)^{\frac{1}{b}}} = lim_{Q\to\infty}\frac{q_{start}}{\left(1+Db\left(Q-t_{start}\right)\right)^{\frac{1}{b}}}

\frac{-1}{bD'} + t_{start'} = \frac{-1}{bD} + t_{start}

\boxed{D' = \frac{D}{1-bD(t_{start}-t_{start'})}}

2 Likes