---
title: Well Production Method
slug: well-production-method
docTags: 
createdAt: 2026-05-29T00:03:17.472Z
---

The Well Production Method table provides an optional, manual override of ProdX's computed production method for a well over a period of time. ProdX's auto-detection is generally reliable, but some lift formats are hard to infer from daily production data alone — plunger lift, gas assisted plunger lift, plunger assisted gas lift, and dual natural flow (simultaneous casing and tubing flow). Records in this table force the lift type for the period defined. A null **endDate** means the production method applies indefinitely.

The **sourceId** must be unique for the well — the unique constraint is **sourceWellId + sourceId**.

| **Variable** | **Data Type**   | **Unit of Measure** | **Is Nullable?** | **Default Value** | **Description**                                                                                                                                                                                                                                                             |
| ------------ | --------------- | ------------------- | ---------------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| sourceId     | String          | -                   | No               | -                 | Unique identifier of the entry, to enable upserts                                                                                                                                                                                                                           |
| sourceWellId | String          | -                   | No               | -                 | Source ID for the well<br /><br />**From WellView:** wvwellheader table, idwell column<br />**From OpenWells:** cd\_well table, well\_id column                                                                                                                             |
| liftType     | String          | -                   | No               | -                 | Artificial lift type to force:<br /><br />NATURAL\_FLOW<br />ANNULAR\_NATURAL\_FLOW<br />DUAL\_NATURAL\_FLOW<br />GAS\_LIFT<br />ANNULAR\_GAS\_LIFT<br />PLUNGER\_LIFT<br />PLUNGER\_ASSISTED\_GAS\_LIFT<br />GAS\_ASSISTED\_PLUNGER\_LIFT<br />ROD\_PUMP<br />ESP<br />PCP |
| startDate    | Datetime Offset | -                   | No               | -                 | Start of the period the lift type applies. Datetime offset (with timezone) in ISO 8601 format. Example: 2022-09-27T16:28:37+0000                                                                                                                                            |
| endDate      | Datetime Offset | -                   | Yes              | -                 | End of the period the lift type applies. Null means the lift type applies indefinitely. Datetime offset (with timezone) in ISO 8601 format.                                                                                                                                 |

***

# Data Integrity Checks

| **Condition**                                 | **Response**                              |
| --------------------------------------------- | ----------------------------------------- |
| sourceWellId does not exist in the Well table | Record Rejected and current batch aborted |
| Any non-nullable field is NULL                | Record Rejected                           |

:::hint{type="warning"}
If any record in a POST references an unknown **sourceWellId**, the whole batch is aborted — records earlier in the payload are not committed.
:::

***

# Common Error Messages

| **API**                        | **Scenario**         | **Error Response**                                           |
| ------------------------------ | -------------------- | ------------------------------------------------------------ |
| Add / Upsert production method | Unknown sourceWellId | Well with source id xxx was not found, current batch aborted |
