Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Índice

01. VISÃO GERAL

O modelo financeiro é um conjunto de modelos de predição de fluxo de caixa que utiliza dados de movimentações históricas para prever os horizontes futuros de valores de entrada e saída de caixa.

02. INPUT DE DADOS

Primeira versão de jun/2023 até presente – Dados de fk5 de maneira crua apenas realizando a segmentação de entradas (FK5_RECPAG=’R’) e saídas de caixa (FK5_RECPAG=’P’), e também a divisão por tenant-companygroup-filial formando assim a chave da série histórica. Já a agregação desses dados é feita de duas formas: mensal e semanal. Logo, cada filial possui 4 series históricas: entrada mensal, saída mensal, entrada semanal, saída semanal.

03. MODELOS

Existem 2 modelos diferentes implementados em fluxos e algoritmos distintos, sendo o primeiro o ARIMA+ implementado diretamente no BigQueryML e o PROPHET implementado em um pipeline do vertex IA.

04. STAGING 

Staging tables são criadas no conector financial, são elas:


Financial_financial_evaluate: Avaliações de cada processamento são registradas aqui, serie por serie, contendo 6 avaliações, uma para cada período a ser previsto, a métrica extraída de cada ponto é denominada MAPE.

Colunas:

Tenantchave do registro formado por mdmtenantid-companygroup-branch
Modelmodelo gerador (prophet ou arima)
Recpagp(pagamento) ou r(recebimento)
Weekmape1mape esperado para predição de 1 ponto de predição semanal (-1 = invalido)
Weekmape2mape esperado para predição de 2 pontos de predição semanal (-1 = invalido)
Weekmape3mape esperado para predição de 3 pontos de predição semanal (-1 = invalido)
Monthmape1mape esperado para predição de 1 ponto de predição mensal (-1 = invalido)
Monthmape2mape esperado para predição de 2 pontos de predição mensal (-1 = invalido)
Monthmape3mape esperado para predição de 3 pontos de predição mensal (-1 = invalido)


Financial_financial_forecast: Onde as predições pré-filtradas são gravadas.

Colunas:

Tenantidmdmtenantid do cliente
Companygroupcampo do Protheus
Branchcampo carol (FK5_FILIAL do protheus)
Modelmodelo da predição (ARIMA ou PROPHET)
Typefk5_recpag do Protheus
Frequencysemanal ou mensal (w ou m)
Prediction= true
Accuracy100-mape daquele ponto de previsão
Inicial_referencedia inicial daquele ponto de previsão
final_referencedia final daquele ponto de previsão
valuevalor predito
lower_boundlimite inferior do intervalo de confiança de 95%
upper_boundlimite superior do intervalo de confiança de 95%


Financial_financial_alerts: Existe uma sistemática de alertas que observa um possível saldo extra ou insuficiente predito para um determinado período baseado na soma entre a predição no período e o saldo já existente (se8). Os alertas calculados, são armazenados aqui.

Colunas:

Tenantidmdmtenantid do cliente
Companygroupcampo do Protheus
Branchcampo carol (FK5_FILIAL do protheus)
Alert_TypeSaldo extra ou insulficiente.
Frequency semanal ou mensal (w ou m)
Inicial_referencedia inicial daquele ponto de previsão
final_referencedia final daquele ponto de previsão
balanceBalanço esperado para o periodo


05. DATA MODELS

Possuímos três Data models, são eles:

Financialevaluate: Avaliação de cada serie utilizando uma média de todos os mapes calculado no período de um ano.

Colunas:

Tenantchave do registro formado por mdmtenantid-companygroup-branch
Modelmodelo gerador (prophet ou arima)
Recpag p(pagamento) ou r(recebimento)
Weekmape1mape esperado para predição de 1 ponto de predição semanal (-1 = invalido)
Weekmape2mape esperado para predição de 2 pontos de predição semanal (-1 = invalido)
Weekmape3mape esperado para predição de 3 pontos de predição semanal (-1 = invalido)
Monthmape1mape esperado para predição de 1 ponto de predição mensal (-1 = invalido)
Monthmape2mape esperado para predição de 2 pontos de predição mensal (-1 = invalido)
Monthmape3mape esperado para predição de 3 pontos de predição mensal (-1 = invalido)

 
ForecastFinancial: Uma visão histórica agregada dos últimos 12 meses no caso das visões mensais e 12 semanas da visão semanal, concatenado com os pontos de previsão. Possui apenas os valores com as melhores avaliações entre os modelos.

Colunas:

