PT
Metodologia aberta

Electricity tariffs per distributor (ANEEL)

Electricity tariffs per distributor (ANEEL)

The residential electricity tariff of each distributor, kept as ANEEL approves it (TUSD and TE), with two calculations declared as ours: the total and the change against the previous adjustment. The page is /energia; the JSON/CSV route is /energia/tarifas.

Why it lives in the Macro section

Every company number in this database is recomputable from the CVM filing. The tariff a regulator approves for a distributor is not: it is a regulatory act that nobody rebuilds from a company's public filing. You accept the official figure or you do not use it. So it has its own table (energia_tarifa) and lives in the Macro section, with the source and the licence written on every page and every response.

Source and licence

  • Source: ANEEL open data portal, data set Tarifas de aplicação das distribuidoras de energia elétrica (application tariffs of electricity distributors), resource tarifas-homologadas-distribuidoras-energia-eletrica. Address: https://dadosabertos.aneel.gov.br/dataset/tarifas-distribuidoras-energia-eletrica.
  • Licence: the portal declares in the data set metadata (license_id = odc-odbl, read from the CKAN API) ODbL 1.0 (Open Data Commons Open Database License), checked on 1 November 2026. It is the same as the Central Bank, CVM and the Treasury: free use, including commercial, citing ANEEL as the source and sharing the derived database on the same terms. Licence: https://opendatacommons.org/licenses/odbl/1-0/.
  • How we read it: through the portal's own datastore_search API, with the filter applied on ANEEL's server (one request of ~2.4 MB), instead of downloading the 179 MB CSV.
  • Coverage: periods from 3 February 2010 to 23 October 2026, 115 distributors, 4,215 raw rows in the cut (2,119 after joining duplicates).

The cut

Only: subgroup B1 (low voltage, residential), modality Convencional (conventional), class and subclass Residencial, base Tarifa de Aplicação (application tariff), no detail and no tariff period, unit R$/MWh. Left out: the White tariff, prepaid, Low Income, the commercial, industrial and rural classes and the "Base Econômica" (a different thing). Taxes (ICMS, PIS and COFINS) are not in the source: the value here is not the electricity bill.

What each column is

Source field What we keep
NumCNPJDistribuidora, SigAgente the tax ID (14 digits) and the distributor abbreviation
DatInicioVigencia, DatFimVigencia the dates of the period
VlrTUSD R$/MWh, use of the distribution system
VlrTE R$/MWh, energy
DscREH only the number of the act (to break ties between revisions)

The calculations that are ours

  • Total = TUSD + TE.
  • Change = total of the current period against the previous period of a different value, in %. ANEEL splits a period on 31 Dec and 1 Jan without changing the value (28 May 2025 to 31 Dec 2025 and 1 Jan 2026 to 27 May 2026 are the same adjustment); those pieces are joined before the calculation, otherwise almost every distributor would show zero at the start of the year.
  • Median, minimum and maximum across the distributors with a tariff in force (end of period not before today).

Duplicates and conflicts

The source repeats identical rows; they collapse into one. In 5 historical cases (for example EMT on 15 July 2010) the same distributor and the same period start carry different values, because a later act revised the earlier one: the one from the higher act number is kept.

Link with B3 companies

The tariff belongs to the distributor; the listed company (CMIG, CPLE, EQTL...) is another legal entity with another tax ID. Checked against the database on 1 November 2026: 11 distributor tax IDs match a CVM registration, none of them a traded stock. So the ticker field is only filled when the full tax ID is the one of a company with a ticker; otherwise it is null. No economic group is deduced from the name or from the tax ID root.

How the collection works

  • Every week (database rebuild) and every night, the same single request.
  • Failures are isolated. Source down, fields different from the checked ones, a truncated response (fewer records than the total the source announces) or a number outside the plausible range: the batch is not written and the history stays as it was. Nothing is deleted; a from-scratch rebuild inherits from the previous database what the source did not bring.
  • Plausible range: TUSD and TE between 0 and R$ 3,000/MWh and total between R$ 100 and R$ 4,000/MWh (observed: about R$ 199 to R$ 1,570). Outside that it is a misreading, and the whole batch is refused.
  • In /saude, the energia block shows the newest period start and the result of the last collection (alert after 75 days; the longest gap with no new period, from 2018 to 2026, was 50 days).

What the page does NOT do

  • It does not recommend a stock, a distributor or a moment. It is the source figure and the definition of each column.
  • It does not include taxes, tariff flags, other consumer classes, generation or transmission.
  • It does not link a distributor to a stock by name.

Access

  • /energia — the page, open, in Portuguese and English.
  • /energia/tarifas — JSON (or ?formato=csv). With no parameter: the latest tariff of each distributor. cnpj (14 digits) returns every period of one, cut by de and ate. Open, no key. Every response carries the fonte, the licence and the citacao.
  • MCP connector tool: tarifas_energia.

Sources: CVM (open data, ODbL) and B3 (COTAHIST). Not affiliated with B3 or the CVM. Not investment advice.

Numbers on this page are live. Data version 2026-11-03-delistadas-proventos-cvm · page generated 2026-11-03 23:37 UTC. If this does not match /saude, you are reading a cached copy.