concept
CH table metadata: esios.archives_i90_qh
15-min normalization VIEW over `esios.archives_i90`. Every row is projected onto a uniform quarter-hour grid: native QH rows (`source_interval='15min'`) pass through; hourly rows (`source_interval='1h'`, REE pre-Oct-2025 history) fan out to 4 QH rows. The fan-out is magnitude-aware — `energy` is split `/4` only when `energy_magnitude='MWh'` (additive energy); `MW` capacity (BS) and `€/period` (STARTUP_GAS) are replicated, and `price` (€/MWh, intensive) is replicated. Re-aggregating QH→hour repro
# `esios.archives_i90_qh`
15-min normalization VIEW over `esios.archives_i90`. Every row is projected onto a uniform quarter-hour grid: native QH rows (`source_interval='15min'`) pass through; hourly rows (`source_interval='1h'`, REE pre-Oct-2025 history) fan out to 4 QH rows. The fan-out is magnitude-aware — `energy` is split `/4` only when `energy_magnitude='MWh'` (additive energy); `MW` capacity (BS) and `€/period` (STARTUP_GAS) are replicated, and `price` (€/MWh, intensive) is replicated. Re-aggregating QH→hour reproduces the original (lossless). Normalization layer only — business metrics (precio capturado = VWAP `Σ(p·e)/Σ(e)`, etc.) are computed ON TOP, never inside. NB: never SUM a `MW`-magnitude row over time — capacity averages over time and sums over units.