Tenantidmdmtenantid do cliente
Companygroupcampo do Protheus
Branchcampo carol (FK5_FILIAL do protheus)
Modelmodelo da predição (ARIMA ou PROPHET)
Typefk5_recpag do Protheus
Frequencysemanal ou mensal (w ou m)
Predictionse for valor de predição True, se for histórico False
Accuracy100-mape daquele ponto de previsão
Inicial_referencedia inicial daquele ponto de previsão
final_referencedia final daquele ponto de previsão
valuevalor predito
lower_boundlimite inferior do intervalo de confiança de 95%
upper_boundlimite superior do intervalo de confiança de 95%


financial_alert: Os alertas calculados, são deduplicados e armazenados nesse datamodel.

Colunas:

Tenantidmdmtenantid do cliente
Companygroupcampo do Protheus
Branchcampo carol (FK5_FILIAL do protheus)
Alert_TypeSaldo extra ou insulficiente.
Frequencysemanal ou mensal (w ou m)
Inicial_referencedia inicial daquele ponto de previsão
final_referencedia final daquele ponto de previsão
balanceBalanço esperado para o periodo

06. FLUXOS E IMPLEMENTAÇÕES

Ambos os modelos são implementados no carolapp Protheus insights e possuem 3 batches process e 2 pipelines, sendo eles (cronologicamente)

Batch- Financial_training_models e Financial_training_prophet:

Responsáveis pela tratativa do input de dados de treinamento, e a chamada da função de treinamento de cada modelo.

Batch- Financial_evaluate e Financial_evaluate_prophet:

Responsáveis por realizar a avaliação do modelo, e armazenar em uma staging table (financial_evaluate) cada avaliação de cada serie juntamente com a data de referência dessa avaliação, ou seja, o dia que essa avaliação foi realizada e o modelo que realizou aquele treinamento.

Pipeline- financial_evaluate:

Realiza um cross-validate dos últimos 12 meses realizando a média dos MAPES e excluindo os outliers (valores maiores que 100), após a execução os dados são armazenados no datamodel Financial Evaluate

Batch – Financial_predict e financial_predict_prophet:

Responsável por realizar as predições e filtra-las de acordo com o -1<mape<100, afim de retirar possíveis outliers, e realizar o upload dessas informações na tabela financial_forecast.

Pipeline – Financial_forecast:

Responsável por realizar a comparação das predições de cada modelo e extrair sempre a predição com a melhor acurácia. Juntamente com o processo de extração das predições, são concatenados valores históricos dos últimos 12 meses ao pipeline

Batch – financial_alerts:

Realiza uma média histórica de cada serie e avalia as predições, caso as predições esteja destoando 30% da média, um alerta é gerado.

Pipeline – financial_alerts:

Deduplica os registros da staging e extrai os últimos alertas gerados para serem grados no datamodel.

 

07. LOCALIZAÇÃO DOS CÓDIGOS FONTE

Batch apps:

Financial_training_models: https://dev.azure.com/totvstfs/ProtheusApps/_git/ba-backoffice-insights?path=/batch-apps/financial_training_models

Financial_training_prophet: https://dev.azure.com/totvstfs/ProtheusApps/_git/ba-backoffice-insights?path=/batch-apps/financial_training_prophet

Financial_evaluate: https://dev.azure.com/totvstfs/ProtheusApps/_git/ba-backoffice-insights?path=/batch-apps/financial_evaluate

Financial_evaluate_prophet: https://dev.azure.com/totvstfs/ProtheusApps/_git/ba-backoffice-insights?path=/batch-apps/financial_evaluate_prophet

Financial_predict: https://dev.azure.com/totvstfs/ProtheusApps/_git/ba-backoffice-insights?path=/batch-apps/financial_predicts

Financial_predict_prophet: https://dev.azure.com/totvstfs/ProtheusApps/_git/ba-backoffice-insights?path=/batch-apps/financial_predict_prophet

 

Pipelines:

Financial_evaluate: https://dev.azure.com/totvstfs/ProtheusApps/_git/ba-backoffice-insights?path=/pipelines/financial_evaluate.csql

Financial_forecast: https://dev.azure.com/totvstfs/ProtheusApps/_git/ba-backoffice-insights?path=/pipelines/financial_forecast.csql


08. RECURSOS RELACIONADOS

Guia de uso - Protheus Insights

Novo Gestor Financeiro - (FINA710 - SIGAFIN)

Reestruturação da tabela SE5 na família de tabelas FKx

https://cloud.google.com/bigquery/docs/bqml-introduction

https://facebook.github.io/prophet/

https://cloud.google.com/vertex-ai/docs/start/introduction-unified-platform