Independent Phase Forecasting
The Secondary phase (gas when oil is primary, or oil when gas is primary) and the Water phase can now be forecast independently from the primary phase, each with its own method, decline model and parameter set. This lets you mix, for example, a Modified Hyperbolic decline on the primary phase with a GOR mathematical trend on the secondary phase and a WOR projection on the water phase, all in the same forecast.
Location: Analysis → Forecasting in four flows: Multi-Well DCA, Single-Well DCA, Type Well (User defined) and Type Well (From statistics).
1. Quick concepts
| Term | What it means |
|---|---|
| Primary phase | The phase the DCA fits first — oil or gas (chosen at the top of the form). |
| Secondary phase | The other hydrocarbon phase. If primary is oil, secondary is gas; if primary is gas, secondary is oil. Can be forecast via DCA Models, GOR or CGR. |
| Water phase | Always water. Can be forecast via Water cut, DCA Models or WOR — or skipped entirely. |
| Forecast method | The high-level strategy for a phase (DCA Models, GOR, CGR, Water cut, WOR). Selects which decline model and which parameters are shown below. |
| Decline model | The mathematical shape inside a method (Hyperbolic, Constant, Manual trend, Auto trend, etc.). |
The form is fully conditional — picking a method shows only the parameters that method needs, and picking a decline model inside that method narrows the parameters further. You never see fields that don’t apply to the choice you made.
2. Secondary phase
The Secondary phase block appears below the primary-phase DCA inputs in every flow. It is collapsed when the Forecast method is set to No secondary phase.
2.1 Forecast method
The top dropdown of the Secondary phase block selects the forecast method:
| Label | When to use |
|---|---|
| DCA Models | Fit a decline curve directly to the secondary-phase rate. Use when the secondary phase has a clear, well-behaved decline of its own. Available in Multi-Well, Single-Well and Type Well (User defined). |
| GOR | Project the gas-oil ratio with a mathematical model; the secondary rate is derived from primary rate × GOR. Use when you trust the primary forecast and want the secondary tied to it. Available in every flow. |
| CGR | Same idea as GOR but with the condensate-gas ratio. Use for gas-primary wells with condensate. Available in every flow. |
| No secondary phase | Skip the secondary forecast entirely. |
2.2 DCA Models
Selecting DCA Models opens the standard decline-curve section, with its own decline-model dropdown:
- Exponential
- Hyperbolic
- Modified Hyperbolic
- Power Law Exponential
- Stretched Exponential
The fields shown below depend on the model:
| Decline model | Fields |
|---|---|
| Exponential | Di |
| Hyperbolic | b, Di |
| Modified Hyperbolic | b, Di, Exp switch (by decline rate / by time), Exp switch value |
| Power Law Exponential | n, Decline rate at t=∞ |
| Stretched Exponential | n, Di |
Two checkboxes apply to all DCA Models:
- Fix forecast to last historical value — anchors the start of the forecast to the last observed rate of the secondary phase.
- Filter outliers — ignores statistical outliers when fitting.
2.3 GOR
Selecting GOR opens the GOR section, with its own decline-model dropdown:
| Decline model | What it does |
|---|---|
| Constant | Holds a constant GOR forward. The value comes from the GOR constant sub-selector (see below). |
| Manual | Uses a user-defined trend: a parameter [1–20], GOR Initial Value, GOR Max, GOR Final, Np@BubblePoint (or Gp@DewPoint for gas-primary wells), Np@GOR Max and Np@GOR Final. |
| Automatic | Fits the GOR trend automatically — no parameters to enter. |
When the decline model is Constant, a sub-selector GOR constant appears:
| Option | What it means |
|---|---|
| Last historical GOR | Use the GOR of the last historical point. |
| User defined | Use the value typed in GOR Value. |
| Historical average | Use the mean GOR over the well’s history. |
The Fix forecast to last historical value checkbox is shown for Manual and Automatic only — it is implicit in Constant.
2.4 CGR
Selecting CGR opens the CGR section, used when the primary phase is gas, with its own decline-model dropdown:
| Decline model | What it does |
|---|---|
| Constant | Holds a constant CGR forward. The value comes from the CGR constant sub-selector (see below). |
| Manual trend | Uses a user-defined trend with a parameter, b exponent and CGR limit. |
| Auto trend | Fits the CGR trend automatically — no parameters to enter. |
| Automatic | Fully automatic CGR projection. |
When the decline model is Constant, a sub-selector CGR constant appears:
| Option | What it means |
|---|---|
| Last Historical CGR | Use the CGR of the last historical point. |
| User defined | Use the value typed in CGR Value. |
| Historical average | Use the mean CGR over the well’s history. |
When the decline model is Manual trend, three fields appear:
- a parameter
- b exponent
- CGR limit
Both Fix forecast to last historical value and Filter outliers checkboxes apply to all CGR decline models.
3. Water phase
The Water phase block appears below the Secondary phase block. It is collapsed when the Forecast method is set to No water phase.
3.1 Forecast method
| Label | When to use |
|---|---|
| Water cut | Forecast water cut and derive water rate from oil rate × Wcut / (1 − Wcut). Default and most common choice. |
| DCA Models | Fit a decline curve directly to the water rate. Use when the water phase has its own clear behaviour, not coupled to oil. |
| WOR | Project the water-oil ratio with a mathematical model; water rate is derived from primary rate × WOR. |
| No water phase | Skip the water forecast entirely. |
In Type Well (From statistics), the first option appears with the shorter label WCUT and behaves exactly the same.
3.2 Water cut
Selecting Water cut opens the Water-cut section. Inside it, a second dropdown labelled Wcut Forecast method picks the sub-method:
| Wcut Forecast method | When to use |
|---|---|
| Manual | Provide Initial value, Flowback time, b and Di explicitly. |
| Constant | Hold Wcut constant; pick the source from the sub-selector below (User defined, Last historical Wcut or Historical average Wcut). |
| Automatic | Fits a Wcut decline curve automatically. |
When Wcut Forecast method is Constant and the sub-option is User defined, a numeric Wcut value appears (range 0–1). When it is Historical average Wcut, a Start time average appears (in days).
The Fix forecast to last historical value checkbox is shown for Manual and Automatic.
3.3 DCA Models
Same structure as Section 2.2 — five decline models and the same set of conditional parameters, but applied to the water phase.
Both Fix forecast to last historical value and Filter outliers apply.
3.4 WOR
Selecting WOR opens the WOR section with its own decline-model dropdown:
| Decline model | What it does |
|---|---|
| Constant | Holds a constant WOR forward. The value comes from the WOR constant sub-selector. |
| Constant Last Historical | Use the WOR of the last historical point. |
| Constant Historical Average | Use the mean WOR over the well’s history. |
| Manual trend | Uses a user-defined trend (a parameter, b exponent, WOR limit, Water cut limit). |
| Auto trend | Fits a trend automatically (WOR limit, Water cut limit). |
When the decline model is Constant, a sub-selector WOR constant appears:
| Option | What it means |
|---|---|
| Last Historical WOR | Use the WOR of the last historical point. |
| User defined | Use the value typed in WOR Value. |
| Historical average | Use the mean WOR over the well’s history. |
The Fix forecast to last historical value checkbox is shown for Manual trend and Auto trend.
3.5 WGR
Selecting WGR opens the WGR section with its own decline-model dropdown:
| Decline model | What it does |
|---|---|
| Constant | Holds a constant WGR forward. The value comes from the WGR constant sub-selector. |
| Constant Last Historical | Use the WGR of the last historical point. |
| Constant Historical Average | Use the mean WGR over the well’s history. |
| Manual trend | Uses a user-defined trend (a parameter, b exponent, WGR limit, Water cut limit). |
| Auto trend | Fits a trend automatically (WGR limit). |
When the decline model is Constant, a sub-selector WGR constant appears:
| Option | What it means |
|---|---|
| Last Historical WGR | Use the WGR of the last historical point. |
| User defined | Use the value typed in WGR Value. |
| Historical average | Use the mean WGR over the well’s history. |
The Fix forecast to last historical value checkbox is shown for Manual trend and Auto trend.
4. Per-flow differences
The same Secondary and Water phase logic appears in Multi-Well DCA, Single-Well DCA, Type Well (User defined) and Type Well (From statistics), but with different field shapes and different sets of available options.
4.1 Multi-Well DCA
- All DCA inputs are ranges (b min / b max, Di min / Di max, n min / n max). One value per well is picked from inside the range when the forecast is computed.
- All Forecast methods and decline models documented in sections 2 and 3 are available without restriction.
- Default Secondary forecast method: GOR with decline model Constant and constant value Last historical GOR.
- Default Water forecast method: Water cut with Wcut Forecast method Automatic.
4.2 Single-Well DCA
- All DCA inputs are single values (b, Di, n, Tpeak, qi).
- All Forecast methods and decline models from Multi-Well are available.
- Pre-fill from a Multi-Well forecast: when you open Single-Well DCA
for a well that already has a Multi-Well forecast, the Secondary and
Water phase fields are pre-filled with:
- The method, decline model and checkboxes you used in Multi-Well.
- The per-well fitted DCA values for that specific well (b, n, Di, qi, Tpeak).
- If a value was not fitted per well, the midpoint of the Multi-Well min/max range is used as a starting point.
- GOR, CGR and WOR sub-options (Constant value, Manual parameters, limits, etc.) are copied verbatim from the Multi-Well forecast.
- EUR BOE is shown as an additional result row in the form (alongside EUR Oil, EUR Gas, EUR Water, EUR Liquid). The unit follows the project’s BOE unit setting.
4.3 Type Well (User defined)
Type Wells represent a hand-crafted “what-if” curve rather than a fit to a specific well’s history, so several data-driven options are intentionally hidden:
| Section | Hidden options |
|---|---|
| Secondary — Forecast method | Same as Multi-Well (DCA Models, GOR, CGR, No secondary phase) |
| Secondary — GOR decline model | Only Constant and Manual are available (Automatic hidden) |
| Secondary — GOR constant | Only User defined is available (Last historical GOR and Historical average hidden) |
| Secondary — CGR decline model | Only Constant and Manual trend are available (Auto trend and Automatic hidden) |
| Secondary — CGR constant | Only User defined is available (Last Historical CGR and Historical average hidden) |
| Secondary — DCA Models checkboxes | Fix forecast to last historical value and Filter outliers are hidden |
| Water — Wcut Forecast method | Only Manual and Constant are available (Automatic hidden) |
| Water — Wcut constant | Only User defined is available |
| Water — WOR decline model | Only Constant and Manual trend are available (Constant Last Historical, Constant Historical Average and Auto trend hidden) |
| Water — WOR constant | Only User defined is available |
| Water — WGR decline model | Only Constant and Manual trend are available (Constant Last Historical, Constant Historical Average and Auto trend hidden) |
| Water — WGR constant | Only User defined is available |
| Water — DCA Models checkboxes | Fix forecast to last historical value and Filter outliers are hidden |
EUR BOE is shown as an additional result row in Type Well (User defined) when available, alongside EUR Oil / Gas / Water / Liquid.
Everything else behaves the same as Single-Well.
4.4 Type Well (From statistics)
The statistics-based Type Well builds an aggregate type curve from the statistics of a well group, so even more options are hidden than in the User-defined flow:
| Section | Hidden options |
|---|---|
| Secondary — Forecast method | DCA Models is hidden (only GOR, CGR and No secondary phase are available) |
| Secondary — GOR decline model | Only Constant and Manual are available (Automatic hidden) |
| Secondary — GOR constant | Only User defined is available |
| Secondary — CGR decline model | Only Constant and Manual trends are available |
| Secondary — CGR constant | Only User defined is available |
| Water — Forecast method | First option appears as WCUT. Only WCUT and No water phase are available — DCA Models and WOR are hidden |
| Water — Wcut Forecast method | Only Manual and Constant are available (Automatic hidden) |
| Water — Wcut constant | Only User defined is available |
Because WOR is unavailable here, the WOR section described in 3.4 does not appear. Likewise, the Secondary phase DCA Models section is unreachable.
5. Common workflows
Workflow A — Switching the secondary method on a Multi-Well forecast
- Open Multi-Well DCA and configure the primary phase as usual.
- Scroll to the Secondary phase block.
- Pick GOR, CGR or DCA Models in the Forecast method dropdown — the decline-model dropdown below changes accordingly.
- Pick a decline model and fill in the parameters shown.
- Repeat for the Water phase block.
- Run the forecast. All wells use the same method, with per-well fitted values inside the ranges you provided.
Workflow B — Tuning one well in Single-Well after a Multi-Well run
- With a Multi-Well forecast already computed, open Single-Well DCA and pick the well from the well selector.
- The form is pre-filled with the Multi-Well configuration and that well’s fitted values for both Secondary and Water phases.
- Edit only the field(s) you want to change — method, decline model, single DCA value, sub-option, etc.
- Re-run the Single-Well forecast for that well; the rest of the Multi-Well forecast is untouched.
Workflow C — Building a Type Well with explicit GOR + WOR
- Open Type Well → User defined and configure the primary DCA.
- In Secondary phase, pick GOR and decline model Manual.
- Enter the GOR profile (a parameter, GOR Initial, GOR Max, GOR Final, Np@BubblePoint, Np@GOR Max, Np@GOR Final).
- In Water phase, pick WOR and decline model Manual trend.
- Enter a parameter, b exponent, WOR limit and Water cut limit.
- Save the Type Well. It will project gas from oil × GOR and water from oil × WOR, both with your hand-built shapes.
Workflow D — Disabling a phase
- In the relevant block, set the Forecast method dropdown to No secondary phase or No water phase.
- All other fields collapse; the forecast will report zero rate for that phase.
6. FAQ
Does the “Secondary phase” change from gas to oil depending on the
primary phase?
Yes. The secondary phase is whichever hydrocarbon is not the primary
phase. A gas-primary well’s secondary phase is oil. The dropdown labels
stay the same, but the GOR semantics swap accordingly (Gp@DewPoint
instead of Np@BubblePoint, for example).
I picked GOR but the constant dropdown still says “Last historical WOR”. That label appears on the Water phase WOR block, not the Secondary phase GOR block. Make sure you are looking at the right section.
I edited the secondary phase in Single-Well, but my Multi-Well forecast didn’t change. Correct — Single-Well edits live in their own forecast. To push a Single-Well change back into a Multi-Well forecast, re-run Multi-Well with the new parameters.
Why is “Automatic” missing from WOR / CGR / GOR in Type Well? Type Wells are meant to be hand-crafted curves, not fits to a specific well’s history. The Automatic / Auto trend options are hidden because they need a specific well’s data to fit against.
Why does the Water Phase appear as “WCUT” in Type Well (From statistics) but “Water cut” everywhere else? The label is intentionally shorter in the From-statistics flow. The behaviour is the same.
Can the primary, secondary and water phases use three different decline models? Yes. The three blocks are fully independent. A primary Modified-Hyperbolic + secondary GOR Manual + water WOR Auto trend is a valid combination.
The water-rate and secondary-rate charts show the decline parameters of which phase? They show the parameters of their own phase when that phase is forecast with DCA Models. Earlier versions always showed the primary-phase parameters; this has been fixed.
Does “Filter outliers” affect the primary phase? No. The Secondary and Water “Filter outliers” checkboxes are scoped to their own phase. The primary phase has its own outlier filter in the primary block.
My Single-Well form opened with a default GOR Value after I selected a well. Is that the Multi-Well value? The form copies the GOR method, decline model and sub-option from Multi-Well. The GOR Value field, however, is only used when the sub-option is User defined — if Multi-Well used a different sub-option, the value stays at its default. Change the sub-option in Single-Well if you want to override.
Technical Appendix: Mathematical Formulations and Calculation Methods
This appendix provides the exact mathematical formulations used by the forecasting engine across the various calculation modules (condensate_gas_ratio.py, decline_curve_analisis.py, forecast_water.py, gas_oil_ratio.py, water_gas_ratio.py, and water_oil_ratio.py).
1. Decline Curve Analysis Models (DCA Models)
When a phase is configured to use DCA Models, the forecasting engine applies one of the following classic rate-time relationships:
-
Exponential Decline: Where is the calculated production rate at forecast time , is the theoretical initial rate, and is the nominal decline rate.
-
Hyperbolic Decline: Where is the hyperbolic exponent parameter ().
-
Power Law Exponential Decline (SPE 116731): Where is the characteristic transition time, is the time exponent, and is the decline rate at infinite time.
-
Stretched Exponential Decline: A specialized variation omitting the infinite-time terminal decline component.
2. Hydrocarbon Ratio Calculations (Secondary Phase)
2.1 Gas-Oil Ratio (GOR)
The relationship between gas and oil phases can be projected through several sub-options:
-
Instantaneous Ratio (Historical Baseline):
-
Manual Trend Model (Modified SPE-197096-MS): Fitted against forecast time to model transient fluid behaviors: Where is the initial ratio, is the target final ratio, and is the curvature parameter controlling the inflection slope.
-
Automatic Trend Model (Oil Primary): Combines the time-dependent transient curve with coefficients optimized against the well’s specific peak rates and estimated ultimate recovery (EUR) milestones.
2.2 Condensate-Gas Ratio (CGR)
For retrograd gas systems where gas is the primary phase, the associated oil/condensate is calculated using:
-
Instantaneous Calculation:
-
Exponential Trend Model: Modeled as a function of cumulative primary production ( or ) rather than time alone: Where and are the intercept and exponent parameters derived from regression analysis.
3. Water Phase Relationship Models
3.1 Water-Oil Ratio (WOR)
The water advancement profile is traditionally matched against cumulative oil production to represent physical reservoir displacement features:
-
Instantaneous Calculation:
-
Automatic Exponential WOR Trend (WOR Auto): The software executes a first-order polynomial fit (least-squares linear regression) on the log-transformed historical data: Extrapolating this into the future yields the forecast equation: Where is the cumulative oil production.
3.2 Water-Gas Ratio (WGR)
For gas-dominated wells, water production is explicitly modeled against the primary gas rates:
4. Fluid Rate Cross-Conversions and Safeguards
To maintain perfect volumetric balance across all selected forecasting configurations, the platform implements strict mathematical conversion rules:
-
Deriving Water Rate from Water Cut ():
-
Calculating Water Cut () from Rates:
-
Deriving Water Rate from WOR:
-
Numerical Stability Safeguards: To guarantee convergence and avoid code execution termination due to math errors during multi-well automated processing, any division by zero or empty array element is explicitly caught and replaced using numerical masks: Additionally, forecasted Water Cut is structurally capped between .