Introdução
Analisar demonstrações financeiras de empresas de capital aberto é uma tarefa fundamental para investidores, economistas e analistas. No entanto, esse processo pode ser demorado e complexo, envolvendo a coleta de dados brutos, tratamento manual e a difícil tarefa de extrair insights relevantes de milhares de linhas em uma planilha. E se pudéssemos automatizar tudo isso em um dashboard interativo e ainda contar com um assistente de Inteligência Artificial para nos ajudar na interpretação?
Neste artigo, vamos mostrar o passo a passo de como construir uma poderosa ferramenta de análise financeira. Utilizaremos Python para coletar e tratar dados públicos da CVM, o framework Shiny for Python para criar um dashboard dinâmico e a IA Generativa do Google Gemini para gerar análises instantâneas.
Para obter o código e o tutorial deste exercício faça parte do Clube AM e receba toda semana os códigos em R/Python, vídeos, tutoriais e suporte completo para dúvidas.
Quer obter o código e também aprender a como usar IA em Dados financeiros? Veja nosso curso Inteligência Artificial para Contadores e Administradores!
Objetivo do Exercício
O objetivo é claro: transformar os dados brutos das Demonstrações Financeiras Padronizadas (DFP) das empresas listadas na bolsa brasileira em um dashboard interativo e inteligente. Com esta ferramenta, qualquer usuário poderá selecionar uma empresa, um período e um demonstrativo específico (Balanço Patrimonial, DRE ou DFC) e, além de visualizar os dados de forma organizada, poderá fazer perguntas em linguagem natural para obter uma análise resumida e focada nos pontos-chave, gerada por IA.
Como construir o Dashboard?
A construção de uma ferramenta tão completa pode ser dividida em cinco etapas lógicas, desde a obtenção dos dados até a integração da inteligência artificial.
1. Bibliotecas: As Ferramentas do Nosso Projeto
Para construir nossa aplicação, utilizamos um conjunto de bibliotecas Python robustas e especializadas. As principais foram:
- Pandas: A espinha dorsal de toda a manipulação de dados, usada para ler, limpar, transformar e estruturar as informações financeiras.
- Wget e ZipFile: Essenciais para a automação da coleta de dados, permitindo baixar os arquivos diretamente do portal da CVM e descompactá-los.
- Shiny for Python: A biblioteca central para a criação do nosso dashboard. Com ela, construímos a interface do usuário (inputs, tabelas, layouts) e garantimos a reatividade, ou seja, a capacidade do dashboard de se atualizar automaticamente com base nas seleções do usuário.
- Google Generative AI: O pacote que nos permite conectar nossa aplicação à API do Gemini, enviando os dados e os prompts do usuário para obter as análises geradas por IA.
2. Coleta de Dados: A Fonte Aberta da CVM (DFP)
A base de qualquer boa análise são dados de qualidade. Felizmente, a Comissão de Valores Mobiliários (CVM) disponibiliza um vasto acervo de informações em seu Portal de Dados Abertos. Para este projeto, focamos nos arquivos de Demonstrações Financeiras Padronizadas (DFP).
O processo de coleta foi automatizado da seguinte forma:
- Download do Cadastro: Primeiro, baixamos o arquivo
cad_cia_aberta.csv
, que contém informações de todas as companhias abertas. Filtramos este arquivo para obter uma lista de empresas ativas na bolsa, excluindo o setor financeiro para focar em empresas não-financeiras. - Download dos Arquivos DFP: Em seguida, criamos uma rotina para baixar os arquivos anuais das DFPs, que são disponibilizados em formato
.zip
. Nosso script acessa o portal e baixa os dados para o período desejado (neste caso, de 2010 a 2022). - Extração e Concatenação: Após o download, os arquivos são descompactados, e os dados de cada demonstrativo (Balanço Patrimonial Ativo, Passivo, DRE, etc.) de todos os anos são lidos e concatenados em arquivos únicos, preparando o terreno para a fase de tratamento.
3. Tratamento de Dados
Os dados brutos da CVM, embora completos, não estão prontos para visualização. A etapa de tratamento foi crucial e envolveu:
- Filtragem de Contas: Selecionamos apenas as contas contábeis mais relevantes para uma análise macro, como “Ativo Total”, “Patrimônio Líquido”, “Receita de Venda” e “Lucro/Prejuízo do Período”.
- Pivotagem da Tabela: Os dados originais vêm em formato “longo” (uma linha para cada conta). Nós os transformamos para o formato “largo” (ou “pivotado”), onde cada conta se torna uma coluna. Isso facilita a leitura e a análise.
- Criação de Novas Métricas: Calculamos campos importantes que não vêm prontos, como o “Passivo Total”, subtraindo o Patrimônio Líquido do Passivo Total.
- Limpeza e Formatação: Ajustamos os tipos de dados, principalmente as datas, para garantir que os filtros do dashboard funcionem corretamente.
4. Construção do Dashboard com Shiny Python
Com os dados limpos e estruturados, entramos na fase de visualização. O Shiny for Python se destaca por permitir a criação de dashboards web interativos usando apenas Python, sem a necessidade de escrever HTML, CSS ou JavaScript.
Os benefícios de construir um dashboard são imensos:
- Democratização do Acesso: Transforma planilhas complexas em uma ferramenta intuitiva que qualquer pessoa da organização pode usar.
- Tomada de Decisão Ágil: Permite a identificação de tendências, anomalias e padrões de forma visual e rápida.
- Análise Dinâmica: O usuário pode explorar diferentes cenários (empresas, períodos) com apenas alguns cliques.
No nosso dashboard, implementamos:
- Inputs Interativos: Caixas de seleção para o usuário escolher o demonstrativo e a empresa, além de um seletor de período.
- Tabela Reativa: Uma tabela de dados que se atualiza instantaneamente com base nas seleções feitas, mostrando apenas as informações de interesse.
- Layout Organizado: Utilizamos
layout_columns
para posicionar a tabela de dados e o assistente de IA lado a lado, criando uma experiência de usuário fluida.
5. Integração com a API do Gemini
Este é o grande diferencial do nosso projeto. A integração com uma IA Generativa como o Google Gemini eleva o dashboard de uma simples ferramenta de visualização para um verdadeiro assistente de análise.
O processo funciona da seguinte maneira:
- Prompt do Usuário: O usuário digita uma pergunta na caixa de texto do “AI Assistant”, como “Interprete o demonstrativo em 5 pontos-chaves”.
- Envio de Contexto para a IA: Nosso código pega a tabela de dados filtrada no momento, a converte para um formato de texto (markdown) e a envia para a API do Gemini junto com o prompt do usuário.
- Instrução de Sistema (Persona da IA): Para garantir respostas de alta qualidade, configuramos um
system_instruction
, dizendo ao Gemini para atuar como “um profissional experiente em contabilidade e análise de demonstrações financeiras”. - Geração e Exibição da Resposta: O Gemini processa os dados e a pergunta, gera uma análise textual e a envia de volta para o nosso dashboard, que a exibe de forma clara e formatada para o usuário.
O resultado é uma análise concisa e especializada, gerada em segundos, que pode acelerar drasticamente o processo de interpretação de dados financeiros.
Quer aprender mais?
Conheça nossa Formação do Zero à Análise de Dados Econômicos e Financeiros usando Python e Inteligência Artificial. Aprenda do ZERO a coletar, tratar, construir modelos e apresentar dados econômicos e financeiros com as melhores ferramentas do mercado.