Methodology
CORTE exists to be a public, verifiable reference on curtailment in Brazil. This page documents fully where the figures come from — we estimate or model nothing; everything is direct aggregation of data published by ONS.
1. Data source
We use the Operational Restriction by Constrained-off datasets from the ONS Open Data Portal, in their plant/cluster versions: wind (since October 2021) and solar PV (since April 2024). Files are monthly, with one record per plant/cluster and 30-minute period, and include verified generation, reference generation (the counterfactual without restriction), reason and origin of the restriction. License CC-BY with credit to ONS. ONS updates the files daily (12:00 and 19:00) and may restate months already published; we reload recent months on each update.
2. Curtailment formula
For each 30-minute period in which the plant was under an active restriction (field cod_razaorestricao filled):
corte_MWh = max(0, (referência_final ?? referência) − geração_verificada) × 0.5 h
where referência_final (val_geracaoreferenciafinal) is the reference generation consolidated by ONS in the constrained-off settlement (Operational Routine RO-AO.BR.13 of the Operations Procedures Manual, Submodule 5.13) and referência (val_geracaoreferencia) is the estimate used when the final value is missing — in practice the final exists only for a minority of restricted records. We truncate at zero: restricted periods with generation above the reference do not produce "negative curtailment". The curtailment rate shown on the site is curtailment ÷ (verified generation + curtailment), using as denominator the production that would have occurred without restriction, calculated only with plants in the same dataset.
2b. Implied value and BESS potential (ranking and report pages)
- Value at hourly PLD: each curtailed half-hour × the submarket hourly PLD (Brazil's spot price) published by CCEE (CCEE open data, CC-BY). This is the mark-to-spot value of energy not generated — notlost contractual revenue: contracts, physical guarantee and compensation change each generator's cash effect. The implied PLD of curtailment is typically below average PLD because curtailment concentrates in surplus hours. Cross-check: our annual averages of hourly PLD diverge <0.5% from official CCEE monthly averages.
- Value at contract price: an explicit, editable assumption (default R$ 180/MWh, reference Dcide, long-term forward curve), always shown as an assumption, never as fact.
- Capture by co-located BESS: theoretical upper bound with 1 cycle/day — daily capture = min(day's curtailment, preset capacity), presets of 10/20/30% of plant power × 4 h, with no losses or power constraint. Plant power approximated by maximum verified availability in the series. For comparative site screening, not project sizing.
3. Restriction reasons and compensation
Each restricted record carries the reason classified by ONS (official data dictionary):
- ENE — energy reason: system surplus (generation that does not fit load). It is today the largest share of curtailment and is expressly excluded from compensation by Law No. 15.269/2025 (art. 9, amending Law No. 10.848/2004).
- CNF — reliability: meeting electrical reliability requirements. Compensable via ESS after Law No. 15.269/2025, with caveats (does not cover cases where the access opinion already indicated the restriction or where the plant fails technical requirements).
- REL — external unavailability: failure or unavailability in a transmission/connection facility outside the plant. Compensable (ANEEL REN No. 1.030/2022 regime, with an annual hours franchise, retained by the law).
- PAR — access opinion restriction: a limitation already in the plant's access terms; not compensable. (Does not occur in data published through June 2026.)
References: ANEEL REN No. 927/2021 and ANEEL REN No. 1.030/2022 (wind); ANEEL REN No. 1.073/2023 (solar PV); Law No. 15.269/2025; ONS Grid Procedures, Submodule 6.5. The retroactive compensation (Sep/2023–Nov/2025) provided in art. 1-B of the law was still being regulated when this page was updated — we make no financial estimate here, and nothing on this site is regulatory or investment advice.
4. Scope and limitations
- Coverage ≠ total fleet. The datasets cover plants in operating modes Type I, II-B and II-C (scheduling/dispatch followed by ONS) — precisely those subject to constrained-off. Distributed generation and plants outside these modes do not appear.
- Minimum unit: plant or cluster. ONS attributes curtailment to plants or plant clusters (
CJU_*); public data cannot split a cluster's curtailment among its individual plants. - The solar series starts in April 2024, when constrained-off settlement for PV began (REN 1.073/2023) — this does not mean there was no curtailment before, only that there was no published settlement.
- Data subject to restatement. ONS notes that files “are part of a recurring consistency process and may be updated after publication”. Recent months may shift slightly between updates.
- Partial month excluded. The series ends at the last complete calendar month available (June 2026 in this version).
- Methodological step-change in Aug/2025. Revision 08 of RO-AO.BR.13 removed the 5%/5 MW tolerance from settlement — small differences between generation and the limit started counting as curtailment, which may raise the series from that date.
- Brasília time in timestamps; months are local calendar months.
5. How to reproduce
Aggregates shown here are available as open CSV (in Portuguese). The full pipeline (download of ONS files, aggregation and site generation) is open source in the project repository. Data for this version: generated on 7/10/2026, series through June 2026.
6. Credits and contact
Data: © ONS, CC-BY license, transformed by aggregation as described above. This site is not affiliated with ONS, ANEEL or CCEE. Errors and suggestions: open an issue.