---
title: Daily Production
slug: daily-production-schema
docTags: 
createdAt: 2023-03-22T19:17:21.000Z
---

Daily Production collects the allocated rates, pressures, and artificial lift operating parameters for a well, one record per well per day. If daily rates come from a metered source (e.g. a multiphase flow meter), supply the allocated rate data in the [Allocation](docId\:gHnXhn-hUJVkHyOlbSvC5) table instead.

Daily production is related to the well, not the wellbore. The **uwi** property from [Well](docId\:P-xHbe4jqKJQemay7aOL5) is the key for daily production records, because systems of record for well construction are typically different from allocation systems.

The unique constraint for daily production is **uwi + date**.

| **Variable**         | **Data Type**   | **Unit of Measure** | **Is Nullable?** | **Default Value** | **Description**                                                                                                                 |
| -------------------- | --------------- | ------------------- | ---------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| uwi                  | String          | -                   | No               | -                 | Unique Well Identifier. Must match the uwi of a record in the [Well](docId\:P-xHbe4jqKJQemay7aOL5) table.                       |
| date                 | Datetime Offset | -                   | No               | -                 | Production date. Datetime offset (with timezone) in ISO 8601 format. Example: 2022-09-27T16:28:37+0000                          |
| oilRate              | Double          | STB/d               | No               | 0.0               | Oil rate                                                                                                                        |
| gasRate              | Double          | Mscf/d              | No               | 0.0               | Formation gas rate. Must not include any injected gas.                                                                          |
| waterRate            | Double          | STB/d               | No               | 0.0               | Water rate                                                                                                                      |
| tubingPressure       | Double          | psig                | No               | 0.0               | Tubing / wellhead pressure                                                                                                      |
| casingPressure       | Double          | psig                | No               | 0.0               | Casing pressure                                                                                                                 |
| linePressure         | Double          | psig                | Yes              | -                 | Line pressure (downstream of choke)                                                                                             |
| isAnnularFlow        | Boolean         | -                   | Yes              | -                 | Whether that day's production is through the annulus instead of tubing. For gas lifted wells, this is discovered automatically. |
| isDualFlow           | Boolean         | -                   | Yes              | False             | Whether the well was flowing through both the tubing and the annulus on the day of production                                   |
| choke                | Integer         | % or 64ths          | Yes              | -                 | Choke opening                                                                                                                   |
| wellheadTemperature  | Double          | degF                | Yes              | -                 | Temperature at the wellhead                                                                                                     |
| gasLiftInjectionRate | Double          | Mscf/d              | Yes              | -                 | Gas lift injection rate (for gas lift wells)                                                                                    |
| gaugePressure        | Double          | psig                | Yes              | -                 | Downhole gauge pressure. NOT the ESP or SRP intake pressure — those have their own fields below.                                |
| gaugeTemperature     | Double          | degF                | Yes              | -                 | Downhole gauge temperature                                                                                                      |
| espFrequency         | Double          | Hz                  | Yes              | -                 | ESP frequency (for ESP wells)                                                                                                   |
| espIntakePressure    | Double          | psig                | Yes              | -                 | ESP intake pressure (for ESP wells)                                                                                             |
| espAmps              | Double          | Amperes             | Yes              | -                 | ESP current (for ESP wells)                                                                                                     |
| espVolts             | Double          | Volts               | Yes              | -                 | ESP voltage (for ESP wells)                                                                                                     |
| espDischargePressure | Double          | psig                | Yes              | -                 | ESP discharge pressure (for ESP wells)                                                                                          |
| espMotorTemperature  | Double          | degF                | Yes              | -                 | ESP motor temperature (for ESP wells)                                                                                           |
| espVibration         | Double          | g (gravity)         | Yes              | -                 | ESP vibration (for ESP wells)                                                                                                   |
| srpStrokesPerMin     | Double          | spm                 | Yes              | -                 | Strokes per minute (for rod pump wells)                                                                                         |
| srpIntakePressure    | Double          | psig                | Yes              | -                 | Pump intake pressure (for rod pump wells)                                                                                       |
| srpFluidLoad         | Double          | lbf                 | Yes              | -                 | Fluid load on the rod pump (for rod pump wells)                                                                                 |
| srpFillage           | Double          | %                   | Yes              | -                 | Sucker rod pump fillage (for rod pump wells)                                                                                    |
| pcpSpeed             | Double          | rpm                 | Yes              | -                 | PCP speed (for PCP wells)                                                                                                       |
| pcpTorque            | Double          | lbf-ft              | Yes              | -                 | PCP torque (for PCP wells)                                                                                                      |
| pcpIntakePressure    | Double          | psig                | Yes              | -                 | PCP intake pressure (for PCP wells)                                                                                             |
| pcpDischargePressure | Double          | psig                | Yes              | -                 | PCP discharge pressure (for PCP wells)                                                                                          |
| downtimeHours        | Double          | hrs                 | Yes              | 0.0               | Downtime hours (0 - 24)                                                                                                         |
| downtimeCode         | String          | -                   | Yes              | -                 | Coded downtime reason (max 255 characters)                                                                                      |
| waterInjectionRate   | Double          | STB/d               | Yes              | -                 | **FOR WATER INJECTION WELLS ONLY.** Water injection rate.                                                                       |
| gasInjectionRate     | Double          | Mscf/d              | Yes              | -                 | **FOR GAS INJECTION WELLS ONLY — NOT GAS LIFT.** Gas lift injection gas belongs in **gasLiftInjectionRate** above.              |

