Consigo reproduzir este gráfico?
Todo número do observatório vem de um arquivo publicado, e cada arquivo tem uma impressão digital registrada numa lista, o manifesto. Aqui estão a lista, a versão do código de cada base, o caminho para refazer um número e a conferência de um arquivo que você baixou.
Arquivos publicados
270arquivos
Versões compactas iguais ao CSV
25arquivos
Arquivos que conferem com a lista
270arquivos
Bases com o sufixo +alterado na versão do código
26de 31 bases
Todos os níveis visíveis.
Quais são os passos para refazer um número?
270 arquivos publicados · impressão digital de cada um · versão compacta para as séries maioresNatureza do dado: Calculado
1. Filtre e baixe
Em qualquer tabela de painel, filtre e use Baixar CSV ou XLSX: a planilha leva fonte, versão, filtros e dicionário.
2. Comprove o número
Em Comprove este número, veja a fórmula, o numerador e o denominador, o arquivo e a impressão digital de origem e como refazer a conta.
3. Pegue o arquivo completo
Aqui, baixe o arquivo de origem (CSV, ou a versão compacta Parquet nas séries maiores) e confira a impressão digital com a ferramenta abaixo.
4. Cite a versão
Use o id da publicação e o link permanente do GitHub: o conteúdo de uma versão registrada não muda.
Sim. Cada um dos 270 arquivos publicados tem a impressão digital registrada numa lista, e todos conferiram na construção desta página. Refazer o arquivo não refaz a coleta: ela depende de a fonte estar no ar.
Os números por trás da resposta
Todo arquivo publicado tem o sha256 no manifesto da publicação (270 arquivos, 199 MB), e o id da publicação, de3ba2c533a9, resume a lista inteira. Na construção desta página, os 270 arquivos entregues tinham o sha256 do manifesto. 25 de 25 arquivos Parquet foram conferidos célula a célula contra o CSV. A tabela de cada painel exporta CSV e XLSX das linhas filtradas, com fonte, versão e dicionário.Com qual versão do código cada base foi gerada?
Das 31 bases publicadas, 26 foram geradas com código que tinha mudanças ainda não registradas (sufixo +alterado), 4 com o código todo registrado e 1 sem versão de código registrada. A versão do código é o identificador curto da versão registrada no repositório quando a base foi gerada. O sufixo +alterado quer dizer que, nesse momento, o código tinha mudanças ainda não registradas: a base não corresponde exatamente à versão indicada, e refazê-la a partir dela pode dar um resultado diferente do publicado. O sufixo desaparece quando a base é gerada de novo com o código todo registrado.
Que data é esta? Cada data mede uma coisa diferente
- Data de referência dos dados: 01/10/2026. O dia para o qual valem a situação (em dia, atrasado) e as contagens do catálogo.
- Catálogo e saúde processados em: 01/10/2026, 08:22 (Brasília). Quando o observatório calculou o catálogo e a situação de cada conjunto.
- Lista de arquivos gerada em: 09/10/2026, 00:07 (Brasília). Quando a lista de arquivos publicados (manifesto) foi refeita; é refeita sempre que arquivos publicados são reescritos.
Cada módulo do observatório processa a sua base em horário próprio; a lista está em Analisar.
Quais arquivos foram publicados?
Ficha do arquivo
Escolha um arquivo da tabela para baixá-lo, abrir a versão permanente no GitHub e ver o dicionário, as colunas e a validação do arquivo.
Formato colunar: os Parquet e o CSV de que vieram
Parquet guarda a mesma tabela em colunas, com compressão: abre mais rápido em Python, R e DuckDB e ocupa menos. A publicação confere, célula a célula, que o Parquet tem os mesmos valores do CSV (número lido como decimal, com zeros à esquerda e células vazias preservados).
| CSV de origem | Linhas | CSV (KB) | Parquet (KB) | Equivalente |
|---|---|---|---|---|
| series/agua_ear_recortes_diario.csv | 59.946 | 4.345 | 1.738 | sim |
| series/agua_precipitacao_bacias_diario.csv | 86.020 | 2.889 | 418 | sim |
| series/agua_reservatorios_diario.csv | 55.845 | 3.946 | 1.349 | sim |
| series/agua_temperatura_uf_diario.csv | 76.329 | 3.525 | 1.263 | sim |
| series/carga_horaria.csv | 67.896 | 4.452 | 2.456 | sim |
| series/carga_pico_diario.csv | 48.830 | 2.226 | 755 | sim |
| series/carga_verificada_horaria.csv | 24.072 | 3.500 | 2.120 | sim |
| series/clima_diario.csv | 47.005 | 2.934 | 897 | sim |
| series/conta_tarifas_bt_historico.csv | 27.121 | 2.735 | 200 | sim |
| series/dados_recursos_ons.csv | 13.823 | 3.760 | 606 | sim |
| series/empresas_ativos.csv | 25.644 | 4.629 | 657 | sim |
| series/empresas_financas_anual.csv | 23.734 | 2.290 | 179 | sim |
| series/empresas_financas_trimestral.csv | 40.128 | 3.915 | 238 | sim |
| series/expansao_unidades_ralie.csv | 76.591 | 4.326 | 56 | sim |
| series/expansao_usinas_siga.csv | 25.042 | 4.584 | 901 | sim |
| series/geracao_cvu_semanal.csv | 29.931 | 2.496 | 60 | sim |
| series/mercado_consumo_uf.csv | 61.218 | 2.754 | 648 | sim |
| series/perdas_mensal.csv | 25.971 | 3.338 | 1.349 | sim |
| series/pld_cmo_horario.csv | 50.376 | 3.230 | 1.112 | sim |
| series/qualidade_compensacoes.csv | 59.248 | 3.027 | 297 | sim |
| series/qualidade_conjuntos_anual_2000_2009.csv | 49.427 | 4.838 | 1.168 | sim |
| series/qualidade_conjuntos_anual_2010_2019.csv | 30.995 | 2.981 | 704 | sim |
| series/qualidade_conjuntos_mensal.csv | 72.418 | 3.300 | 454 | sim |
| series/territorio_usinas.csv | 25.042 | 3.714 | 759 | sim |
| series/transicao_mmgd_municipio_ano_fonte.csv | 49.676 | 2.252 | 396 | sim |
Reproduzir a partir do repositório
O commit exato é o do build que gerou a página (variável VERCEL_GIT_COMMIT_SHA na Vercel). Sem ela, a página aponta o histórico do arquivo; o sha256 do manifesto identifica a versão em qualquer commit.
git clone https://github.com/genarolins1975/scrutiniums.git && cd scrutiniums
git log --format='%H %cI' -- public/energia/gold/manifesto.json (uma linha por publicação)
git checkout <commit> (a publicação daquele dia, com todas as golds, séries e geometrias)
sha256sum public/energia/series/<arquivo>.csv (igual ao sha256 do arquivo no manifesto.json do mesmo commit)
python3 -c "import pyarrow.parquet as pq; print(pq.read_table('public/energia/series/<arquivo>.parquet').num_rows)"python3 pipeline/energia/executar_modulo.py <modulo> --sem-coleta (reconstrói a gold do silver; o silver não vai para o git)
A tabela de cada painel exporta CSV e XLSX das linhas filtradas. O pacote documenta os filtros aplicados, a fórmula do indicador (metricas.json), o id da publicação e o sha256 do arquivo completo de origem; refazer a conta sobre as linhas exportadas dá o mesmo agregado exibido.
Quando e com qual versão do código cada base foi processada
Cada módulo do observatório gera a sua base em horário próprio; o horário vem da lista de arquivos. A lista de arquivos é refeita depois da última base, por isso a data dela é a mais recente. A versão do código vem do próprio arquivo da base; o sufixo +alterado está explicado acima.
- pld.json 29/09/2026, 23:20 (Brasília)código 196905461ac0
- hidrologia.json 29/09/2026, 23:20 (Brasília)código 196905461ac0
- rede.json 29/09/2026, 23:20 (Brasília)código 196905461ac0
- meta.json 29/09/2026, 23:20 (Brasília)código 196905461ac0
- conta.json 30/09/2026, 20:56 (Brasília)código 3e7ff0a36fba+alterado
- cmo.json 30/09/2026, 21:24 (Brasília)código 6d3bc3a2f759+alterado
- geracao.json 30/09/2026, 21:28 (Brasília)código 6d3bc3a2f759+alterado
- inclusao.json 30/09/2026, 21:28 (Brasília)código 6d3bc3a2f759+alterado
- qualidade.json 01/10/2026, 02:53 (Brasília)código 802c51897680+alterado
- perdas.json 01/10/2026, 03:06 (Brasília)código d329b83c69a5+alterado
- carga.json 01/10/2026, 03:24 (Brasília)código f5cba38ad40f+alterado
- transicao.json 01/10/2026, 03:38 (Brasília)código f5cba38ad40f+alterado
- regulacao.json 01/10/2026, 03:42 (Brasília)código f5cba38ad40f+alterado
- rede_detalhe.json 01/10/2026, 03:50 (Brasília)código eec0a3121e05+alterado
- pld_detalhe.json 01/10/2026, 03:54 (Brasília)código eec0a3121e05+alterado
- modelos.json 01/10/2026, 03:57 (Brasília)código eec0a3121e05+alterado
- previsoes.json 01/10/2026, 03:57 (Brasília)código eec0a3121e05+alterado
- geracao_detalhe.json 01/10/2026, 04:08 (Brasília)código eec0a3121e05+alterado
- carga_detalhe.json 01/10/2026, 04:11 (Brasília)código eec0a3121e05+alterado
- previsoes_desempenho.json 01/10/2026, 04:40 (Brasília)código fa4767ccfa9a+alterado
- territorio.json 01/10/2026, 04:48 (Brasília)código ac7599ce6c86+alterado
- agua_detalhe.json 01/10/2026, 04:51 (Brasília)código ac7599ce6c86+alterado
- expansao.json 01/10/2026, 04:56 (Brasília)código ac7599ce6c86+alterado
- catalogo.json 01/10/2026, 08:22 (Brasília)código sem versão registrada
- publicacao.json 01/10/2026, 08:22 (Brasília)código 685bb4bc29fd+alterado
- sintese.json 01/10/2026, 08:37 (Brasília)código 685bb4bc29fd+alterado
- empresas.json 01/10/2026, 09:31 (Brasília)código 333150d9bc6a+alterado
- mercado.json 06/10/2026, 17:02 (Brasília)código 1f075868ed56+alterado
- arquivos.json 06/10/2026, 17:02 (Brasília)código 1f075868ed56+alterado
- metricas.json 06/10/2026, 17:02 (Brasília)código 1f075868ed56+alterado
- avaliacao.json 09/10/2026, 00:07 (Brasília)código c41b9e6f1b95+alterado
Conferência do manifesto na construção desta página
Na construção da página, cada arquivo listado no manifesto foi lido do pacote publicado e teve tamanho e sha256 comparados com os do manifesto. Os 270 conferiram.
- Id da publicação
- de3ba2c533a9aa2aed2617bddbb5021d52ac28f27c870fa3f824f353efe4485d
- Manifesto completo
- sim: lista todos os arquivos publicados
- Regra do id
- sha256 da lista JSON [caminho, bytes, sha256] de todos os arquivos listados, em ordem de caminho (separadores sem espaço, UTF-8): o mesmo conjunto de bytes tem o mesmo id.
Dicionário das bases de operação
- /energia/series/pld_horario.csv
- data_hora_local: data e hora no horário de Brasília (AAAA-MM-DDTHH:MM); SE, S, NE, N: PLD de cada submercado naquela hora, em R$/MWh nominais.
- /energia/series/pld_diario.csv
- data: dia (AAAA-MM-DD); SE, S, NE, N: média simples das 24 horas do PLD, em R$/MWh nominais, calculada pela Scrutiniums; dias sem as 24 horas ficam de fora.
- /energia/series/ear_diario.csv
- data: dia; SE, S, NE, N: energia armazenada em % da EAR máxima, como publicada pelo ONS; SIN_calculado: soma das EAR dividida pela soma das máximas, calculada pela Scrutiniums.
- /energia/series/ena_diario.csv
- data: dia; colunas _pct_mlt: ENA bruta em % da MLT; colunas _mwmed: ENA bruta em energia (o dicionário do ONS descreve a unidade como MWmês); SIN calculado pela Scrutiniums.
- /energia/series/carga_diaria.csv
- data: dia; SE, S, NE, N: carga em MWmed, como publicada pelo ONS; SIN_calculado: soma dos quatro subsistemas.
- /energia/series/geracao_diaria.csv
- data: dia; hidraulica, termica, eolica e solar por região (SIN, SE, S, NE, N): média diária da geração verificada horária, em MWmed.
- /energia/series/intercambio_diario.csv
- data: dia; fluxo_: intercâmbio verificado médio do dia por fronteira, em MWmed, positivo no sentido indicado no nome (N_NE = do Norte para o Nordeste); programado_: valor programado pelo ONS.
- /energia/series/cmo_semanal.csv
- semana_operativa: data de referência da semana operativa informada pelo ONS; para cada subsistema, CMO semanal e por patamar de carga (leve, média, pesada), em R$/MWh.
Os arquivos dos demais módulos têm o dicionário no arquivo de dicionários e na ficha de cada arquivo, acima.
Limitações declaradas
- Os arquivos CSV maiores que 2 MB têm também uma versão compacta (Parquet); os menores só têm CSV.
- O histórico completo de capturas, com as versões anteriores de cada dado, não é publicado no repositório (ocupa centenas de MB); uma cópia durável fica numa versão publicada do repositório, sobrescrita a cada execução.
- O link da versão exata aponta o código do build desta página.
- O silver com as vintages não é publicado no git (centenas de MB); a cópia durável fica no asset energia-silver.db.gz da release energia-estado do repositório, sobrescrita a cada execução.
- Commit deste build: 8b27b333937761e110b2f2a81018131ad649899a.
- O manifesto gravado pelo módulo dados fica incompleto (completo = false) até o orquestrador regravá-lo no fim da execução: os arquivos reescritos depois dele aparecem em fora_do_manifesto.
- O link para a versão exata depende do commit do build; sem ele, a página aponta o histórico do arquivo no ramo principal, e o sha256 do manifesto identifica a versão.
- O silver com as vintages não vai para o git: reconstruir uma gold exige a cópia durável da release energia-estado.
Quais arquivos posso baixar?
- Lista de arquivos da publicação (manifesto, JSON) (JSON)Arquivo manifesto.json
- Dicionário dos arquivos (JSON)Arquivo arquivos.json
- Validações por conjunto e por arquivo (CSV)2.391 linhasArquivo dados_validacoes.csv
Validação automática: o relatório desta publicação não cobre este arquivo.
Colunas e códigosUma linha por checagem automática: id; alvo (gold, CSV, conjunto ou identidade); tipo; resultado (aprovado, ressalva, reprovado, nao_aplicavel); detalhe; criterio; verificados (itens conferidos); problemas; exemplos (JSON com até 5 casos).
Próxima pergunta: Do arquivo ao número que você vê