Settings
settings reference for the productivity index (pi) based forecast one set of settings covers oil, gas, and gas condensate wells — the model handles the phases internally every field on the forecast settings input is documented here, grouped the way the input groups them defaults are tuned to work across a wide range of wells; most wells never need any changed, but each entry explains what the setting does and when you'd reach for it what this model does the pi based forecast projects a well's future daily rates from three fitted ingredients productivity index — how much the well produces per unit of drawdown, and how that capability declines with time flowing bottomhole pressure (bhp) — the operating pressure trajectory the well will be produced against water cut (liquid producing wells) — how the liquid stream splits into oil and water each ingredient is fitted to the well's own history over a training window, then extended into the future combined with the average reservoir pressure decline from the dynamic drainage volume (ddv) model, they yield rate forecasts per phase falling reservoir pressure and pi pull rates down, while the bhp profile sets how hard the well is being drawn down this structure is also what makes the model useful for what if work — hold the well's fitted character constant and change only the future bhp profile to see the rate response training window the training window is the slice of history every fit learns from it ends at one shared day; each individual fit can additionally choose to start later auto determine training end day ( autodeterminetrainendday , default on) — with the default, training ends on the last day of actual production, so the forecast always launches from where the well is today turn it off only when you deliberately want to stop training earlier training end day ( trainendday , default 0) — the explicit end of the training window, used only when auto determine is off the main use is validation end training 90 days in the past, forecast those 90 days, and compare the forecast against what actually happened for that, set it to the well's elapsed time minus the forecast period productivity index fit the pi fit is the heart of the model it captures the well's declining ability to deliver rate per psi of drawdown training start day ( trainstartday , default 0) — the first day of history included in the pi fit raise it to exclude early life behavior that no longer represents the well — cleanup, ramp up, or a pre workover era you'd rather the forecast not learn from (if the history has several distinct eras, multi segmentation below handles that automatically ) fit method ( fitmethod , default arps ) — how the pi trend is fitted currently the decline curve (arps) fit is the only supported method arps fit settings ( arpsfitsettings ) — min / base (starting guess) / max bounds for the pi decline fit yimin / yibase / yimax (magnitude at time zero), logdimin / logdibase / logdimax (early decline speed), bmin / bbase / bmax (curvature), and switchpercent (decline level forcing a hyperbolic to exponential transition; 0 = none) the magnitude terms are automatically re scaled to each well's own pi level, so these defaults transfer across wells of very different sizes and rarely need changing as with all bounded fits a fitted parameter sitting exactly on its min or max means the bound is binding — widen that one wall, not several tail percent ( tailpercent , default 20) and tail weight ( tailweight , default 4) — the fit deliberately weights recent data more heavily than old data, because the forecast launches from where the well is now tail percent defines how much of the end of the training set counts as "recent"; tail weight is how many times more each of those recent points counts example the fit tracks the well's two year average nicely but misses the steeper decline of the last three months, so the forecast starts too high — shorten the tail percent or raise the weight to anchor harder on the recent trend if instead recent data is erratic (measurement problems, unstable operation), do the opposite interference fit adjust ( interferencefitadjust , default off) and interference filter points ( interferencefilterpoints , default 5 days) — when the adjust switch is on, the most recent n days at the end of the fit window are excluded from the pi fit use it when the last few days are distorted by a known transient — an offset frac hit, a recent shut in recovery — so the fit launches from the well's settled trend rather than the disturbance error threshold ( errorthreshold , default 0 6) — a quality gate on the pi fit when residual error indicates the fit came out biased (systematically above or below the data), the model automatically corrects it; this threshold sets how much error triggers the correction lower it to correct more readily, raise it to leave marginal fits alone multi segmentation a well's pi history often has distinct eras — before and after a workover, a choke policy change, the arrival of offset production fitting one trend through all of them blends eras that shouldn't be blended when enabled, the model searches the training window for the points where behavior genuinely changed, and fits the pi trend per era so the forecast launches from the well's current era use multi segmentation ( usemultisegmentation , default on) — master switch turn it off to force a single fit over the whole training window — appropriate for a well with one long, uneventful decline minimal segment length ( minimalsegmentlength , default 60 days) — the shortest era the model will accept this is the main guard against splitting on noise any candidate era shorter than this is rejected outright raise it if the model fragments a well's history into implausibly short pieces; lower it (with care) for wells where real regime changes genuinely happen fast start point ( startpoint , default 0) — the day within the training window where the search for behavior changes begins leave at 0 unless you want early history exempted from segmentation step size ( stepsize , default 5 days) — the granularity of the search for change points smaller steps locate a change more precisely at more compute cost; 5 days resolves a workover date comfortably maximal number of breakpoints ( maximalnumberofbreakpoints , default 4) — an upper limit on how many behavior changes the model may accept, capping the history at that many eras plus one threshold proportion ( thresholdproportion , default 0 3) — how different two adjacent candidate eras must be before the model accepts a split, as a relative divergence (0 3 ≈ 30%) this is the sensitivity dial raise it if the model splits on ordinary noise; lower it if a change you can see on the plot (say, a clear post workover pi uplift) is not being detected lambda ( lambda , default 0) — an escalating penalty each accepted split raises the bar for the next one by this amount zero means every split faces the same threshold set it above zero if the model finds one legitimate era change and then keeps slicing the remainder bottomhole pressure fit fits the well's historical flowing bhp trend — the raw material for the automatic pressure forecast below training start day ( trainstartday , default 0) — first day of history included in the pressure fit useful independently of the pi fit's start day for example, exclude a pre esp era whose pressures say nothing about how the well is operated now fit method ( fitmethod , default arps ) — decline curve fit, or history to use historical values directly arps fit settings ( arpsfitsettings ) — same min / base / max structure as the pi fit, but here the magnitude terms are in psi (defaults bound the time zero pressure between 1,000 and 8,000 psi, starting at 4,000) if your field's flowing pressures live outside that band — very deep, very overpressured, or very depleted — widen the magnitude bounds accordingly; this is one of the few fit bound changes that is routinely legitimate tail percent ( tailpercent , default 10) and tail weight ( tailweight , default 20) — same recency weighting mechanism as the pi fit, tuned much more aggressively by default (a short tail, weighted heavily) the pressure forecast must launch from the well's current operating pressure, not its historical average bottomhole pressure forecast turns the fitted pressure trend into the future bhp profile the forecast will be produced against auto generate bhp forecast ( autogeneratepwfforecast , default on) — with the default, the model builds the future pressure profile itself using the method below turn it off when you are supplying the profile yourself (sensitivity work with a custom profile, or replaying a fitted profile without forecasting) forecast method for bhp ( forecastsettings forecastmethodpwf , default arps ) arps — extend the fitted pressure trend forward the default, and what you want for a well expected to keep operating as it has requires the bhp fit method above to also be arps custom — produce against a pressure profile you supply, one value per forecast day (see pressure sensitivity below) the what if mode "what do rates look like if we drop flowing pressure 200 psi?" history — replay the well's own recorded pressures over the forecast window (hindcasting) only valid when training ends before the last day of data, since the "future" pressures must already exist; used for validation minimum bhp ( minimumpwf , default 100 psi) — a hard floor applied to the forecast pressure profile an extended decline trend left alone will eventually march below anything achievable; the floor keeps the forecast on physically producible ground set it to the well's real operating limit — for instance, the practical suction pressure of the artificial lift system — if that's meaningfully different from the default switch percent ( switchpercent , default 0) — the decline level at which the extended pressure trend transitions from hyperbolic to exponential behavior zero means no forced transition setting it is the standard remedy when a hyperbolic extension stays unrealistically flat far into the future bhp forecast adjust ( pwfforecastadjust , default on) — aligns the start of the pressure forecast with the well's recent actual pressures so the forecast doesn't open with a step change leave on except when diagnosing the raw fitted trend hindcast substitute pressures ( pwfhindcastsubstitute , default empty) — an optional list of known pressures, one per day from the forecast start, that replace the beginning of the generated pressure forecast; the remainder is shifted to connect smoothly with the substituted values example the forecast nominally starts 30 days ago and you have the actual measured bhps for those 30 days — supply them here so the model honors what really happened and only genuinely forecasts from day 31 pressure sensitivity custom bhp profile ( pwfsensitivity pwfforecastarray , default empty) — the list of daily bottomhole pressures used when the bhp forecast method is custom its length sets the forecast period, overriding the forecast period setting this is the main lever for drawdown sensitivities run the same well against two or three alternative pressure profiles and compare the rate responses switch percent ( pwfsensitivity switchpercent , default 0) — the hyperbolic to exponential transition control applied to the pressure fit in sensitivity runs (when the profile is supplied manually rather than auto generated) water cut fit applies to liquid producing wells the fitted water cut trend splits the forecast liquid stream into oil and water training start day ( trainstartday , default 0) — first day of history in the water cut fit exclude early history if water cut behavior changed character — for example, before water breakthrough, when the trend carried no information about today's water drive tail percent ( tailpercent , default 15) and minimum tail length ( minimumtaillength , default 60 days) — how much recent history anchors the water cut trend the minimum tail length guarantees a floor of recent days even on short histories, so the anchor never shrinks to a handful of points a well whose water cut is climbing fast deserves a heavier recent anchor; a noisy allocation stream deserves a longer, gentler one reservoir pressure input average reservoir pressure fit ( pavgarpsfit yi , logdi , b , defaults 0) — the fitted average reservoir pressure decline the forecast produces against left at defaults, the model uses the ddv model's results automatically — this is the coupling point between the two models supplying values here overrides the ddv results the escape hatch when ddv hasn't run for a well, or when you deliberately want to forecast against a different pressure decline than ddv found forecast forecast period ( forecastsettings forecastperiod , default 90 days) — how far beyond the training end to forecast overridden by the length of a custom bhp profile when one is supplied the model's fits are anchored to current behavior, so treat long horizons with proportionate skepticism forecast method for pi ( forecastsettings forecastmethodpi , default arps ) — how the pi trend is extended arps extends the fit forward; history replays historical values (validation/hindcasting) pi forecast switch percent ( piforecastswitchpercent , default 0) — the decline level at which the extended pi trend transitions from hyperbolic to exponential zero means no forced transition; set it when the extended pi trend flattens unrealistically at long times adjust oil forecast rates ( forecastsettings adjustoilforecastrates , default on) and oil forecast shift method ( forecastsettings oilforecastshiftmethod , default pi oil ) — anchors the opening of the oil forecast to the well's recent behavior so it doesn't start with a step change off the last produced rate the method chooses the anchor pi oil (default) — anchor to the oil rate implied by the well's fitted productivity and pressures consistent with the model's own physics; the right choice when recent measured rates are noisy actual — anchor to the well's recent actual oil rates the right choice when you trust the meters more than the fit the adjustment is safeguarded it is skipped if it would push oil above the liquid rate, and rates are floored at zero shut in days are never shifted number of reference points, oil shift ( forecastsettings numberpointsreferenceoilshift , default 5) — how many recent producing days define the anchor for the oil adjustment more points make the anchor steadier; fewer make it more current adjust gas forecast rates ( forecastsettings adjustgasforecastrates , default on) and number of reference points, gas shift ( forecastsettings numberpointsreferencegasshift , default 5) — the same anchoring mechanism applied to the gas forecast