:::hint{type="danger"}
**gasInjectionRate is not gas lift**

**gasInjectionRate** is only for dedicated gas injection wells (type = INJECTOR, fluid = GAS). If your well is gas lifted, the injected gas goes in **gasLiftInjectionRate**. Supplying gas lift gas as gasInjectionRate is a common mistake and will corrupt modeling results for the well. Likewise, **waterInjectionRate** is only for water injection wells (type = INJECTOR, fluid = WATER).
:::

:::hint{type="info"}
**Daily Production Notes**

- A well must exist in the [Well](docId\:P-xHbe4jqKJQemay7aOL5) table before daily production can be added for it.
- Each well needs at least one daily production record; wells without any will fail a data integrity check and will not be modeled.
- The API accepts any value of the correct data type. It does not judge whether a value is physically sensible — bad data will surface later as modeling errors for that well.
- When deleting a range of daily production records, the records on the start and end dates are also deleted (the range is inclusive).
:::

:::hint{type="info"}
**Artificial Lift Notes**

The lift-specific fields (gas lift, ESP, SRP, PCP) are optional as far as the API is concerned, but the modeling engine requires them for wells of the corresponding lift type: gas lift wells need gasLiftInjectionRate, ESP wells need espFrequency and espIntakePressure, and rod pump wells need srpStrokesPerMin, srpIntakePressure, srpFluidLoad, and srpFillage. For natural flowing wells, leave all artificial lift values NULL.
:::

:::hint{type="info"}
**Downtime Notes**

Downtime hours and code typically come from a hydrocarbon accounting system. Both are optional. If supplied, they identify the flowing status of the well on each production day, and partial downtime days are converted to 24-hour rates using a downtime correction factor.
:::

***

# Data Integrity Checks

| **Condition**                        | **Response**    |
| ------------------------------------ | --------------- |
| uwi is NULL or empty                 | Record Rejected |
| uwi does not exist in the Well table | Record Rejected |
| Any non-nullable field is NULL       | Record Rejected |

***

# Common Error Messages

| **API**                 | **Scenario** | **Error Response**              |
| ----------------------- | ------------ | ------------------------------- |
| Add / Upsert production | Unknown UWI  | UWI xxx does not exist          |
| Fetch production        | Unknown UWI  | well with uwi xxx was not found |
