Skip to content

Reference: Numera-Core 15m Views

Column-level reference for the 4 generic numera-core 15-minute power volume views. These are the migration target for users currently on the EWE wrappers — see How to migrate from EWE views.

All views in this section:

  • Are views over the fct_volume_pwr_*_agg incremental aggregates.
  • Are gated by the time_series.15m feature flag.
  • Apply tran_status IN ('Validated', 'Matured') and Business Case IS NOT NULL upstream.
  • Apply no EWE-specific BU or portfolio filters — you apply those in your query.
  • Guarantee 96 rows per (combo, delivery_date_utc). See Gap-filling.
  • Require consumers to filter by delivery_date_utc or begin_utc for partition pruning.

For the EWE wrapper equivalents, see EWE views.


fct_volume_pwr_15m

15-minute fixed-price volumes aggregated by business case and grid.

Path (numera-core): models/endur/volume/15m/volume_pwr_15m/fct_volume_pwr_15m.sql

Grain: business_case + grid + begin_utc (at output); the intermediate aggregate retains dim_deal_attribute_id for portfolio joins.

Source: fct_volume_pwr_15m_agg (incremental) — pivots fct_volume_15m to BC+grid grain with 96-slot volume and volume-weighted price arrays.

Columns:

Column Type Description
dim_deal_attribute_id INTEGER FK to dim_deal_attribute for portfolio/instrument context
dim_tran_info_id INTEGER FK to dim_tran_info (transaction metadata SCD)
dim_point_of_receipt_location_id INTEGER FK to dim_point_of_receipt_location (buy-side delivery point)
dim_point_of_delivery_location_id INTEGER FK to dim_point_of_delivery_location (sell-side delivery point)
dim_deal_financial_id INTEGER FK to dim_deal_financial
dim_party_internal_bu_le_attribute_id INTEGER FK to internal BU / legal entity
dim_party_external_bu_le_attribute_id INTEGER FK to external BU / legal entity
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
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 VWAP buy price (EUR/MWh)
sell_vwap_price_eur_per_mwh NUMBER VWAP sell price (EUR/MWh)
volume_x_price NUMBER volume_mwh × price for the period, in EUR. Provided as a precomputed cash-flow term.

VWAP roll-ups: weight by volume_buy_mw / volume_sell_mw

To aggregate VWAP across periods, use SUM(volume_buy_mw × buy_vwap_price_eur_per_mwh) / NULLIF(SUM(volume_buy_mw), 0) (and the analogous expression for sell). Do not divide SUM(volume_x_price) by SUM(volume_buy_mw) — that returns one-quarter of the true VWAP because volume_buy_mw = volume_mwh × 4. The raw volume_mwh is not exposed on the view.


fct_volume_pwr_15m_deal

Deal-grain variant of fct_volume_pwr_15m.

Path: models/endur/volume/15m/volume_pwr_15m/fct_volume_pwr_15m_deal.sql

Grain: business_case + grid + deal_id + begin_utc

Additional column:

Column Type Description
deal_id INTEGER Endur deal identifier

All other columns match fct_volume_pwr_15m.


fct_volume_pwr_floating_15m

15-minute floating / index-priced volumes aggregated by business case, grid, BU, and index.

Path: models/endur/volume/15m/volume_pwr_15m/fct_volume_pwr_floating_15m.sql

Grain: business_case + grid + internal_business_unit + external_business_unit + power_index_name + begin_utc

Source: fct_volume_pwr_floating_15m_agg — pivots floating-side fct_volume_15m rows and joins core_endur_index_pricing_15m_daily for the index pricing arrays.

Upstream filter: instrument_sub_type = 'PWR Index' (applied in the agg).

Columns:

Column Type Description
dim_deal_attribute_id INTEGER FK to dim_deal_attribute
dim_tran_info_id INTEGER FK to dim_tran_info
dim_deal_financial_id INTEGER FK to dim_deal_financial
dim_point_of_receipt_location_id INTEGER FK
dim_point_of_delivery_location_id INTEGER FK
dim_party_internal_bu_le_attribute_id INTEGER FK to internal BU
dim_party_external_bu_le_attribute_id INTEGER FK to external BU
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)

No VWAP columns — the floating variant exposes power_index_price_eur_per_mwh instead, sourced from the index pricing array.


fct_volume_pwr_floating_15m_deal

Deal-grain variant of fct_volume_pwr_floating_15m.

Path: models/endur/volume/15m/volume_pwr_15m/fct_volume_pwr_floating_15m_deal.sql

Grain: parent grain + deal_id.

Additional column:

Column Type Description
deal_id INTEGER Endur deal identifier. May be NULL on gap rows.

Surrogate-key columns are the join point

Unlike the EWE wrappers, the numera-core views deliberately expose surrogate-key columns (dim_deal_attribute_id, dim_party_*_id, dim_point_of_*_location_id, dim_tran_info_id). These are the join points to dimensional context — portfolio, instrument, counterparty, location.

See How to join dimensional views for worked examples.

Output shape vs EWE wrappers

Aspect EWE wrappers Numera-core views
Gap-fill (96 rows / day)
delivery_date_utc, begin_utc, end_utc, begin_cet, end_cet
volume_buy_mw, volume_sell_mw
buy_vwap_price_eur_per_mwh, sell_vwap_price_eur_per_mwh (fixed)
power_index_price_eur_per_mwh (floating)
grid, business_case
Surrogate-key columns (dim_*_id)
volume_x_price helper ✓ (fixed-price variants)
EWE BU/portfolio filter pre-applied ✓ (short-term desk)