Forecast parameters
Forecast parameters
1. Integration overview
Dataset Name: Forecast Parameters
Secure View: FORECAST_PARAMETERS_SV
Delivery Mechanism: Snowflake Secure View via Private Share
Update Pattern: Immutable / Append-Only
Export Trigger:
- User-triggered from ComboCurve UI
- Triggered via ComboCurve Export v2 (Snowflake export)
Data Retention: 30 days
2. Business context (Oil & Gas Reservoir Engineering)
The Forecast Parameters dataset contains the full decline curve parameterization used to generate production forecasts for oil and gas wells.
This data represents:
- Decline curve model configuration (Arps Hyperbolic → Exponential)
- Type curve application logic
- Risk adjustments
- Phase-level forecasting (Oil / Gas / Water / Custom Stream)
- Estimated Ultimate Recovery (EUR)
- Forecast segment definitions
4. Expected record uniqueness
The dataset is append-only and may contain multiple exports of the same forecast.
The expected uniqueness constraint is:
(FORECAST_EXPORT_ID, FORECASTED_BY)
Each export batch is uniquely identified by FORECAST_EXPORT_ID.
5. Client access pattern
Query the secure view directly:
- Primary access object:
FORECAST_PARAMETERS_SV - Typical filters:
FORECAST_EXPORT_ID,FORECAST_ID,WELL_ID,FORECASTED_ON,PHASE
Example:
SELECT *
FROM SHARED_DATABASE.FORECAST_PARAMETERS_SV;
Recommended filters:
FORECAST_EXPORT_IDFORECAST_IDWELL_IDFORECASTED_ONPHASE
6. Full schema definition (client-facing secure view)
Below is the schema for FORECAST_PARAMETERS_SV, grouped into data categories for easier consumption.
6.1 Forecast & project metadata
| Column | Data Type | Description |
|---|---|---|
| PROJECT_NAME | VARCHAR | Human-readable project name |
| PROJECT_ID | VARCHAR | ComboCurve project identifier |
| FORECAST_NAME | VARCHAR | Forecast case name |
| FORECAST_ID | VARCHAR | Unique forecast case ID |
| FORECAST_EXPORT_ID | VARCHAR | GUID of export job |
| STATUS | VARCHAR | Forecast approval status |
| SUB_TYPE | VARCHAR | Forecast creation method |
| STREAM_SCOPE | VARCHAR | Project or company stream |
6.2 Well identification
| Column | Data Type | Description |
|---|---|---|
| WELL_NAME | VARCHAR | Well name |
| WELL_ID | VARCHAR | Unique well identifier |
| WELL_NUMBER | VARCHAR | Operator-assigned well number |
6.3 Production context
| Column | Data Type | Description |
|---|---|---|
| LAST_PROD_DATE_DAILY | DATE | Last daily production date |
| LAST_PROD_DATE_MONTHLY | DATE | Last monthly production date |
These define the production history cutoff for forecasting.
6.4 User attribution & governance
| Column | Data Type | Description |
|---|---|---|
| FORECASTED_BY | VARCHAR | User who generated forecast |
| FORECASTED_BY_ID | VARCHAR | User identifier |
| FORECASTED_ON | DATE | Date forecast generated |
| REVIEWED_BY | VARCHAR | Reviewer name |
| REVIEWED_BY_ID | VARCHAR | Reviewer identifier |
| REVIEWED_ON | DATE | Approval change date |
6.5 Phase & stream information
Valid values for PHASE:
OILGASWATERCUSTOM STREAM
| Column | Data Type | Description |
|---|---|---|
| PHASE | VARCHAR | Stream phase |
| TYPE | VARCHAR | Segment type |
| BASE_PHASE | VARCHAR | Base phase for ratio segments |
| BASE_PHASE_SCOPE | VARCHAR | Base phase scope |
6.6 Well life & recovery metrics
| Column | Data Type | Description |
|---|---|---|
| WELL_LIFE | FLOAT | Total forecast well life (years) |
| REMAINING_WELL_LIFE_FROM_TODAY | FLOAT | Remaining years from export date |
| MONTHLY_CUM | FLOAT | Cumulative monthly forecast volume |
| DAILY_CUM | FLOAT | Cumulative daily forecast volume |
| EUR | FLOAT | Estimated Ultimate Recovery |
| EUR_PER_FT | FLOAT | EUR normalized by perforated lateral length |
6.7 Type curve application
| Column | Data Type | Description |
|---|---|---|
| APPLIED_TYPE_CURVE | VARCHAR | Type curve name |
| APPLIED_TYPE_CURVE_ID | VARCHAR | Type curve identifier |
| APPLIED_NORMALIZATION | VARCHAR | Normalization flag |
| FPD_SOURCE | VARCHAR | First production date source |
| RISK_FACTOR | FLOAT | Applied risk factor |
6.8 Forecast segment definition
Forecasts may consist of multiple segments.
| Column | Data Type | Description |
|---|---|---|
| SERIES | VARCHAR | Forecast p-series |
| SEGMENT | FLOAT | Segment number |
| SEGMENT_TYPE | VARCHAR | Segment type |
| START_DATE | DATE | Segment start date |
| END_DATE | DATE | Segment end date |
| START_DAY | FLOAT | Segment start index |
| END_DAY | FLOAT | Segment end index |
6.9 Decline curve parameters
| Column | Data Type | Description |
|---|---|---|
| Q_START | FLOAT | Starting production rate |
| Q_END | FLOAT | Ending production rate |
| Q_FINAL | FLOAT | Final rate |
| DI_EFF_SEC | FLOAT | Effective initial decline |
| DI_NOMINAL | FLOAT | Nominal decline |
| B | FLOAT | Hyperbolic b-factor |
6.10 Hyperbolic → exponential transition
| Column | Data Type | Description |
|---|---|---|
| REALIZED_D_SW_EFF_SEC | FLOAT | Transition effective decline |
| SW_DATE | DATE | Switch date |
| SW_IDX_ARPS | FLOAT | Switch index |
| D_EXP | FLOAT | Exponential decline rate |
| Q_SW | FLOAT | Rate at transition |
6.11 Warnings & system metadata
| Column | Data Type | Description |
|---|---|---|
| WARNING | VARCHAR | Forecast warnings |
| __RECORD_SOURCE | VARCHAR | System that generated record |
| __CREATED_AT | TIMESTAMP_NTZ | UTC export timestamp |
| __UPDATED_AT | TIMESTAMP_NTZ | Last modification timestamp |
6.12 UI label mapping
Unlike the economics and volume datasets, this dataset has no friendly-label layer: the forecast editor in the ComboCurve UI shows these same raw decline-curve / engineering parameter names, so there are essentially no "UI label vs column name" renames to map.
The values worth knowing are the ones whose meaning is not obvious from the name (DI_EFF_SEC = initial effective/secondary decline; B = hyperbolic b-factor; D_EXP = terminal exponential decline; REALIZED_D_SW_EFF_SEC = decline at the hyperbolic→exponential switch) — these are described in §6.9–6.10 above.
Casing caveat. The source field names are mixed-case — decline parameters such as
Di_Eff_Sec,Di_nominal,D_exp, and the__RecordSourcesystem column use camel/Pascal case in the underlying export. Snowflake upper-cases unquoted identifiers, so the secure view exposes them asDI_EFF_SEC,DI_NOMINAL,D_EXP, and__RECORD_SOURCE. Do not assume the source casing is preserved when joining back to other systems.
7. Incremental consumption best practices
Pull only new or changed records
For scheduled ingestion, pull rows where __CREATED_AT is after your last run, or retrieve the latest export per forecast.
SELECT *
FROM FORECAST_PARAMETERS_SV
WHERE __CREATED_AT > DATEADD(day, -1, CURRENT_TIMESTAMP);
Retrieve latest export per forecast
SELECT *
FROM FORECAST_PARAMETERS_SV
QUALIFY ROW_NUMBER() OVER (
PARTITION BY FORECAST_ID
ORDER BY __CREATED_AT DESC
) = 1;
Deduplicate by the secure-view key
Treat (FORECAST_EXPORT_ID, FORECASTED_BY) as the record key when loading into your target. Multiple exports of the same forecast are expected.
8. Operational notes
- Data is immutable once exported.
- Multiple exports of the same forecast are expected.
- No updates-in-place occur.
- Historical parameter sets are preserved for auditability.