# Bottomhole Pressure

Bottomhole pressure is computed through a pressure traverse methodology using standard multiphase flow correlations. Traverses start with the measured wellhead pressure from Daily Production. PVT is established through the properties supplied in the Wellbore Formation table, and daily rates and pressures come from the Daily Production table. When establishing rates, downtime correction is applied to scale rates to a full 24 hours of production. Details surrounding the algorithm, lift specific nuances, and settings are outlined below.

Bottomhole pressure is extracted from the traverse at two node depths for each day of the well's history: the gauge node and the reservoir node. In the WellPerformanceAnalysisResults section of the GraphQL API, there are 7 relevant fields to bottomhole pressure:

**Gauge node**

- BottomholePressure - gauge node bottomhole pressure, psia
- BottomholeDepth - gauge node depth, ft
- BottomholeDepthSource - source definition of the gauge node depth

**Reservoir Node**

- BottomholePressureReservoir - reservoir node bottomhole pressure, psia
- BottomholeDepthReservoir - reservoir node depth, ft
- BottomholeDepthSourceReservoir - source definition of the reservoir node depth

**General**

- BottomholePressureCorrelation - correlation used for traverse on that day

Depth sources are defined as follows in the GraphQL API:

- Pump Intake
- End Of Tubing
- Bottomhole Gauge
- Formation Top
- End Of Casing

The gauge node is a dynamic field the attempts to report a bottomhole pressure at the most common measurement point in the well. This is the value plotted on production charts in the ProdX application. The purpose of this value is to give a comparison point to common measurements (gauge pressure, ESP intake, SRP intake) to evaluate accuracy and correlation selection. The following logic applies based on the lift type and equipment in the well.

**Any Well Type**- If a downhole gauge is defined in the Wellbore Downhole Equipment table, this will be the gauge node depth while it was installed superceeding any lift-specific definitions below. If the gauge is defined at a depth below tubing, the system will assume the depth and node definition to be end of tubing. If the well does not have tubing and the gauge is defined at a depth below casing, the system will assume the depth and node definition to be end of casing.**Natural Flow**- End of tubing (if tubing was ran), otherwise Formation depth**Gas Lift**- End of tubing**ESP**- ESP intake depth**SRP**- SRP intake depth

The reservoir node will be reported at the top Wellbore Formation depth. For wells without time varing formations, this will be a fixed depth for the life of the well. For wells which have time varying formations, this can, in rare cases, shift if a shallower zone gets introduced later in the life of the well.

In a typical configuration, the gauge node is shallower than the reservoir node, so both pressures are extracted from the traverse directly.

In atypical situations, where the reservoir node is shallower than the gauge node, a hydrostatic correction is applied based on the primary fluid in the well using fluid density as computed at specific depths and temperatures using PVT and pressure traverse methodology (gas or liquid).

In all situations where a bottomhole pressure node depth is requested that is shallower than a downhole pump intake, the traverse will always compute pressures down to pump intake and then use a hydrostatic correction to translate that pressure upward.

Natural flow BHP is modeled using a standard traverse from WHP to bottomhole node using the configured multiphase flow correlation. Tubing flow (or casing flow in the case that no tubing has been ran) is assumed to be the default flow path unless the isAnnularFlow property is set to true for a given day in the Daily Production table.

Gas Lift BHP is modeled using a standard traverse from WHP to reservoir node using the configured multiphase flow correlation. Tubing flow/annular injection or annular flow/tubing injection is determined by comparing tubing and casing pressures. Injection pressure is inferred to be the higher of the two unless isAnnularFlow is explicitly defined in the Daily Production table.

However, unlike natural flow, gas lift requires a depth of injection to be determined to apply appropriate gas rates to a traverse segment. This is determined from a formation gas traverse down the annulus (or tubing in the case of annular flow/tubing injection) at the measured injection rate. Injection pressure at depth is compared to valve opening and closing pressure to determine which valve is open, establishing a depth of injection. Once depth of injection is established, segments above use formation gas + injection gas rate; segments below only use formation gas rate.

More details on gas lift methodology can be found in Gas Lift.

ESP traverses require a more complex solver to reconcile gas separation efficiency and head degradation, when possible. ESP traverses have four possible scenarios, depending on data availability:

- A solver is used to compute gas separation efficiency by finding the value which satisifies a traverse from WHP -> discharge node equaling gauge discharge pressure
- Using measured intake pressure and calibrated discharge pressure, solve ESP head degradation directly by scaling head from the pump curve at the computed in situ rate (post-gas separation)

Simultaneously solve for gas separation efficiency and head degradation using the gauge intake pressure and wellhead pressure as fixed nodes in the system. A discharge pressure is computed from measured intake across the pump as well as a discharge pressure computed from wellhead pressure down to discharge. The final solution is the gas separation efficiency and head degradation that yields the smallest error computing from both directions.

Simultaneously solve for intake pressure and head degradation using the wellhead pressure as a fixed node in the system. Gas separation efficiency is assumed constant as defined in the ESP table for that well / assembly. A discharge pressure is computed from intake across the pump as well as a discharge pressure computed from wellhead pressure down to discharge. The final solution is the intake pressure and head degradation that yields the smallest error computing from both directions.

