importa_fluxo_xlsx <- function(file, massa=c("CV", "MIL"), plano=c("PREV", "FIN", "TES"), geracao=c("GA", "GF")){
# Verifica se os pacotes necessarios estão instalados.
if(!require(readxl)) stop("O pacote 'readxl' é necessário e não está instalado")
if(!require(dplyr)) stop("O pacote 'dplyr' é necessário e não está instalado")
if(!require(stringr)) stop("O pacote 'stringr' é necessário e não está instalado")
if(!require(readr)) stop("O pacote 'readr' é necessário e não está instalado")
massa <- match.arg(massa)
plano <- match.arg(plano)
geracao <- match.arg(geracao)
aba <- excel_sheets(file)
aba <- grep(str_c(massa, " *", plano, " *", geracao), aba, value = TRUE)
ano <- str_extract(aba, "^\\d{4}")
cnpj <- str_extract(aba, "\\d+$")
fluxo <- read_excel(file, sheet = aba, range = "C6:BQ155", col_names = FALSE)
codigos <- c("100101", "100201", "100301", "100401", "109001", "111000", "111101", "111201", "111301", "111401", "112000",
"119900", "121000", "121100", "121200", "121300", "121400", "121500", "121600", "121700", "122000", "122100",
"122200", "122300", "122400", "122500", "122600", "122700", "123000", "123100", "123200", "123300", "123400",
"124000", "124100", "124200", "124300", "124400", "124500", "129000", "130101", "130201", "139901", "190000",
"210000", "211001", "212001", "213001", "214001", "215001", "219901", "220000", "221000", "222000", "223000",
"224000", "225000", "226000", "227000", "229000", "239901", "240000", "250001", "260001", "270001", "280001",
"290001")
names(fluxo) <- str_c("V", codigos)
fluxo <- fluxo %>% mutate(across(everything(), \(x) parse_number(x, locale = locale(decimal_mark = ",", grouping_mark = "."))))
fluxo <- fluxo %>% mutate(ano = ano,
cnpj = cnpj, .before = 1)
fluxo
}Fluxos Atuariais dos RPPS: Descrição e Análise
Introdução
Os fluxos atuariais são elementos essenciais para avaliar as condições de solvência e liquidez do RPPS.
A Portaria 1467/2022 diz que o fluxo atuarial é parte integrante do relatório de avaliação atuarial (Art. 28) e que tem por objetivo possibilitar o acompanhamento do nível de constituição de reservas, ou seja, deve nos permitir acompanhar como irá se desenvolver tanto o passivo atuarial quanto os ativos garantidores, dado o imperativo de equilíbrio financeiro e atuarial insculpido na Constituição Federal.
De um lado, será possível avaliar a solvência do plano verificando se o valor dos ativos garantidores equivale ao passivo atuarial, e de outro, será possível avaliar a liquidez observando-se, ano a ano, se o valor das receitas previstas mais os ativos financeiros supera o valor das despesas.
Para que a liquidez do plano possa ser avaliada de forma adequada pelo fluxo, será necessário expurgar do valor dos ativos garantidores todos os ativos que não sejam aplicações financeiras e, por outro lado, incluir no fluxo as receitas que se espera obter com esses ativos. Se assim não for, não nos parece possível fazer uma boa avaliação da liquidez do plano.
Ainda de acordo com a Portaria 1467/2022, os fluxos atuariais são a base matemática para o cálculo do valor presente atuarial das obrigações e direitos do plano de benefícios e devem incluir as projeções de todas as receitas e despesas previdenciárias.
A sua definição, pela Portaria 1467/2022 é:
XXIII - fluxo atuarial: discriminação dos fluxos de recursos,
direitos, receitas e encargos do plano de benefícios do RPPS,
benefício a benefício, período a período, que se trazidos a
valor presente pela taxa atuarial de juros adotada no plano,
convergem para os resultados do Valor Atual dos Benefícios
Futuros e do Valor Atual das Contribuições Futuras que deram
origem aos montantes dos fundos de natureza atuarial, às
provisões matemáticas (reservas) a contabilizar e ao eventual
deficit ou superavit apurados da Avaliação Atuarial;
Os modelos dos fluxos atuariais estão disponíveis para download na seguinte página do MPS (https://www.gov.br/previdencia/pt-br/assuntos/rpps/atuaria/supervisao-atuarial-dos-rpps/draa-fluxos-nta-e-outras-obrigacoes)
Como nos chama a atenção José Angelo Rodrigues:
“Do ponto de vista da gestão estruturada, resultados estáticos, embora exigidos pela legislação própria, pouco ajudam a compreender o verdadeiro estado financeiro-atuarial dos Planos. Todas as métricas disponíveis devem ser observadas sob o aspecto dinâmico e a análise temporal de seu desempenho.”
A análise do fluxo atuarial é elemento fundamental para uma adequada análise da situação de um RPPS em seu aspecto dinâmico além de ser elemento indispensável para estudos de ALM e, também, para fundamentar estudos de implementação e revisão de segregação de massas.
Os fluxos atuariais devem ser elaborados conforme a estrutura e os elementos mínimos previstos no modelo disponibilizado pelo Ministério da Previdência Social - MPS em sua página na internet e serem encaminhados ao MPS.
Recentemente o MPS passou a disponibilizar para consulta pública no CADPREV Web os fluxos atuariais dos RPPS em planilha eletrônica do Excel.
Fluxo atuarial disponibilizado pelo MPS
Conquanto os fluxos atuariais sejam encaminhados ao MPS em arquivos no formato csv, os fluxos disponibilizados pelo MPS à sociedade estão contidos em arquivos do Excel contendo oito abas.
Os fluxos podem ser categorizados quanto ao tipo: previdenciário, financeiro e tesouro, quanto a massa de segurados:civil ou militar e ainda por geração: atual ou futura.
Assim, as abas da planilha do fluxo são identificadas, por exemplo, com a seguinte estrutura: 2024CV PREV GA29172467000109, indicando tratar-se do fluxo atuarial do exercício de 2024, relativo à massa de servidores civis (CV) do fundo previdenciário (PREV) e relativo à geração atual (GA) do RPPS do Ente cujo CNPJ é 29172467000109 (Angra dos Reis - RJ).
Para obter os fluxos atuariais o usuário deve acessar o CADPREV, escolher a opção “Consultas Públicas”, “DRAA” e por fim a opção “Gerar Relatório dos Fluxos Atuariais”, conforme figura a seguir:
Na tela que se segue basta preencer o exercício, selecionar a unidade da federação e o ente desejado e realizar a consulta. Não é necessário preencher as demais informações.
A figura a seguir mostra um pequeno trecho do fluxo atuarial.
As duas primeiras colunas destinam-se à identificação do DRAA e as demais colunas contém as rubricas do fluxo atuarial agrupadas em blocos. A figura mostra o bloco de informações preliminares que comprende as rubricas 100101 - Instante até a rubrica 109001 - Base de Cálculo da Contribuição Normal.
Na seção seguinte faremos uma descrição dos blocos que compõem o fluxo atuarial e as respectivas rubricas.
Anatomia do Fluxo Atuarial
O fluxo atuarial é constituído por um conjunto de 67 rubricas agrupadas em 12 blocos de informações conforme mostrado na figura a seguir:
Cada linha na coluna central da figura representa um “bloco” de informação constituído de uma ou mais rubricas, conforme mostrado na terceira coluna.
A coluna central apresenta um agrupamento dos blocos de informação onde pode-se ver que existe um conjunto de blocos que reúnem as rubricas que dizem respeito às receitas do RPPS (azul), um outro conjunto de blocos (verde) que reúne as rubricas de despesa.
O bloco de “RESULTADOS” contém as rubricas que permitem a apuração do resultado atuarial apurado no fluxo atuarial.
O bloco de “INFORMAÇÕES PRELIMINARES” contém rubricas que informam a base de contribução além de informações relacionadas à taxa de juros adotada para a realização dos cálculos.
A seção seguinte tem por objetivo detalhar as rubricas que compõem cada bloco do fluxo atuarial.
Informações Preliminares
Como mostrado na figura, o primeiro bloco do fluxo atuarial é composto por 5 rubricas:
100101 - Instante
100201 - Ano
100301 - Taxa de Juros (%)
100401 - Fator de Desconto
109001 - Base de Cálculo da Contribuição Normal
Receitas
As rubricas que representam as receitas do RPPS estão agrupadas nos blocos 2 a 8, sendo que o bloco 8 é constituído de uma única rubrica que contém a totalização das receitas.
As receitas (como as despesas) são segregadas em dois grupos: o de Benefícios Concedidos (BC) e o de Benefícios a Conceder (BaC).
As receitas de benefícios concedidos dizem respeito as contribuições advindas dos atuais aposentados e pensionistas, enquanto as receitas de benefícios a conceder dizem respeito as receitas advindas das contribuições do Ente, dos servidores ativos e dos futuros aposentados e pensionistas.
A figura a seguir apresenta as rubricas que compõem as receitas do RPPS:
A primeira coluna (verde) traz as rubricas de receitas relativas aos benefícios concedidos e as duas outras colunas (azul) referem-se a benefícios a conceder.
As rubricas assinaladas em laranja resultam do somatório das rubricas assinaladas em verde.
O total das receitas resulta do somatório das rubricas assinaladas em laranja.
Um ponto para o qual é importante chamar a atenção é que entre as receitas, o modelo do fluxo atuarial do MPS inclui as receitas do plano de amortização e dos termos de parcelamento de débitos, além do fluxo de receitas provenientes de ativos vinculados por lei ao RPPS.
Despesas
A figura a seguir elenca as rubricas que compõem os dois blocos de despesa (blocos 9 e 10). O bloco 11 refere-se ao total das despesas e resulta da soma das duas rubricas que sintetizam os encargos de benefícios concedidos (211000) e de benefícios a conceder (220000)
Um ponto a ser observado é que as despesas com a compensação financeira (COMPREV a Pagar) estão embutidas nos encargos com benefícios conforme destacado em vermelho na figura.
Resultados
O fluxo apresenta um bloco de “RESULTADOS” onde estão agrupadas as rubricas que auxiliam no cálculo da evolução dos ativos garantidores e no cálculo do resultado atuarial.
250001 - Insuficiência ou Excedente Financeiro
Essa é a primeira rubrica do bloco de resultados e apura a diferença, ano a ano, entre o total das receitas (rubrica 190000) e o total das despesas (rubrica 240000).
Os valores da rubrica são obtidos pela subtração, linha a linha, dos valores das rubricas 190000 e 240000.
Essa operação pode ser representada da seguinte forma:
\[ 250001[i] = 190000[i] - 240000[i] \quad i = 1, 2, \dots, 150 \]
A notação 250000[i] significa: linha i do fluxo, sendo que i pode variar de 1 a 150, que são os instantes do fluxo, conforme rubrica 100101.
Os fluxos sempre iniciarão no período 1, o que indica serem postecipados, o que é uma exigência da Portaria 1467/2022 (“Art. 31, par. 2º”, “Art. 15, par. 3º, I” e “Art. 16, par. 2º” do Anexo VI). Fluxos que iniciem no período 0 não estão em conformidade com a Portaria 1467/2022.
260001 - Saldo Acumulado do Exercício a Valor Atual
A obtenção dos valores, ano a ano, é feito somando-se ao saldo dos ativos garantidores na data focal da avaliação (valor na célula BO5) o valor presente atuarial da insuficiência ou excedente financeiro obtido na rubrica 250000.
A fórmula para a obtenção dos valores ano a ano é a seguinte:
\[ 260001[i] = 290001[0] + \sum^{i}_{k = 1} ( 250001[i] \times 100101[i] ) \quad i = 1, 2, \dots, 150 \]
O saldo dos ativos garantidores na data focal é representado por 290001[0] que significa o valor da rubrica 290001 no instante 0 (zero). Esse é precisamente o valor da célula BO5.
270001 - Rentabilidade Esperada (%)
Essa rubrica indica o percentual de rentabilidade real que se espera obter dos ativos garantidores. Essa rubrica possui os mesmos valores da rubrica 100301 - Taxa de Juros (%).
280001 - Rentabilidade dos Ativos que Compõem os Recursos Garantidores
Os valores dessa rubrica resulta de aplicar o percentual indicado na rubrica 270001 ao saldo dos ativos garantidores no ano anterior. A fórmula é a seguinte considerando o fluxo postecipado exigido pela Portaria 1467/2022:
\[ 280001[i] = \frac{270001[i]}{100} \times 290001[i-1] \]
290001 - Evolução dos Recursos Garantidores
Os valores ano a ano dessa rubrica resulta da soma do saldo dos ativos garantidores no ano anterior com a insuficiência ou excedente financeiro apurado no ano mais a rentabilidade esperada no ano.
A fórmula é a seguinte:
\[ 290001[i] = 290001[i - 1] + 250001[i] + 280001[i] \]
Como pode ser visto, o fluxo atuarial é composto por uma grande quantidade de informações relativas a receitas e despesas do plano, a rentabilidade esperada, à taxa de juros adotada, à evolução dos ativos garantidores, etc.
Cabe destacar também que o fluxo compreende um horizonte de projeção de 150 anos, dentro do qual os fluxos se extinguem antes de alcançar esse limiar.
Ao final do fluxo é possível ver duas linhas de nomes Totais de Controle e Totais de Controle a Valor Atual que contém, respectivamente, o soma dos valores da coluna e a soma do produtos do valores das colunas pelas taxas de desconto, o que fornece o valor presente atuarial.
Em especial, na célula BN158 do fluxo consta a apuração do resultado atuarial, ou seja, o valor do déficit, superavit ou equilíbrio conforme mostrado na figura a seguir:
Pelo fluxo do MPS o resultado atuarial (RA) não é obtido conforme determina a teoria atuarial, pois considera como receitas de contribuições normais (VACF) todas as receitas do fluxo, aí incluidas, como já visto, as receitas do plano de amortização, as receitas oriundas de bens, direitos e ativos vinculados aos plano e as receitas de parcelamentos de débitos.
Assim, o fluxo determina o resultado atuarial (RA) pela soma do saldo dos ativos garantidores na data focal da avaliação atuarial com o valor presente atuarial das insuficiências ou excessos financeiros apurados ano a ano, conforme fórmula a seguir.
\[ RA = 290001[0] + \sum^{150}_{i = 1} (250001[i] \times 100401[i]) \]
Ou, escrito de outra forma explicitando o total de receitas e despesas:
\[ RA = 290001[0] + \sum^{150}_{i = 1} (190000[i] - 240000[i]) \times 100401[i] \]
Algumas considerações sobre a estrutura do fluxo
Conforme comentado acima, o modelo de fluxo atuarial do MPS não se coaduna com o que dispõe a teoria atuarial.
Assim, para que se possa fazer uma adequada análise do fluxo faz-se necessário identificar as rubricas que efetivamente dão ensejo ao VACF, componente fundamental para a correta identificação do Passivo Atuarial na ótica prospectiva e consequentemente do resultado atuarial do período.
Sabe-se da literatura atuarial que o Passivo Atuarial (PA) resulta da diferença entre o Valor Atual do Fluxo de Benefícios Futuros (VABF) e o Valor Atual do Fluxo de Receitas de Contribuições Normais Futuras (VACF) ou seja:
\[ PA = VABF - VACF \]
Sabendo-se que as receitas e despesas são categorizadas em Benefícios Concedidos e Benefícios a Conceder a fórmula acima pode ser reescrita da seguinte forma:
\[ PA = VABF^{(BC + BaC)} - VACF^{(BC + BaC)} \]
Além dessa divisão em BC e BaC, existe uma peculiaridade na atuária dos RPPS que surge da necessidade de se considerar o instituto da Compensação Financeira. Sem entrar em maiores discussões, o fato é que a consideração desse instituto implica uma modificação no cálculo do Passivo Atuarial que passa a resultar da seguinte equação:
\[ PA = (VABF^{(BC + BaC)} + COMPREV\_PAG^{(BC + BaC)}) - (VACF^{(BC + BaC)} + COMPREV\_REC^{(BC + BaC)}) \]
O Passivo Atuarial resulta da soma do valor presente atuarial do fluxo de despesas com benefícios com o valor presente atuarial do fluxo das despesas com comprev a pagar subtraído da soma do valor presente atuarial do fluxo as receitas de contribuições normais com o valor presente atuarial do fluxo de comprev a receber.
Dessa forma, o fluxo do passivo atuarial resultará da seguinte operação entre as rubricas do fluxo atuarial:
Despesas:
VABF_BC = 211001 + 212001 + 213001 + 214001 + 215001
VABF_BaC = 221000 + 222000 + 223000 + 224000 + 225000 + 226000 + 227000
COMPREV_PAG_BC = 219901
COMPREV_PAG_BaC = 229000
Receitas
VACF_BC = 111000 + 112000
VACF_BaC = 121000 + 122000 + 123000 + 124000
COMPREV_REC_BC = 119900
COMPREV_REC_BaC = 129000
Agregando BCe BaC:
VABF = VABF_BC + VABF_BaC
VACF = VACF_BC + VACF_BaC
COMPREV_PAG = COMPREV_PAG_BC + COMPREV_PAG_BaC
COMPREV_REC = COMPREV_REC_BC + COMPREV_REC_BaC
De forma que a projeção relativa ao Passivo Atuarial pode ser obtida da seguinte forma:
PA = (VABF + COMPREV_PAG) - (VACF + COMPREV_REC)
A rubrica 239901 - Outras Despesas não foi considerada por não se referir a despesas com benefícios ou compensação financeira.
Também as rubricas 130101, 130201 e 139901 não foram consideradas pois não se referem a receitas de contribuições normais nem a comprev a receber.
Fluxo atuarial previsto no Portaria 1467/2022
Agora que conhecemos um pouco mais o modelo de fluxo atuarial disponibilizado pelo MPS, vamos examinar o quanto este modelo está aderente ao que preconiza a Portaria 146/2022.
O fluxo atuarial é objeto de consideração nos Arts. 28 e Art. 16 do Anexo VI da Portaria 1467/2022.
Alguns fatos sobre os fluxos atuariais que constam da Portaria (Art. 16 do Anexo VI:):
As formulações relativas a cada grupo de informações da planilha dos fluxos atuariais compõem a NTA, devendo ser atualizadas sempre que houver alterações na base técnica veiculada nesse último documento.
Os conceitos relativos às variáveis utilizadas na planilha dos fluxos atuariais e os procedimentos adotados para apuração dos correspondentes valores constam das instruções de preenchimento que acompanham o modelo a que se refere o caput. (onde estão estas instruções)
De acordo com o par. 3º do Art. 16 do Anexo VI, devem compor o fluxo atuarial, descrito pela Portaria 1467/2022 como “uma planilha que integra conjunto de informações dispostas em colunas numeradas”, contemplando, especialmente as informações relativas:
aos anos a que referem os fluxos de pagamentos de benefícios e de recebimentos de contribuições, que deverão ser postecipados;
à hipótese de taxa atuarial de juros utilizada na avaliação atuarial;
ao fator de desconto composto para cada ano;
aos valores das receitas de contribuições futuras a cargo dos segurados, dos beneficiários e do ente federativo, das receitas de contribuições e aportes incluídos em planos de amortização do deficit, das receitas de parcelamentos de débitos previdenciários, das receitas de compensação financeira, das receitas de aportes para cobertura de insuficiências financeiras dos Fundos em Repartição, sendo que os valores anuais são totalizados e apresentados de forma segregada;
aos valores das despesas futuras com benefícios e os da compensação financeira a pagar, que representam os encargos do RPPS, sendo que os valores anuais são totalizados e apresentados de forma segregada;
à apuração das insuficiências ou excedentes financeiros anuais e à demonstração da evolução dos recursos garantidores vinculados ao RPPS;
aos valores das receitas de contribuições futuras e das despesas esperadas no ano, em relação às coberturas dos benefícios de aposentadoria por incapacidade permanente para o trabalho e pensão na fase laborativa, estruturadas em regime de repartição de capitais de cobertura;
aos valores das receitas de taxa de administração e das despesas administrativas futuras projetadas no ano;
ao resumo geral das receitas, despesas e resultados anuais, que engloba todas as despesas e receitas previdenciárias;
às bases de cálculo anuais da contribuição do ente e dos segurados; e
às projeções anuais de novos entrantes e de aposentadorias e de pensões por morte a serem concedidas.
Observando esse rol de elementos que devem compor o fluxo atuarial, percebe-se que alguns elementos ainda não foram incorporados ao modelo disponibilizado pelo MPS, cuja “anatomia” vimos acima.
Mais especificamente, o modelo atual ainda não incorporou os seguintes elementos previstos na Portaria:
- fluxos das despesas com benefícios estruturados em regime de capitais de cobertura;
- fluxo das receitas de taxa de administração e das despesas administrativas futuras;
- projeções do quantitativo de novos entrantes e do quantitativo de aposentadorias e pensões por morte que serão concedidos
Vê-se portanto, qua ainda deverão ser feitos aperfeiçoamentos no fluxo atuarial.
Importação dos fluxos atuariais
Recentemente o Ministério da Previdência Social - MPS passou a disponibilizar via CADPREV WEB os fluxos atuariais em planilhas do excel contendo 8 (oito) abas, uma para cada fluxo possível: Civil (CV) ou Militar (MIL), Financeiro (FIN), Previdenciário (PREV) ou Tesouro (TES), e Geração Atual (GA) ou Geração Futura (GF).
Cada aba da planilha possui um “nome” para identificar o correspondente fluxo:
2024 CV PREV GA 29138328000150
2024 CV PREV GF 29138328000150
2024 CV TES GA 29138328000150
2024 CV FIN GA 29138328000150
2024 MIL PREV GA 29138328000150
2024 MIL PREV GF 29138328000150
2024 MIL TES GA 29138328000150
2024 MIL FIN GA 29138328000150
Para a importação dos dados contidos no arquivo e em cada aba escrevi a função importa_fluxo_xlsx() cujo código vai a seguir:
A função recebe como principal argumento o arquivo excel do fluxo atuarial e, por padrão, ou seja, caso os argumentos massa=, plano= e geracao= não tenham sido alterados, faz a importação do fluxo do pessoal civil (“CV”), do plano previdenciário (“PREV”) da geração atual (“GA”). Mas é possível importar outros fluxos atuariais fornecendo os argumentos adequados à função como será mostrado mais adiante.
Para a correta utilização da função é necessário que o usuário tenha instalado os seguintes pacotes: {tidyverse}, {readxl} e {purrr}.
suppressPackageStartupMessages({
library(tidyverse)
library(readxl)
library(purrr)
})O código a seguir faz a importação do fluxo atuarial do pessoal civil do fundo previdenciário e geração atual do RPPS do município de Quatis no Estado do Rio de Janeiro.
flx_Quatis2025_cv_prev_ga <- importa_fluxo_xlsx("Fluxos_2025/Planilha_Fluxos_Atuariais_2025_RJ_Quatis_Civil_Previdenciário_Geração Atual_Geração Futura.xlsx")glimpse(flx_Quatis2025_cv_prev_ga)Rows: 150
Columns: 69
$ ano <chr> "2025", "2025", "2025", "2025", "2025", "2025", "2025", "2025"…
$ cnpj <chr> "39560008000148", "39560008000148", "39560008000148", "3956000…
$ V100101 <dbl> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,…
$ V100201 <dbl> 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 20…
$ V100301 <dbl> 5.26, 5.26, 5.26, 5.26, 5.26, 5.26, 5.26, 5.26, 5.26, 5.26, 5.…
$ V100401 <dbl> 0.95003, 0.90256, 0.85746, 0.81461, 0.77390, 0.73523, 0.69849,…
$ V109001 <dbl> 29757850, 29798045, 29694170, 29135027, 28726811, 28391348, 27…
$ V111000 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V111101 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V111201 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V111301 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V111401 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V112000 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V119900 <dbl> 278481.27, 278604.16, 279144.45, 278731.28, 278295.68, 278200.…
$ V121000 <dbl> 4166097, 4171732, 4157186, 4078908, 4021756, 3974786, 3898368,…
$ V121100 <dbl> 2678190.0, 2681831.5, 2672470.9, 2622157.7, 2585418.2, 2555221…
$ V121200 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V121300 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V121400 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V121500 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V121600 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V121700 <dbl> 1487906.9, 1489900.6, 1484715.0, 1456750.4, 1436338.0, 1419565…
$ V122000 <dbl> 4166097, 4171732, 4157186, 4078908, 4021756, 3974786, 3898368,…
$ V122100 <dbl> 4166097, 4171732, 4157186, 4078908, 4021756, 3974786, 3898368,…
$ V122200 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V122300 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V122400 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V122500 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V122600 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V122700 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V123000 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V123100 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V123200 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V123300 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V123400 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V124000 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V124100 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V124200 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V124300 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V124400 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V124500 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V129000 <dbl> 30896.66, 39626.33, 53558.41, 83219.41, 106964.82, 127137.55, …
$ V130101 <dbl> 768128.2, 775809.5, 783567.6, 791403.2, 799317.3, 807310.5, 81…
$ V130201 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V139901 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V190000 <dbl> 9409700, 9437504, 9430642, 9311170, 9228090, 9162221, 9044665,…
$ V210000 <dbl> 5580755, 5583217, 5594044, 5585764, 5577035, 5575129, 5549595,…
$ V211001 <dbl> 3396390.3, 3402765.1, 3411590.4, 3411590.4, 3411590.4, 3407001…
$ V212001 <dbl> 58262.23, 56712.09, 58262.23, 58262.23, 58262.23, 58262.23, 58…
$ V213001 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V214001 <dbl> 1420151.9, 1417789.7, 1424595.4, 1424595.4, 1424595.4, 1424595…
$ V215001 <dbl> 705950.4, 705950.4, 699596.4, 691316.4, 682586.7, 685269.5, 70…
$ V219901 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V220000 <dbl> 2107077, 2284013, 2558025, 3124469, 3579916, 3967403, 4510879,…
$ V221000 <dbl> 207363.4, 241360.7, 326829.6, 586352.7, 881905.1, 1234932.8, 1…
$ V222000 <dbl> 411806.4, 552752.1, 746480.3, 1081366.1, 1261672.5, 1312905.2,…
$ V223000 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V224000 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V225000 <dbl> 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.…
$ V226000 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V227000 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V229000 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V239901 <dbl> 1487906.9, 1489900.6, 1484715.0, 1456750.4, 1436338.0, 1419565…
$ V240000 <dbl> 7687832, 7867231, 8152069, 8710234, 9156950, 9542532, 10060474…
$ V250001 <dbl> 1721868.29, 1570273.49, 1278572.82, 600936.56, 71139.83, -3803…
$ V260001 <dbl> 68586474, 70003740, 71100065, 71589594, 71644649, 71365033, 70…
$ V270001 <dbl> 5.26, 5.26, 5.26, 5.26, 5.26, 5.26, 5.26, 5.26, 5.26, 5.26, 5.…
$ V280001 <dbl> 3521604, 3797411, 4079751, 4361599, 4622628, 4869520, 5105653,…
$ V290001 <dbl> 72194120, 77561804, 82920127, 87882663, 92576431, 97065640, 10…
Cabe destacar que, como não foram alterados os argumentos que especificam o tipo de massa, o plano e geração, foi feita a importação do fluxo relativo à massa do pessoal civil, do plano previdenciário da geração atual.
Uma vez importados os dados, o fluxo está pronto para ser analisado.
Caso quiséssemos importar dos dados relativos ao fluxo do plano financeiro do pessoal civil, bastaria explicitar o valor para o argumento plano=:
flx_GERJ2025_cv_fin_ga <- importa_fluxo_xlsx("Fluxos_2025/Planilha_Fluxos_Atuariais_2025_RJ_Governo do Estado do Rio de Janeiro_Civil_Militar_Previdenciário_Financeiro_Geração Atual.xlsx", plano = "FIN")glimpse(flx_GERJ2025_cv_fin_ga) Rows: 150
Columns: 69
$ ano <chr> "2025", "2025", "2025", "2025", "2025", "2025", "2025", "2025"…
$ cnpj <chr> "42498600000171", "42498600000171", "42498600000171", "4249860…
$ V100101 <dbl> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,…
$ V100201 <dbl> 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 20…
$ V100301 <dbl> 4.74, 4.74, 4.74, 4.74, 4.74, 4.74, 4.74, 4.74, 4.74, 4.74, 4.…
$ V100401 <dbl> 0.95475, 0.91154, 0.87029, 0.83091, 0.79331, 0.75741, 0.72313,…
$ V109001 <dbl> 7133520524, 6549401378, 5939902288, 5465663347, 4956286496, 45…
$ V111000 <dbl> 642230826, 609327288, 577311265, 546191964, 515986794, 4866746…
$ V111101 <dbl> 489756242, 464664464, 440249493, 416518350, 393484310, 3711313…
$ V111201 <dbl> 107395221, 101893021, 96539232, 91335396, 86284422, 81382789, …
$ V111301 <dbl> 29864.477, 28334.424, 26845.642, 25398.559, 23993.983, 22630.9…
$ V111401 <dbl> 45049498, 42741469, 40495694, 38312820, 36194068, 34137960, 32…
$ V112000 <dbl> 284639208, 271409656, 258660543, 246282569, 234369669, 2227288…
$ V119900 <dbl> 104262050, 100178456, 96110026, 92056802, 88026403, 84016977, …
$ V121000 <dbl> 1997385747, 1833832386, 1663172641, 1530385737, 1387760219, 12…
$ V121100 <dbl> 1145741641, 1051924061, 954030113, 877860808, 796047871, 72288…
$ V121200 <dbl> 507690305, 466118738, 422740888, 388989459, 352737277, 3203200…
$ V121300 <dbl> 319208451, 293070478, 265796811, 244575722, 221782292, 2014000…
$ V121400 <dbl> 7800386.0, 7161661.4, 6495184.3, 5976611.9, 5419616.8, 4921543…
$ V121500 <dbl> 1642175.84, 1507708.38, 1367398.32, 1258225.90, 1140964.53, 10…
$ V121600 <dbl> 15302788.3, 14049739.2, 12742245.2, 11724910.4, 10632198.1, 96…
$ V121700 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V122000 <dbl> 998692873, 916916193, 831586320, 765192869, 693880109, 6301111…
$ V122100 <dbl> 572870820, 525962031, 477015057, 438930404, 398023935, 3614447…
$ V122200 <dbl> 253845152, 233059369, 211370444, 194494730, 176368638, 1601600…
$ V122300 <dbl> 159604226, 146535239, 132898406, 122287861, 110891146, 1007000…
$ V122400 <dbl> 3900192.98, 3580830.70, 3247592.14, 2988305.95, 2709808.39, 24…
$ V122500 <dbl> 821087.92, 753854.19, 683699.16, 629112.95, 570482.27, 518053.…
$ V122600 <dbl> 7651394.2, 7024869.6, 6371122.6, 5862455.2, 5316099.0, 4827538…
$ V122700 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V123000 <dbl> 211077058, 243016306, 286485292, 312609660, 339414625, 3615846…
$ V123100 <dbl> 160964411, 185320835, 218469675, 238391753, 258832844, 2757393…
$ V123200 <dbl> 35296760, 40637710, 47906687, 52275260, 56757644, 60464961, 61…
$ V123300 <dbl> 9815.328, 11300.540, 13321.898, 14536.711, 15783.173, 16814.10…
$ V123400 <dbl> 14806072, 17046461, 20095608, 21928110, 23808354, 25363476, 25…
$ V124000 <dbl> 1380735, 1495962, 1617760, 1746401, 1880911, 2020558, 2164178,…
$ V124100 <dbl> 946021.6, 1024969.7, 1108420.7, 1196560.2, 1288721.1, 1384401.…
$ V124200 <dbl> 39263.79, 42540.46, 46004.02, 49662.17, 53487.23, 57458.35, 61…
$ V124300 <dbl> 232006.7, 251368.3, 271834.2, 293449.9, 316051.9, 339516.9, 36…
$ V124400 <dbl> 4149.947, 4496.271, 4862.349, 5248.993, 5653.279, 6073.003, 65…
$ V124500 <dbl> 159293.4, 172586.9, 186638.5, 201479.7, 216998.0, 233108.8, 24…
$ V129000 <dbl> 156528477, 173979842, 192241864, 205610275, 220084810, 2324519…
$ V130101 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V130201 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V139901 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V190000 <dbl> 4396196974, 4150156088, 3907185712, 3700076277, 3481403542, 32…
$ V210000 <dbl> 16828752599, 16169626920, 15512948928, 14858725222, 1420818555…
$ V211001 <dbl> 9078447590, 8742590710, 8403513556, 8062019698, 7719041970, 73…
$ V212001 <dbl> 1990749280, 1917101573, 1842747715, 1767863916, 1692654729, 16…
$ V213001 <dbl> 553587.8, 533107.9, 512431.5, 491607.8, 470693.6, 449742.9, 42…
$ V214001 <dbl> 835067479, 804174184, 772984677, 741572873, 710024578, 6784211…
$ V215001 <dbl> 4922500934, 4703849770, 4491868920, 4285511235, 4084783118, 38…
$ V219901 <dbl> 1433729.2, 1377574.8, 1321629.0, 1265892.3, 1210469.4, 1155334…
$ V220000 <dbl> 4297846353, 4777013394, 5278438849, 5645499075, 6042930444, 63…
$ V221000 <dbl> 2464399465, 2739155448, 3026674480, 3237148041, 3465036516, 36…
$ V222000 <dbl> 1092001609, 1213748907, 1341151647, 1434414720, 1535394527, 16…
$ V223000 <dbl> 686592080, 763140255, 843244269, 901883090, 965373780, 1019620…
$ V224000 <dbl> 16778012, 18648593, 20606067, 22039004, 23590503, 24916116, 25…
$ V225000 <dbl> 3532190, 3925994, 4338091, 4639760, 4966389, 5245464, 5361950,…
$ V226000 <dbl> 32915085, 36584789, 40424959, 43236092, 46279823, 48880408, 49…
$ V227000 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V229000 <dbl> 1627912, 1809408, 1999335, 2138368, 2288905, 2417524, 2471210,…
$ V239901 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V240000 <dbl> 21126598952, 20946640314, 20791387778, 20504224298, 2025111600…
$ V250001 <dbl> -16730401977, -16796484226, -16884202066, -16804148020, -16769…
$ V260001 <dbl> -9787148988, -25097816219, -39791968435, -53754703067, -670582…
$ V270001 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V280001 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ V290001 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
O mesmo pode ser feito caso se deseje os demais fluxos da planilha caso existam.
Análise do fluxo atuarial
O fluxo atuarial é uma riquíssima fonte de informações sobre o RPPS. Existem diversas análises que podem ser feitas com os dados uma vez que tenham sido importados. Vamos mostrar algumas análises possíveis, sem contudo cobrir todas as possibilidades.
Visualização de rubricas individualmente
Importado os dados do fluxo atuarial podemos trabalhar com ele de diversas formas. Uma primeira coisa que pode ser feita, é visualizar os gráficos de cada uma das rubricas do fluxo.
Por exemplo, suponha que eu queira ver como irá evoluir os encargos com os benefícios concedidos.
Consultando a planilha, podemos ver que esse fluxo tem o código 210000, de forma que podemos elaborar um gráfico desse fluxo da seguinte forma:
flx_Quatis2025_cv_prev_ga %>%
slice(1:50) %>%
ggplot(aes(x = V100201, y = V210000)) +
geom_line(color="blue", linewidth=0.7) +
geom_point(size=1.5, color="blue") +
theme_bw() +
labs(title = "Evolução dos Encargos com Benefícios Concedidos - 2025",
x = "",
y = "Valor dos Encargos")O gráfico mostra que estas despesas permanecerão no mesmo patamar por aproximadamente mais oito anos, passando a decrescer a partir de então.
E como vai se comportar as despesas com benefícios a conceder? Consultando a planilha do fluxo, vemos que a rubrica deste fluxo é 220000. Então o gráfico seria:
flx_Quatis2025_cv_prev_ga %>%
slice(1:70) %>%
ggplot(aes(x = V100201, y = V220000)) +
geom_line(color="blue", linewidth=0.7) +
geom_point(size=1.5, color="blue") +
theme_bw() +
labs(title = "Evolução dos Encargos com Benefícios a Conceder - 2025",
x = "",
y = "Valor dos Encargos")O gráfico mostra que essa despesa cresce até um máximo por volta de 2057 e partir daí passa a decrescer.
Essa visualização pode ser feita para qualquer rubrica do fluxo.
Visualização de duas ou mais rubricas
Os exemplos acima mostraram como elaborar um gráfico mostrando a evolução de rubricas individuais, mas e se queséssemos comparar essas duas curvas num mesmo gráfico, como faríamos?
O código abaixo mostra como fazer isso.
flx_Quatis2025_cv_prev_ga %>%
slice(1:60) %>%
select(V100201, V210000, V220000) %>%
pivot_longer(cols = c(V210000, V220000),
names_to = "Despesas",
values_to = "Valores") %>%
ggplot(aes(x=V100201, y=Valores, color=Despesas)) +
geom_line(linewidth = 0.7) +
geom_point(size=1.5) +
theme_bw() +
labs(title = "Comparativo da Evolução dos Encargos de BC e BaC",
x = "")Visualização do passivo atuarial
Como já comentado anteriormente, para obter o fluxo relativo ao passivo atuarial será necessário realizar agrupamentos das rubricas do fluxos. Vamos agora mostrar como implementar esse procedimento.
O primeiro passo será criar novos fluxos a partir as rubricas dos fluxos já existentes na base de dados do fluxo atuarial.
No código a seguir vamos acrescentar à base de dados do fluxo de Quatis um conjunto de novos fluxos:
flx_Quatis2025_cv_prev_ga <- flx_Quatis2025_cv_prev_ga %>%
mutate(
ano = V100201,
# Despesas:
vabf_bc = V211001 + V212001 + V213001 + V214001 + V215001,
vabf_bac = V221000 + V222000 + V223000 + V224000 + V225000 + V226000 + V227000,
comprev_pag_bc = V219901,
comprev_pag_bac = V229000,
# Receitas
vacf_bc = V111000 + V112000,
vacf_bac = V121000 + V122000 + V123000 + V124000,
comprev_rec_bc = V119900,
comprev_rec_bac = V129000,
# Agregação de BC e BaC
vabf = vabf_bc + vabf_bac,
vacf = vacf_bc + vacf_bac,
comprev_pag = comprev_pag_bc + comprev_pag_bac,
comprev_rec = comprev_rec_bc + comprev_rec_bac,
# Passivo Atuarial
pa = (vabf + comprev_pag) - (vacf + comprev_rec),
pa_bc = (vabf_bc + comprev_pag_bc) - (vacf_bc + comprev_rec_bc),
pa_bac = (vabf_bac + comprev_pag_bac) - (vacf_bac + comprev_rec_bac)
)Agora podemos visualizar o fluxo do Passivo Atuarial ou de qualquer um dos novos fluxos criados. Vamos avaliar o fluxo do Passivo Atuarial:
flx_Quatis2025_cv_prev_ga %>%
slice(1:70) %>%
ggplot(aes(x = ano, y = pa / 1e6)) +
geom_line(color="tomato", linewidth=0.7) +
geom_point(size=1.5, color="tomato") +
geom_hline(yintercept = 0, color="blue") +
theme_bw() +
labs(title = "Evolução do Passivo Atuarial",
subtitle = "Quatis - 2025",
caption = "Plano Previdenciário - Pessoal Civil - Geração Atual",
x = "",
y = "Valor (Em R$ Milhões)")A evolução do passivo atuarial indica como deverá também evoluir os ativos garantidores para que seja atingido o equilíbrio financeiro e atuarial.
Pode ser interessante comparar a projeção do passivo atuarial feita em um exercício com a projeção feita em outro. Para realiar esta comparação basta importar os fluxos atuariais dos anos desejados, agrupar as bases de dados e realizar os procedimentos acima indicados.
Visualização de fluxos de diferentes exercícios
Até aqui os gráficos apresentados referem-se a fluxos atuariais de um único exercício, mas pode ser de interesse colocar em um mesmo gráfico as projeções de uma determinada rubrica relativas a dois ou mais exercícios.
Para ilustrar como fazer isso, vamos importar os fluxos atuariais do plano previdenciário da geração atual do RPPS do município de Quatis de três exercícios: 2023, 2024 e 2025.
flx_Quatis2023 <- importa_fluxo_xlsx("Fluxos_2025/Planilha_Fluxos_Atuariais_2023_RJ_Quatis_Civil_Previdenciário_Geração Atual.xlsx")
flx_Quatis2024 <- importa_fluxo_xlsx("Fluxos_2025/Planilha_Fluxos_Atuariais_2024_RJ_Quatis_Civil_Previdenciário_Geração Atual.xlsx")
flx_Quatis2025 <- importa_fluxo_xlsx("Fluxos_2025/Planilha_Fluxos_Atuariais_2025_RJ_Quatis_Civil_Previdenciário_Geração Atual_Geração Futura.xlsx")Agora que temos os fluxos atuariais do RPPS de Quatis dos exercícios de 2023, 2024 e 2025, vamos visualizar a projeção do passivo atuarial nesses três exercícios.
O primeiro passo é preparar os dados, que vai consistir em agrupar as três bases de dados>
flx_Quatis <- bind_rows(flx_Quatis2023,
flx_Quatis2024,
flx_Quatis2025)Agora precisamos calcular as variáveis de interesse como feito anteriormente. Mas agora, vamos criar uma função chamada agrega_fluxo() para facilitar a geração das agregações de rubricas..
agrega_fluxo <- function(fluxo){
fluxo %>%
mutate(
cnpj = cnpj,
ano_draa = ano,
ano = V100201,
txdesc = V100401,
# Base de contribuição
vasf = V109001,
# Despesas:
vabf_bc = V211001 + V212001 + V213001 + V214001 + V215001,
vabf_bac = V221000 + V222000 + V223000 + V224000 + V225000 + V226000 + V227000,
comprev_pag_bc = V219901,
comprev_pag_bac = V229000,
# Receitas
vacf_bc = V111000 + V112000,
vacf_bac = V121000 + V122000 + V123000 + V124000,
comprev_rec_bc = V119900,
comprev_rec_bac = V129000,
# Agregação de BC e BaC
vabf = vabf_bc + vabf_bac,
vacf = vacf_bc + vacf_bac,
comprev_pag = comprev_pag_bc + comprev_pag_bac,
comprev_rec = comprev_rec_bc + comprev_rec_bac,
# Passivo Atuarial
pa = (vabf + comprev_pag) - (vacf + comprev_rec),
pa_bc = (vabf_bc + comprev_pag_bc) - (vacf_bc + comprev_rec_bc),
pa_bac = (vabf_bac + comprev_pag_bac) - (vacf_bac + comprev_rec_bac),
# Plano de Amortização e Parcelamentos
amort = V130101,
parcel = V130201,
# Ativo garantidor
ag = V290001[1] - V250001[1] - V280001[1],
ag_proj = V290001,
# Resultado atuarial
ra = ag_proj - pa) %>%
select(-matches("^V\\d{6}"))
} flx_quatis_2023_2025_agreg <- agrega_fluxo(flx_Quatis)
head(flx_quatis_2023_2025_agreg)# A tibble: 6 × 25
ano cnpj ano_draa txdesc vasf vabf_bc vabf_bac comprev_pag_bc
<dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
1 2023 39560008000148 2023 0.952 20519351. 3.37e6 16968 0
2 2024 39560008000148 2023 0.906 20674238. 3.37e6 50322. 0
3 2025 39560008000148 2023 0.862 20835289. 3.37e6 73167. 0
4 2026 39560008000148 2023 0.821 20805377. 3.37e6 257799. 0
5 2027 39560008000148 2023 0.781 20585144. 3.36e6 601928. 0
6 2028 39560008000148 2023 0.743 20320133. 3.36e6 970777. 0
# ℹ 17 more variables: comprev_pag_bac <dbl>, vacf_bc <dbl>, vacf_bac <dbl>,
# comprev_rec_bc <dbl>, comprev_rec_bac <dbl>, vabf <dbl>, vacf <dbl>,
# comprev_pag <dbl>, comprev_rec <dbl>, pa <dbl>, pa_bc <dbl>, pa_bac <dbl>,
# amort <dbl>, parcel <dbl>, ag <dbl>, ag_proj <dbl>, ra <dbl>
A elaboração do gráfico para as projeções do passivo atuarial dos três exercícios pode ser feita da seguinte forma:
flx_quatis_2023_2025_agreg %>%
group_by(ano_draa) %>%
slice(1:75) %>% # pegar somente 75 anos dos fluxos e não os 150
ungroup() %>%
ggplot(aes(x=ano, y=pa / 1e6, group = ano_draa, color=ano_draa)) +
geom_line(linewidth = 1) +
theme_bw() +
labs(title = "Projeção do Passivo Atuarial",
subtitle = "(Quatis - 2023, 2024, 2025)",
x="",
y="Valor da projeção\n(Em R$ milhões)")Vamos agora olhar as componentes do passivo atuarial: VABF e VACF
flx_quatis_2023_2025_agreg %>%
group_by(ano_draa) %>%
slice(1:70) %>% # pegar somente 70 anos dos fluxos e não os 150
ungroup() %>%
ggplot(aes(x=ano, y=vabf / 1e6, group = ano_draa, color=ano_draa)) +
geom_line(linewidth = 1) +
theme_bw() +
labs(title = "Projeção das Despesas com Aposentadorias e Pensões (BC e BaC)",
subtitle = "(Quatis - 2023, 2024, 2025)",
x="",
y="Valor da projeção\n(Em R$ milhões)")E como seria o gráfico da projeção das receitas de contribuição?
flx_quatis_2023_2025_agreg %>%
group_by(ano_draa) %>%
slice(1:70) %>% # pegar somente 70 anos dos fluxos e não os 150
ungroup() %>%
ggplot(aes(x=ano, y=vacf / 1e6, group = ano_draa, color=ano_draa)) +
geom_line(linewidth = 1) +
theme_bw() +
labs(title = "Projeção das Receitas de Contribuição (BC e BaC)",
subtitle = "(Quatis - 2023, 2024, 2025)",
x="",
y="Valor da projeção\n(Em R$ milhões)")Obtenção de valores presentes atuariais
Além da inspeção dos gráficos das projeções das receitas e despesas contidos nos fluxos atuariais, também é possível obter os valores presentes atuariais das projeções, bastando para isso realizar o somatório do produto de cada elemento do fluxo pela taxa de desconto.
Para facilitar esse processo vamos escrever uma função que chamaremos de calcula_vpa()que deverá ser utilizada com o “fluxo agregado” obtido com a função agrega_fluxo()
calcula_vpa <- function(fluxo_agg){
# fluxo_agg: fluxo atuarial agregado
list(vasf = with(fluxo_agg, sum(vasf * txdesc)),
vabf = with(fluxo_agg, sum(vabf * txdesc)),
vabf_bc = with(fluxo_agg, sum(vabf_bc * txdesc)),
vabf_bac = with(fluxo_agg, sum(vabf_bac * txdesc)),
vacf = with(fluxo_agg, sum(vacf * txdesc)),
vacf_bc = with(fluxo_agg, sum(vacf_bc * txdesc)),
vacf_bac = with(fluxo_agg, sum(vacf_bac * txdesc)),
comprev_rec = with(fluxo_agg, sum(comprev_rec * txdesc)),
comprev_rec_bc = with(fluxo_agg, sum(comprev_rec_bc * txdesc)),
comprev_rec_bac = with(fluxo_agg, sum(comprev_rec_bac * txdesc)),
comprev_pag = with(fluxo_agg, sum(comprev_pag * txdesc)),
comprev_pag_bc = with(fluxo_agg, sum(comprev_pag_bc * txdesc)),
comprev_pag_bac = with(fluxo_agg, sum(comprev_pag_bac * txdesc)),
pa = with(fluxo_agg, sum(pa * txdesc)),
pa_bc = with(fluxo_agg, sum(pa_bc * txdesc)),
pa_bac = with(fluxo_agg, sum(pa_bac * txdesc)),
amort = with(fluxo_agg, sum(amort * txdesc)),
parcel = with(fluxo_agg, sum(parcel * txdesc)),
ag = fluxo_agg$ag[1]
)
} Definida a função, vamos utilizá-la:
options(digits = 15)
flx_Quatis2025_cv_prev_ga %>%
agrega_fluxo() %>%
calcula_vpa() %>%
map(.f= ~round(.x, 2)) $vasf
[1] 357573858.49
$vabf
[1] 193822030.89
$vabf_bc
[1] 67719627.66
$vabf_bac
[1] 126102403.23
$vacf
[1] 100120726.42
$vacf_bc
[1] 0
$vacf_bac
[1] 100120726.42
$comprev_rec
[1] 9671753.53
$comprev_rec_bc
[1] 3379228.43
$comprev_rec_bac
[1] 6292525.09
$comprev_pag
[1] 0
$comprev_pag_bc
[1] 0
$comprev_pag_bac
[1] 0
$pa
[1] 84029550.94
$pa_bc
[1] 64340399.23
$pa_bac
[1] 19689151.71
$amort
[1] 13021590.09
$parcel
[1] 0
$ag
[1] 66950647.26
A função retorna uma lista com os valores presentes de várias quantidades atuariais e o saldo dos ativos garantidores na data focal da avaliação.
Os valores obtidos devem ser iguais aos apresentados tanto
no relatório da avaliação atuarial como no DRAA.
Cálculo da duração do passivo
Uma quantidade atuarial muito relevante em razão de definir a taxa de juros atuarial a ser utilizada na avaliação atuarial é a chamada Duração do Passivo (DP), que pode ser calculada a partir dos dados contidos no fluxo atuarial.
O Ministério da Previdência Social - MPS disponibiliza um modelo de fluxo atuarial destinado ao cálculo dessa quantidade. Esse modelo contém duas novas rubricas agrupadas no bloco DURAÇÃO DO PASSIVO:
320000 deveria ser “INSTANTE PONDERADO PELOS BENEFÍCIOS LÍQUIDOS”, visto que os pesos são os valores presentes dos benefícios.310000 - (H) BENEFÍCIOS LÍQUIDOS A VALOR PRESENTE e
320000 - (I) BENEFÍCIOS LÍQUIDOS PONDERADOS PELO INSTANTE
Nesse modelo de fluxo o valor da DP é apresentado na célula E4 e na célula E3 está a taxa de juros utilizada na avaliação atuarial do ano anterior.
Art. 29 da Portaria n. 1467/2022 diz que:
“A duração do passivo do RPPS corresponde à média dos prazos dos fluxos de pagamentos de benefícios do RPPS, líquidos das contribuições dos beneficiários, ponderada pelos valores presentes desses fluxos.”
A fórmula para o cálculo da DP é apresentada no Art. 35 do Anexo VI da Portaria n. 1467/2022:
O cálculo dos Fi (fluxo das projeções dos encargos) considera os Encargos de Benefícios Concedidos (BC) e a Conceder (BaC), deduzidos do COMPREV a Pagar (BC e BaC), das receitas de contribuições dos aposentados (BC e BaC) e da receita de contribuição dos pensionistas (BaC e BC).
A soma dos valores constantes das rubricas 310000 e 320000 correspondem, respectivamente, ao numerador e denominador da fórmula acima apresentada.
Valores maiores de DP corresponderão ao uso de taxa de juros também maiores.
Para facilitar o cálculo da DP a partir do fluxo atuarial vamos escrever uma função que chamaremos de calcula_dp():
calcula_dp <- function(fluxo, tx_juros){
# fluxo: fluxo atuarial conforme importado pela função 'importa_fluxo_xlsx()'
# tx_juros: taxa de juros utilizada na avaliação atuarial do ano anterior
Fi <- with(fluxo,
V210000 + V220000 - V219901 - V229000 - V111000 - V112000 - V123000 - V124000)
periodo <- fluxo$V100101 - 0.5
tx_desconto <- (1 + tx_juros / 100)^periodo
peso <- Fi / tx_desconto
weighted.mean(periodo, peso)
}Definida a função, é possível calcular a DP para um determinado exercício desde que se conheça a taxa de juros utilizada na avaliação atuarial do exercício anterior.
Para o plano previdenciário do RPPS de Quatis, a taxa de juros utilizada em 2024 foi de 5.05%. Assim, a DP para 2025 pode ser calculada da seguinte forma:
calcula_dp(flx_Quatis2025_cv_prev_ga, 5.05) [1] 17.3699254941979
A duração do passivo informada no DRAA de 2025 de Quatis foi de 17.1, um pouco diferente do valor acima obtido, mas não muito diferente.