Painel de Business Intelligence — Power BI · DAX · Python
TL;DR (EN). A Power BI portfolio project analysing ten years of Brazil's soybean & corn supply chain: production, export revenue, the dependency on China, the effect of FX and global interest rates, and the toll of El Niño / La Niña. Built on a star-schema model with ~40 DAX measures (period-aware KPIs), a small custom HTML/SVG visual I packaged as a
.pbiviz, and a reproducible Python data pipeline over official public sources.
Entre 2015 e 2025 o Brasil consolidou-se como o maior exportador mundial de soja e um dos maiores de milho. Este painel mede como esse crescimento aconteceu e quão exposto o resultado do setor ficou a três forças externas: a demanda da China, o câmbio e os juros globais e a variabilidade climática.
O projeto vai da coleta (scripts Python sobre APIs e séries históricas oficiais) até a apresentação (um painel de uma página, um carrossel para LinkedIn e a análise escrita).
| Achado | Números | |
|---|---|---|
| 1 | Produção +71% em dez anos, mas ~2/3 vieram de área nova, não de produtividade | soja: área +47%, produtividade +20% |
| 2 | Volume de soja recorde em 2025, receita menor: a exportação do complexo caiu de US$ 80,9 bi (2023) para US$ 61,5 bi (2025) | preço internacional da soja voltou ao nível de 2015 |
| 3 | Quem sustentou a renda em reais foi o câmbio (R$ 3,33 → R$ 5,59); a Selic a 15% encareceu o custeio | — |
| 4 | 79% da soja em grão exportada vai para a China — oscilou entre 82% (2018) e 68% (2022, guerra comercial) | média da década ≈ 75% |
| 5 | El Niño / La Niña subtraíram ~64 Mt de safra desde 2016 | cada fase forte custa 15–19 Mt |
A frase que resume o painel:
"Em dez anos o Brasil quase dobrou a receita de exportação de grãos — mas ficou mais exposto: o resultado em dólar é ditado por câmbio e juros globais, três em cada quatro sacas de soja vão para a China, e o clima virou a maior fonte de volatilidade da oferta."
Análise completa em 01_Documentacao/03_Publicacao_LinkedIn.md.
Interativo por um único filtro. Um slicer de dCalendario[Ano] governa todos os visuais
e cartões (produção, comércio, China e clima). Sem filtro, o painel mostra o período completo
2015–2025; ao selecionar anos, tudo recalcula para a janela.
- 4 cartões de KPI — produção, receita de exportação, destino China, perda climática.
- 4 gráficos — produção por safra (colunas empilhadas soja + milho, quebras climáticas marcadas); receita por ano; produção por estado (Top 8); participação da China (100% empilhado).
- 1 frase-insight no rodapé.
Os visuais são renderizados por um custom visual HTML/SVG que empacotei (.pbiviz), com
barras arredondadas e sparklines dentro dos cartões — importável sem conta Microsoft / sem
AppSource. Código-fonte em 04_PowerBI/visual_AgroHtmlContent/.
Carrossel de 4 slides (1080×1080), pronto para exportar em PDF:
05_Design/Carrossel_LinkedIn.html ·
versão publicada ↗
Legenda, roteiro e checklist de publicação em
01_Documentacao/03_Publicacao_LinkedIn.md.
.
├── Painel_Soja_Milho_2015_2025.pbix # o painel (Power BI Desktop)
│
├── 01_Documentacao/
│ ├── 01_Metodologia.md # escopo, fontes, decisões de modelagem
│ ├── 02_Log_Validacao.md # conferência dos números
│ └── 03_Publicacao_LinkedIn.md # análise completa + legenda + como postar
│
├── 02_Dados_Brutos/ # dados como baixados das fontes
│ ├── fetch_bcb.py # coleta câmbio, Selic, IPCA via API SGS do BCB
│ ├── conab_serie_historica_graos.txt # CONAB — produção/área/produtividade
│ ├── secex_*.csv # SECEX / Comex Stat — exportação
│ └── cepea_*, bcb_*, *.md # preços, macro, notas de pesquisa
│
├── 03_Dados_Tratados/ # fatos limpos (esquema estrela)
│ ├── build_producao.py # CONAB txt -> fato_safra_uf / _brasil
│ ├── build_macro_anual.py # BCB mensal -> fato_macro_anual
│ └── fato_*.csv
│
├── 04_PowerBI/
│ ├── build_modelo_powerbi.py # monta o Agro_Soja_Milho_2015_2025.xlsx (15 abas)
│ ├── Agro_Soja_Milho_2015_2025.xlsx # base modelada — fonte do .pbix
│ ├── Como_Montar_o_Modelo.md # relacionamentos + medidas, passo a passo
│ ├── conectar_e_montar_modelo.ps1 # monta o modelo via TOM no .pbix aberto
│ ├── KPIs_Dinamicos.dax # 10 medidas KPI (period-aware)
│ ├── Cartoes_e_Graficos_HTML.dax # 9 medidas que retornam HTML/SVG
│ ├── ajustar_modelo_interativo.ps1 # ativa a relação-mestre + aplica os .dax
│ ├── Cartoes_e_Graficos_HTML.md # guia do custom visual + slicers recomendados
│ ├── AgroHtmlContent.pbiviz # o custom visual (importar)
│ └── visual_AgroHtmlContent/ # código-fonte do visual (TypeScript + pbiviz)
│
└── 05_Design/
├── Tema_PowerBI_Agro.json # tema (paleta agro)
├── Referencias_Design.md # direção visual
└── Carrossel_LinkedIn.html # carrossel de 4 slides
Esquema estrela com dois eixos de tempo que precisam conviver:
| Eixo | Tabela | Alimenta |
|---|---|---|
Ano-safra (2014/15…2024/25) |
dSafra |
produção (fSafra), perdas de clima (fEventosClima) |
Ano-calendário (2015…2025) |
dCalendario |
exportação, câmbio/juros, China, preços |
A relação dSafra[AnoColheita] → dCalendario[Ano] (ativa) conecta os dois — como
ano-colheita = ano-calendário (safra 2024/25 → colheita 2025), um único slicer de
dCalendario[Ano] filtra o painel inteiro.
Medidas organizadas em pastas de exibição (_Medidas): 1 Producao, 2 Comercio Exterior,
3 China, 4 Clima, 5 Macro, 9 CARTOES (KPIs dinâmicos), 0 HTML (visuais).
Detalhe em 04_PowerBI/Guia_Cartoes_Graficos_DAX.md.
- Power BI Desktop — modelo estrela, ~40 medidas DAX, KPIs period-aware
(
ALLSELECTED, context transition,REMOVEFILTERS,TREATAS). - Python 3 (
urllib,csv,openpyxl) — coleta e transformação reprodutíveis. - PowerShell + TOM (Tabular Object Model) — montagem/ajuste do modelo por script.
- TypeScript +
powerbi-visuals-tools— o custom visualAgro HTML Content. - HTML + SVG — cartões, gráficos e o carrossel.
1. Pipeline de dados (requer Python 3 + pip install openpyxl):
python 02_Dados_Brutos/fetch_bcb.py # baixa séries do Banco Central
python 03_Dados_Tratados/build_producao.py # CONAB -> fatos de safra
python 03_Dados_Tratados/build_macro_anual.py # BCB mensal -> macro anual
python 04_PowerBI/build_modelo_powerbi.py # gera Agro_Soja_Milho_2015_2025.xlsx2. Power BI — abrir Painel_Soja_Milho_2015_2025.pbix. Para montar o modelo do zero a
partir do Excel, seguir 04_PowerBI/Como_Montar_o_Modelo.md
(ou rodar conectar_e_montar_modelo.ps1 com o .pbix aberto).
3. Cartões e gráficos HTML — importar 04_PowerBI/AgroHtmlContent.pbiviz
(Inserir → Importar um visual de um arquivo), aplicar KPIs_Dinamicos.dax e
Cartoes_e_Graficos_HTML.dax. O script ajustar_modelo_interativo.ps1 faz os dois de uma vez.
Guia completo em 04_PowerBI/Cartoes_e_Graficos_HTML.md.
Todas oficiais e públicas:
| Bloco | Fonte |
|---|---|
| Produção, área, produtividade | CONAB — série histórica |
| Exportação (volume e valor) | SECEX / Comex Stat — MDIC |
| Produção por estado | IBGE — PAM / SIDRA |
| Câmbio, Selic, IPCA | Banco Central do Brasil — API SGS |
| Preços ao produtor | CEPEA-ESALQ/USP |
| El Niño / La Niña (ONI) | NOAA — Climate Prediction Center |
| Preços internacionais, juros EUA | World Bank, Federal Reserve |
Lista com data de extração na aba Fontes do Excel e em
01_Documentacao/01_Metodologia.md.
- Perdas por clima são estimativas — a diferença entre a produtividade tendencial esperada e a realizada nas safras de El Niño / La Niña de intensidade moderada a forte. É ordem de grandeza, não um número oficial.
- Consolidado em milhões de toneladas e por cultura; não separa 1ª/2ª safra de milho nem detalha preços em saca de 60 kg — próximos passos possíveis.
- Extração dos dados: setembro de 2026. Os valores dos cartões refletem essa data.
- Escopo é diagnóstico dos últimos dez anos, não projeção.
Código, scripts, medidas DAX e documentação sob MIT. Os dados originais pertencem às instituições citadas — consulte os termos de uso de cada fonte.
Vitor Rafaeli bueno — projeto de portfólio em análise de dados / BI.
- GitHub: @VitorRafaeli
- LinkedIn: https://www.linkedin.com/in/vitor-rafaeli-a67452358/