In a VLP situation, it is assumed that gas separation efficiency and head degradation is known from recent history. Since there are no gauge intake or discharge pressures available in a VLP calculation, the only variable solved for is intake pressure. A discharge pressure is computed from intake across the pump as well as a discharge pressure computed from wellhead pressure down to discharge. The final solution is the intake pressure that yields the smallest error computing from both directions.

Documentation coming soon

Settings can be modified at the tenant level (will apply to all new wells added to the system), or at the individual well level. It is important to confirm an individual well's settings in the Model Qualty / Model Settings or Well Performance / Bottomhole Pressure / Settings sections of the application before analyzing bottomhole pressure.

Multiphase flow correlation used for hydrostatic, frictional, and accelerational pressure drop calculations across each segment of the well. **The default correlation is Hagedorn and Brown**. Standard correlations include:

- Single Phase Gas
- Single Phase Liquid
- Homogeneous Liquid
- Homogeneous No Slip
- Homeogeneous No Slip No Friction
- Gray
- Hagedorn and Brown
- Duns and Ros
- Beggs and Brill
- Mukherjee and Brill
- Baxendall Thomas
- Fancher Brown
- Poettmann Carpenter
- TUFFP Ansari
- Orkiszewski

Custom correlations can be designed using downhole gauge data to train various types of machine learning models to provide enhanced accuracy (<10% median absolute percentage error), provided enough gauge data is available in a given field. Contact a customer success representative for more information about these correlations

- Xecta ML2 - Classification algorithm to pick the ideal multiphase flow correlation on any given day based on a variety of static and dynamic features for a given well
- Xecta ML3 - Uses ML2 to pick the best correlation for the day and then applies a correction factor to the final bottomhole pressure

There are three settings related to BHP smoothing: Enabled, Smoothing Method, and Window Size (days). If enabled, will use a trailing window to smooth the final bottomhole pressures to remove noise introduced by allocated production data. **By default, this is disabled.**

Applies Payne's correction for liquid holdup to the Beggs and Brill correlation. **By default this is enabled. **

If enabled, this will use gauge data (gaugePressure or espIntakePressure from Daily Production) as the source of truth for the output gauge node bottomhole pressure. A traverse will still be used to move from the gauge node to the reservoir node bottomhole pressure, which is used for all internal modeling (DDV/reservoir pressure, Nodal Analysis, PI, PI Based Forecasting, and Artificial Lift Timing and Selection).

For natural flow / gas lift wells with a permanent tubing gauge, the reference depth of that gauge (and by proxy the depth of the gauge BHP node) will be read from the Wellbore Downhole Equipment table. If there is a gaugePressure defined in the Daily Production dataset without a corresponding gauge depth in Wellbore Downhole Equipment table, the gauge depth will be assumed to be end of tubing.

This setting can also be used in conjunction with the ML2 and ML3 machine-learning based correlation methods, but the ML3 correction will not be applied in practice since there is zero implied error at the gauge node.

It is assumed that any bottomhole gauge data available in conjunction with ESP and SRP installations is at pump intake, regardless of whether it is imported into the Daily Production fields gaugePressure, espIntakePressure, or srpIntakePressure. Since the methodology of the use gauge pressure algorithm ignores pump delta pressure calculations, any data in the gaugePressure, espIntakePressure, or srpIntakePressure fields must be intake pressures. EspDischargePressure can still be imported into the Daily Production table, but a gauge depth must not be defined in the Wellbore Downhole Equipment table in order for this setting to function properly.

**By default, this is disabled.**

Maximum limit of solver iterations to compute pressure gradients for a given segment of the traverse. Typically multiphase flow correlations converge in less than 5 iterations. Use caution when increasing this limit as it could cause increases in compute durations for a well in situations where the solver may not ever converge. **By default, this is set to 100.**

To compute a traverse, the wellbore must be discritized into segments. The base segment length is effectively the longest segment the algorithm will consider. Many segments will be automatically subdivided into smaller lengths to account for changing equipment and dimensions. **By default, this is set to 200 feet.**

Selects the methodology in which the temperature profile at depth will be calculated. The system currently defaults to using a linear temperature profile from wellhead temperature (from Daily Production) and wellhead depth to formation temperature and formation depth (from Wellbore Formation) regardless of the method selected in this dropdown.

Selects the method used to compute friction factors for pressure gradient calculations. **By default, this is set to Swamee Jain.** Available methods include:

- Colebrook
- Jain
- Chen
- Fang
- Swamee Jain
- Zigrang Silvester
- Moody

When solving for the total pressure gradient in a given segment, this tolerance is used to define convergence. Decreasing this tolerance could significantly extent the computation time to achieve convergence, while increasing could sacrifice accuracy. **By default, this is set to 0.001 psi.**

Usually considered in gas wells, a liquid loading critical rate is computed for each segment of the traverse. This setting defines the desired methodology for critical rates used in basic liquid loading anomalies. Note: Xecta also offers advanced, data-driven algorithms to detect and predict liquid loading using SCADA data. **By default, this is set to Coleman.** Available options include:

- Turner
- Coleman
- Nagoo
- Xecta (requires SCADA data)

There are two settings related to erosional velocity: Method and C-Factor. **By default, these are set to API RP 14E and 150, respectively. **

If enabled, this allows the user to specific a slope and intercept value to scale the output bottomhole pressure at the gauge and reservoir node using the following formula:

Loading...

**By default, this is disabled.**