Daily production ingestion reference
Daily production ingestion reference
Use this document when you ingest the WELL_PRODUCTION_VOLUMES_DAILY share view from a client Snowflake data share into ComboCurve.
1. Purpose
WELL_PRODUCTION_VOLUMES_DAILY stores daily production volumes and operational measurements for a well.
This dataset supports daily-level production ingestion when the client provides detail at the calendar-day grain.
2. Source object
Read from the client share view that exposes WELL_PRODUCTION_VOLUMES_DAILY.
Each row represents the desired current state for one well on one production date.
3. Record identity
Treat the following fields as the uniqueness key:
CHOSEN_IDDATASOURCEPROJECT_NAMEPRODUCTION_DATE
Uniqueness rule:
- Only one daily production record can exist for each (
CHOSEN_ID,DATASOURCE,PROJECT_NAME,PRODUCTION_DATE) combination.
4. Required fields
4.1 Identity
CHOSEN_IDDATASOURCEPROJECT_NAMEPRODUCTION_DATE
4.2 Audit
__RECORD_SOURCE__UPDATED_AT__SOFT_DELETE
4.3 Recommended
__CREATED_AT
PRODUCTION_DATE is required for every daily production row.
5. Project scoping rule
PROJECT_NAME follows the same rule as well headers:
- Populate it for project wells.
- Set it to
NULLfor company-level wells.
6. Audit field behavior
6.1 __RECORD_SOURCE
Use this field for lineage and source tracking.
6.2 __UPDATED_AT
Use this field as the record-level change watermark.
Requirements:
- It must be present.
- It must change whenever the daily record changes.
- The newest row wins based on
__UPDATED_AT.
6.3 __SOFT_DELETE
Use this field to delete an existing production row.
When __SOFT_DELETE = TRUE, ComboCurve should treat the daily production record as deleted.
For deletes, the source should still provide:
CHOSEN_IDDATASOURCEPROJECT_NAMEPRODUCTION_DATE__RECORD_SOURCE__UPDATED_AT__SOFT_DELETE
Other production metrics can be omitted on delete rows.
7. Production measures
Common daily production fields include:
7.1 Production volumes
OILGASWATERNGL
7.2 Injection volumes
WATER_INJECTIONGAS_INJECTIONCO2_INJECTIONSTEAM_INJECTION
7.3 Pressure and operating measurements
BOTTOM_HOLE_PRESSURECASING_HEAD_PRESSUREFLOWLINE_PRESSUREGAS_LIFT_INJECTION_PRESSURETUBING_HEAD_PRESSUREVESSEL_SEPARATOR_PRESSURECHOKEHOURS_ONOPERATIONAL_TAG
7.4 Custom client-defined measures
The schema supports custom daily streams through:
CUSTOM_NUMBER_0throughCUSTOM_NUMBER_19
Use these when the client needs to provide additional daily metrics not covered by the standard columns.
8. Validation rules
8.1 Required-field validation
Reject or quarantine the row if any of these are missing:
CHOSEN_IDDATASOURCEPRODUCTION_DATE__RECORD_SOURCE__UPDATED_AT__SOFT_DELETE
8.2 Date-grain validation
PRODUCTION_DATE must resolve to a valid calendar date. For this dataset, the expected grain is one row per day.
8.3 Referential validation
The (CHOSEN_ID, DATASOURCE, PROJECT_NAME) tuple should resolve to a valid well in the well header dataset. If the header is missing, hold the row for retry or route it to an exception process.
8.4 Delete validation
Delete rows must include enough information to uniquely identify the production row:
CHOSEN_IDDATASOURCEPROJECT_NAMEPRODUCTION_DATE__RECORD_SOURCE__UPDATED_AT__SOFT_DELETE
9. Operational notes
- Re-sending the same daily row should be safe and should not create duplicates.
- Unless a narrower contract is explicitly agreed, expect each row to represent the full current state for that well-day.
- Use the same business key structure as
WELL_HEADERS, withPRODUCTION_DATEadded for daily grain. - Preserve raw values for lineage and troubleshooting.