Reference: EWE Wrapper Views¶
Column-level reference for the 9 EWE-specific 15-minute power volume views.
All views in this section:
- Are views (not tables). Don't materialise them — see Gap-filling.
- Are gated by the
time_series.15mfeature flag. - Apply
tran_status IN ('Validated', 'Matured')upstream. - Guarantee 96 rows per
(combo, delivery_date_utc). Gap rows return0for volume and price columns. - Require consumers to filter by
delivery_date_utcorbegin_utcfor partition pruning.
For the generic numera-core equivalents, see Numera-core views. For migration, see How to migrate from EWE views.
Short-term desk (filtered)¶
fct_ewe_volume_pwr_by_business_case¶
Fixed-price 15-minute power volumes aggregated by business case and grid for the short-term desk.
Path: dbt/models/dimensional/short_term_desk/fct_ewe_volume_pwr_by_business_case.sql
Grain: business_case + grid + begin_utc
Business rules:
tran_status IN ('Validated', 'Matured')external_business_unit IN ('ECC INTD BU', 'NORD POOL AS BU')OR (external_business_unit = 'EWE TR SHORT TERM BU'ANDexternal_portfolio = 'PWR_ST_PF_Netting')
Columns:
| Column | Type | Description |
|---|---|---|
delivery_date_utc |
DATE | Delivery date (UTC). Sourced from dim_period.start_date; always populated. |
begin_utc |
TIMESTAMP_TZ | 15-minute period start (UTC) |
end_utc |
TIMESTAMP_TZ | 15-minute period end (UTC) |
begin_cet |
TIMESTAMP_TZ | 15-minute period start (Europe/Berlin) |
end_cet |
TIMESTAMP_TZ | 15-minute period end (Europe/Berlin) |
grid |
VARCHAR | Power control area |
business_case |
VARCHAR | Trading strategy/desk |
volume_buy_mw |
NUMBER | Buy volume (MW). 0 on gap rows. |
volume_sell_mw |
NUMBER | Sell volume (MW). 0 on gap rows. |
buy_vwap_price_eur_per_mwh |
NUMBER | Volume-weighted average buy price (EUR/MWh). 0 when no buy volume. |
sell_vwap_price_eur_per_mwh |
NUMBER | Volume-weighted average sell price (EUR/MWh). 0 when no sell volume. |
Tests:
unique_combination_of_columns(business_case, grid, begin_utc)period_coverage_96on combo(business_case, grid)period_continuityon combo(business_case, grid)vwap_implies_volume- Range checks on volumes and prices (warn only)
fct_ewe_volume_pwr_by_business_case_deal¶
Deal-level drill-down of the short-term desk fixed-price view.
Path: dbt/models/dimensional/short_term_desk/fct_ewe_volume_pwr_by_business_case_deal.sql
Grain: business_case + grid + deal_id + dim_deal_attribute_id + begin_utc
Business rules:
tran_status IN ('Validated', 'Matured')external_business_unit IN ('ECC INTD BU', 'NORD POOL AS BU')
The BU clause is tighter than the parent view — no portfolio carve-out for EWE TR SHORT TERM BU.
Additional columns (beyond the parent):
| Column | Type | Description |
|---|---|---|
deal_id |
INTEGER | Endur deal identifier |
dim_deal_attribute_id |
INTEGER | FK to dim_deal_attribute for portfolio/instrument context |
Tests: parent set, with combo extended to (business_case, grid, deal_id, dim_deal_attribute_id).
fct_ewe_volume_pwr_floating_by_business_case¶
Index-priced (floating) 15-minute power volumes for the short-term desk.
Path: dbt/models/dimensional/short_term_desk/fct_ewe_volume_pwr_floating_by_business_case.sql
Grain: business_case + grid + internal_business_unit + external_business_unit + power_index_name + begin_utc
Business rules:
tran_status IN ('Validated', 'Matured')instrument_sub_type = 'PWR Index'
Notice this view filters by instrument type, not BU. Cross-BU floating volumes are in scope as long as the instrument is PWR Index.
Columns (replaces VWAP columns with index price; adds BU + index name):
| Column | Type | Description |
|---|---|---|
delivery_date_utc |
DATE | Delivery date (UTC) |
begin_utc / end_utc |
TIMESTAMP_TZ | Period bounds (UTC) |
begin_cet / end_cet |
TIMESTAMP_TZ | Period bounds (Europe/Berlin) |
grid |
VARCHAR | Power control area |
business_case |
VARCHAR | Trading strategy/desk |
internal_business_unit |
VARCHAR | Internal BU name |
external_business_unit |
VARCHAR | External BU name |
power_index_name |
VARCHAR | Index name (e.g. PWR EPEX_DE_INTRADAY 15min) |
volume_buy_mw |
NUMBER | Buy volume (MW). 0 on gap rows. |
volume_sell_mw |
NUMBER | Sell volume (MW). 0 on gap rows. |
power_index_price_eur_per_mwh |
NUMBER | Index price (EUR/MWh). 0 on gap rows. |
Tests: unique_combination_of_columns and period_coverage_96 / period_continuity on the full 5-column combo. vwap_implies_volume does not apply (no VWAP).
fct_ewe_volume_pwr_floating_by_business_case_deal¶
Deal-level drill-down of the floating view.
Path: dbt/models/dimensional/short_term_desk/fct_ewe_volume_pwr_floating_by_business_case_deal.sql
Grain: parent grain + deal_id + dim_deal_attribute_id.
Business rules: same as parent.
Additional columns: deal_id, dim_deal_attribute_id.
Controlling (unfiltered)¶
The controlling variants drop the short-term desk's BU/portfolio filter. They still apply tran_status IN ('Validated', 'Matured') upstream.
fct_ewe_volume_pwr_by_business_case_unfiltered¶
Same column shape as fct_ewe_volume_pwr_by_business_case but with no BU clause — all business units included.
Path: dbt/models/dimensional/controlling/fct_ewe_volume_pwr_by_business_case_unfiltered.sql
Grain: business_case + grid + begin_utc
Use case: cross-BU controlling reports where the short-term desk's BU lens would hide relevant activity.
Note: numeric columns are cast to FLOAT.
fct_ewe_volume_pwr_by_business_case_deal_unfiltered¶
Deal-level variant of *_unfiltered. Adds deal_id.
Path: dbt/models/dimensional/controlling/fct_ewe_volume_pwr_by_business_case_deal_unfiltered.sql
Grain: business_case + grid + deal_id + begin_utc
fct_ewe_volume_pwr_by_business_case_with_bu_unfiltered¶
Like *_unfiltered but with internal and external BU breakouts surfaced as columns. Use when controlling needs a BU-level view in a single query.
Path: dbt/models/dimensional/controlling/fct_ewe_volume_pwr_by_business_case_with_bu_unfiltered.sql
Grain: business_case + grid + internal_business_unit + external_business_unit + begin_utc
Additional columns:
| Column | Type | Description |
|---|---|---|
internal_business_unit |
VARCHAR | Internal BU name from sat_party_internal_bu_le_attribute |
external_business_unit |
VARCHAR | External BU name from sat_party_external_bu_le_attribute |
Quarterly controlling¶
The quarterly variants are thin select * views over their core_*__real intermediate. They retain dim_deal_attribute_id so consumers can join dim_deal_attribute for portfolio/instrument filtering — useful for the controlling quarterly cycle.
fct_volume_pwr_quarter_fixed_price¶
Path: dbt/models/dimensional/controlling/fct_volume_pwr_quarter_fixed_price.sql
Grain: business_case + grid + dim_deal_attribute_id + begin_utc
Business rules: tran_status IN ('Validated', 'Matured'). No BU filter.
Columns: same shape as the short-term desk fixed-price views plus dim_deal_attribute_id.
fct_volume_pwr_quarter_fixed_price_deal¶
Path: dbt/models/dimensional/controlling/fct_volume_pwr_quarter_fixed_price_deal.sql
Grain: parent grain + deal_id.
Test coverage at a glance¶
| View | unique_combo |
period_coverage_96 |
period_continuity |
vwap_implies_volume |
|---|---|---|---|---|
fct_ewe_volume_pwr_by_business_case |
✓ | ✓ | ✓ | ✓ |
fct_ewe_volume_pwr_by_business_case_deal |
✓ | ✓ | ✓ | ✓ |
fct_ewe_volume_pwr_floating_by_business_case |
✓ | ✓ | ✓ | — |
fct_ewe_volume_pwr_floating_by_business_case_deal |
✓ | ✓ | ✓ | — |
fct_ewe_volume_pwr_by_business_case_unfiltered |
not_null only | — | — | — |
fct_ewe_volume_pwr_by_business_case_deal_unfiltered |
not_null only | — | — | — |
fct_ewe_volume_pwr_by_business_case_with_bu_unfiltered |
not_null only | — | — | — |
fct_volume_pwr_quarter_fixed_price |
not_null only | — | — | — |
fct_volume_pwr_quarter_fixed_price_deal |
not_null only | — | — | — |
The controlling and quarterly variants share the upstream pipeline with the fully-tested short-term desk wrappers, so they inherit the gap-fill correctness from the same intermediates.
Related¶
- Numera-core views — generic equivalents
- Semantic views —
sv_power_volumes,sv_power_volumes_floating - How to migrate from EWE views — moving to the generic layer
- Gap-filling — what guarantees the 96-row contract