Data Dictionary
This comprehensive reference describes all data fields available in Enertel forecast extracts and API responses. During your trial, you'll receive historical backcast data for your price nodes of interest that follows this schema.
Data Structure Overview
Our forecast data is structured around the core concepts described in our concepts documentation. Each row in your data extract represents a single forecast point with associated metadata and percentile values.
Field Reference
Object Information
| Column | Type | Description |
|---|---|---|
object_name | string | Name of the forecasted object, typically a price node from the ISO |
object_type | string | Classification of the object (e.g., 'price_node', 'hub', 'interface') |
object_subtype | string | Additional classification details for the object |
object_latitude | number | Latitude coordinate of the object location |
object_longitude | number | Longitude coordinate of the object location |
object_iso | string | ISO code representing the geographic market area |
Power Plant Information
Available when forecasting generation assets
| Column | Type | Description |
|---|---|---|
power_plant | string | Name of the power plant (if applicable) |
plant_technology | string | Generation technology (e.g., 'natural_gas', 'solar', 'wind') |
prime_mover_code | string | Primary equipment type code (e.g., turbine type) |
plant_capacity | number | Nameplate capacity of the power plant in megawatts |
Target and Series Information
| Column | Type | Description |
|---|---|---|
target_id | integer | Unique identifier for the forecast target |
description | string | Human-readable description of the target (e.g., "ERCOT DALMP") |
timezone | string | Timezone for all timestamps in this target |
iso | string | Independent System Operator code |
series_name | string | Name of the data series being forecasted |
Scenario and Batch Information
| Column | Type | Description |
|---|---|---|
scenario_id | integer | Unique identifier for the input scenario |
range_start | string | Start of forecast time range (ISO 8601 format) |
range_end | string | End of forecast time range (ISO 8601 format) |
schedule_id | integer | Identifier for the processing schedule |
scheduled_at | string | When the forecast batch was scheduled (ISO 8601 format) |
batch_id | integer | Unique identifier for the forecast batch |
batch_created_at | string | When the forecast batch was created (ISO 8601 format) |
Model Information
| Column | Type | Description |
|---|---|---|
model_id | integer | Unique identifier for the forecasting model |
model_created_at | string | When the model was trained/created (ISO 8601 format) |
Forecast Data
| Column | Type | Description |
|---|---|---|
timestamp | string | The exact time for which the forecast applies (ISO 8601 format) |
value | number | Expected value (mean) of the forecast distribution |
feature_id | integer | Unique identifier for the specific feature being forecasted |
Probabilistic Forecasts
Our models provide complete probability distributions through percentile forecasts:
| Column | Type | Description |
|---|---|---|
p01 | number | 1st percentile - extreme low outcomes (1% chance of being lower) |
p05 | number | 5th percentile - very low outcomes |
p10 | number | 10th percentile - low outcomes |
p20 | number | 20th percentile |
p30 | number | 30th percentile |
p40 | number | 40th percentile |
p50 | number | Median forecast - 50th percentile (most commonly used) |
p60 | number | 60th percentile |
p70 | number | 70th percentile |
p80 | number | 80th percentile |
p90 | number | 90th percentile - high outcomes |
p95 | number | 95th percentile - very high outcomes |
p99 | number | 99th percentile - extreme high outcomes (1% chance of being higher) |
Validation Data
Available in historical backcasts
| Column | Type | Description |
|---|---|---|
actual | number | The actual observed value for validation and accuracy assessment |
error | number | Difference between forecasted value and actual value (forecast - actual) |
Data Quality Notes
Timestamp Handling
- All timestamps are provided in ISO 8601 format
- Timestamps are automatically converted to the target's local timezone
- Be aware of daylight saving time transitions when working with time series data
Missing Data
- Our data extracts are cleaned and validated before delivery
- Any missing values are explicitly handled and documented
- Contact support if you encounter unexpected null values
Duplicate Detection
The composite primary key for forecast data is:
(timestamp, feature_id, scenario_id, model_id)
This combination should be unique across your dataset.
Common Usage Patterns
Basic Forecast Analysis
# Most common columns for basic analysis
essential_cols = [
'object_name', 'series_name', 'timestamp',
'scheduled_at', 'p50', 'actual'
]
Probabilistic Analysis
# All percentile columns for uncertainty analysis
percentile_cols = [f'p{i:02d}' for i in [1, 5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 95, 99]]
Model Comparison
# Key columns for comparing different models
comparison_cols = [
'model_id', 'model_created_at', 'feature_id',
'timestamp', 'p50', 'actual'
]
Units and Conventions
- Prices: Typically in $/MWh
- Generation: Typically in MW or MWh depending on the series
- Timestamps: Always in the target's local timezone
- Coordinates: Decimal degrees (WGS84)
For specific units in your data extract, refer to the series_name and description fields which provide context about the measurement type and units.