Monthly production ingestion reference
Monthly production ingestion reference
Use this document when you ingest the WELL_PRODUCTION_VOLUMES_MONTHLY share view from a client Snowflake data share into ComboCurve.
1. Purpose
WELL_PRODUCTION_VOLUMES_MONTHLY stores monthly production volumes and operational measurements for a well.
Use this dataset when the client provides production at monthly grain instead of daily grain, or when monthly delivery is the agreed source for operational simplicity.
2. Source object
Read from the client share view that exposes WELL_PRODUCTION_VOLUMES_MONTHLY.
Each row represents the desired current state for one well and one production month.
3. Record identity
Treat the following fields as the uniqueness key:
CHOSEN_IDDATASOURCEPROJECT_NAMEPRODUCTION_DATE
Uniqueness rule:
- Only one monthly 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 monthly production row.
5. Month convention
Use one consistent convention for PRODUCTION_DATE in monthly data.
Recommended convention:
- Set
PRODUCTION_DATEto the 15th day of the production month. - For example, use
2025-01-15for January 2025.
If the client uses a different convention, map it consistently, but do not mix conventions inside the same dataset. Mixing month-date conventions can create duplicate logical records.
6. Project scoping rule
PROJECT_NAME follows the same scope rule as the other datasets:
- Populate it for project wells.
- Set it to
NULLfor company-level wells.
7. Audit field behavior
7.1 __RECORD_SOURCE
Use this field for lineage and source tracking.
7.2 __UPDATED_AT
Use this field as the record-level watermark.
Requirements:
- It must be present.
- It must change whenever the monthly record changes.
- The newest row wins based on
__UPDATED_AT.
7.3 __SOFT_DELETE
Use this field to delete an existing monthly production row.
When __SOFT_DELETE = TRUE, ComboCurve should treat the monthly production record as deleted.
For deletes, the source should still provide:
CHOSEN_IDDATASOURCEPROJECT_NAMEPRODUCTION_DATE__RECORD_SOURCE__UPDATED_AT__SOFT_DELETE
Other monthly measures can be omitted on delete rows.
8. Production measures
Common monthly production fields include:
8.1 Production volumes
OILGASWATERNGL
8.2 Operational measures
DAYS_ONCHOKEOPERATIONAL_TAG
8.3 Injection volumes
WATER_INJECTIONGAS_INJECTIONCO2_INJECTIONSTEAM_INJECTION
8.4 Custom client-defined measures
The schema supports custom monthly streams through:
CUSTOM_NUMBER_0throughCUSTOM_NUMBER_19
Use these when the client needs to provide additional monthly metrics not covered by the standard columns.
9. Validation rules
9.1 Required-field validation
Reject or quarantine the row if any of these are missing:
CHOSEN_IDDATASOURCEPRODUCTION_DATE__RECORD_SOURCE__UPDATED_AT__SOFT_DELETE
9.2 Month-date validation
Require PRODUCTION_DATE to follow the single agreed convention for the monthly dataset. The recommended convention is the 15th day of the month.
9.3 Referential validation
The (CHOSEN_ID, DATASOURCE, PROJECT_NAME) tuple should resolve to a valid well in the well header dataset.
9.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
10. Operational notes
- Re-sending the same monthly row should be idempotent.
- Use a single production-month date convention everywhere in the pipeline.
- Do not allow mixed conventions such as first-of-month and mid-month for the same logical dataset.
- Preserve raw-source lineage for reconciliation and troubleshooting.