Automatizando a coleta de dados de demonstrativos financeiros: construindo um Dashboard (Parte 02)

No post de hoje continuamos o processo de automatização de dados financeiros de empresas brasileiras. No último post, entendemos como podemos usar o R para coletar os dados de demonstrações financeiras e construir indicadores, hoje iremos construir um Dashboard que permita que possamos automatizar todo o processo.

O ponto de partida será o mesmo da última postagem: utilizar o pacote {GetDFPData2} do Marcelo S. Perlin para coletar os dados das Demonstrações Financeiras Padronizadas disponibilizados pela CVM e B3. A ideia é construir um arquivo .R em que permita coletar os demonstrativos e construir os indicadores e em seguida, em um outro arquivo .Rmd, construir um dashboard a partir do {flexdashboard}. O resultado será um dashboard simples, como na imagem abaixo.

Todo o processo abaixo pode ser conferido através da plataforma do Clube AM, o repositório de código da Análise Macro, onde disponibilizamos um vídeo explicando o código do post, e também os arquivos utilizados.

Coleta e Construção dos Indicadores

Em primeiro lugar devemos escolher quais indicadores iremos demonstrar no painel. Não iremos realizar julgamentos extensos e longos de quais indicadores melhor representam uma análise da empresa, a ideia é selecionar, dentre os diferentes grupos, indicadores que sirvam de exemplo para nosso Dashboard e ensinar a vocês a como construir o código. Ficará a cargo do leitor julgar e alterar as variáveis utilizadas, afinal, um Dashboard deve representar aquilo que melhor atende ao desejo da análise do usuário.

Dito isto, vamos construir os seguintes indicadores, representados em gráficos de série temporal:

DRE

  • Receita
  • Custo da Mercadoria
  • Lucro/Prejuízo

As informações acima são representadas em um único gráfico no Dashboard.

Indicadores

iremos construir indicadores que representam a situação da empresa, dividimos em quatro grupos:

Liquidez

  • Corrente
  • Geral

Endividamento

  • De Capital próprio
  • Passivo Total

Rentabilidade

  • ROE
  • ROA

Margem

  • Margem Bruta
  • Margem Líquida

Uma vez definido os indicadores, podemos saber quais contas e demonstrações devemos utilizar e portanto, podemos coletar os dados. Vamos criar um arquivo .R e construir o código.

Abaixo, utilizamos a função get_info_companies para coletar o código CVM das empresas que iremos analisar, no caso, após a coleta, realizamos alguns filtros: empresas que são ativas, que são negociadas em bolsa e que não são instituições financeiras (visto que não faria sentido analisar a maioria dos indicadores acima desse setor). Veja que no código abaixo capturamos não somente o código CVM, bem como também a Denominação Social das empresas, isso nos ajudará a construir a aba de input do Dashboard.

Com os códigos, podemos utilizar a função get_dfp_data para capturar o balanço patrimonial e a DRE desde 2011 das empresas filtradas.

Teremos no objeto l_dfp uma lista contendo três data frames, um para cada demonstrativo, alteramos os nomes de cada data frame na lista com a função set_names, e empilhamos todas as informações com bind_rows, para formar apenas um data frame. Em seguida, selecionamos apenas algumas colunas.

Com os dados limpos, podemos criar os indicadores. Seguiremos um processo manual de Data Wrangling de forma a facilitar o calculo do indicador, realizando o filtro dos indicadores por meio de seus nomes e números de contas (o duplo filtro é para confirmar que não haja nenhum erro) e alterando o formato de long para wide e calculando o indicador com group_by e mutate. Repetimos o processo para todos os indicadores.

Com todas as informações coletadas e os indicadores criados, salvamos os dados em um arquivo .Rdata. Esse arquivo será útil pois facilitará o processo de renderização do Dashboard.

OBS: reparem que os nomes de alguns indicadores estão formatados de uma forma não usual, na realidade, isso é uma mudança para que o R reconheça os caracteres especiais das palavras e não gere nenhum erro.

Criando o Arquivo do {flexdashboard}

Agora que construímos todo o processo de coleta de dados, devemos utilizar os dados salvos e carregar em um ambiente em que possamos criar o dashboard, isto é, através do {flexdashboard}. Para criar um arquivo no R, vamos em File -> New File -> Rmarkdown -> From Template -> Flex Dashboard (é necessário instalar o pacote).

Abaixo, segue a construção do código do arquivo .Rmd criado. Após o cabeçalho YAML, cada chunk é representado por um bloco de código.

Carregamos nesse arquivo .Rmd os dados salvos anteriormente.

Criamos a aba lateral que representará o input do Dashboard. O input será as companhias coletadas e para as informações de input utilizaremos o vetor criado por meio do filtro feito no arquivo de coleta e tratamento, salvos no objeto names_companies.

## Row {.sidebar data-width="200"}
-----------------------------------------

Agora podemos criar os gráficos. Cada bloco de código representa um chunk do arquivo, bem como representamos a construção do espaço do flexdashboard por meio de "linhas" (Rows)  Primeiro, criamos o gráfico de DRE e em seguida dos indicadores por meio de um tabset.

Para construir os gráficos, utilizamos o pacote {echarts4r}, que auxilia no processo de construção de um ambiente dinâmico em Shiny a partir da função renderEcharts4r.

Row {data-width=575}
--------------------------------------
### DRE

Row {.tabset}
-----------------------------------------------------------------------
### Liquidez Corrente

### Liquidez Geral

### Endividamento Terceiros / Capital Próprio

### Endividamento Terceiros / Passivo Total

### ROA

### ROE

### Margem Bruta

### Margem Líquida

Por fim, construímos o Dashboard que permite selecionar as empresas que desejamos analisar os indicadores. No próximo post, focaremos na parte de automatização, isto é, utilizaremos o Github Actions para que possamos atualizar a coleta de dados frequentemente.

Quer saber mais?

Veja nossos cursos da trilha de Ciência de dados para Economia e Finanças onde ensinamos a coletar dados financeiros e econômicos e também a construir Dashboard com o R.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Análise de impacto fiscal sobre o dolár com Python

Usamos uma cesta de 12 moedas para construir um cenário contrafactual da taxa de câmbio após o último anúncio de pacote fiscal, com base em modelagem Bayesiana. No período, o dolár depreciou quase 5% e passou os R$ 6,15, enquanto que na ausência da intervenção a moeda deveria estar cotada em R$ 5,78.

Resultado IBC-br - Outubro/2024

A Análise Macro apresenta os resultados da IBC-br de Outubro de 2024, com gráficos elaborados em Python para coleta, tratamento e visualização de dados. Todo o conteúdo, disponível exclusivamente no Clube AM, foi desenvolvido com base nos métodos ensinados nos cursos da Análise Macro, permitindo aos assinantes acesso aos códigos e replicação das análises.

Resultado PMC - Outubro/2024

A Análise Macro apresenta os resultados da PMC de Outubro de 2024, com gráficos elaborados em Python para coleta, tratamento e visualização de dados. Todo o conteúdo, disponível exclusivamente no Clube AM, foi desenvolvido com base nos métodos ensinados nos cursos da Análise Macro, permitindo aos assinantes acesso aos códigos e replicação das análises.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.