O Sicoob Credicom é uma cooperativa financeira focada na área de saúde, com: - 43 agências em Minas Gerais, Bahia e São Paulo - 120 mil cooperados - Mais de 32 anos de experiência no mercado
Como otimizar a gestão de numerário em agências e transportadoras, reduzindo custos e riscos, sem comprometer a disponibilidade?
| Variável | Descrição | Tipo |
|---|---|---|
| s_i(t) | Saldo de numerário na agência i no tempo t | Contínua |
| d_i(t) | Demanda prevista na agência i no tempo t | Contínua |
| x_i(t) | Quantidade a abastecer na agência i no tempo t | Contínua |
| y_i(t) | Quantidade a recolher da agência i no tempo t | Contínua |
| z_i(t) | Decisão binária de movimentação (0 ou 1) | Binária |
| t_i | Momento exato da movimentação | Temporal |
Minimizar o custo total composto por:
\[ \min \sum_{t=1}^{T} \sum_{i=1}^{N} \left[ C_{\text{trans}} \cdot (x_{it} + y_{it}) + C_{\text{op}} \cdot s_{it} \right] \]
# Parâmetros de simulação
custo_transporte <- 800 # Custo fixo por missão (R$)
taxa_juros <- 0.0004 # Taxa de juros diária (0.04%)
tempo <- 1:10 # Dias desde último recolhimento
excedentes <- c(50000, 100000, 200000) # Valores excedentes (R$)
# Criar dataframe com simulação
df_tradeoff <- expand.grid(Dias = tempo, Excedente = excedentes) %>%
mutate(Custo_Espera = Excedente * taxa_juros * Dias,
Custo_Transporte = custo_transporte,
Decisao = ifelse(Custo_Espera >= Custo_Transporte,
"Recolher", "Manter"))
# Visualizar resultados
ggplot(df_tradeoff, aes(x = Dias, y = Custo_Espera, color = as.factor(Excedente))) +
geom_line(size = 1.5) +
geom_hline(yintercept = custo_transporte, linetype = "dashed", color = "red", size = 1) +
annotate("text", x = 8, y = custo_transporte + 50,
label = "Custo de Transporte", color = "red") +
labs(title = "Trade-Off: Custo de Espera vs. Custo de Transporte",
subtitle = "Ponto de cruzamento indica o momento ideal para recolhimento",
x = "Dias desde último recolhimento",
y = "Custo de Espera (R$)",
color = "Excedente (R$)") +
theme_minimal() +
scale_color_manual(values = c("blue", "green", "orange"))# Dados de exemplo para simulação
meses <- 1:12
custo_atual <- c(120000, 118000, 122000, 119000, 121000, 123000,
120000, 119000, 121000, 122000, 120000, 121000)
custo_otimizado <- custo_atual * 0.80 # Redução de 20%
rendimento_atual <- c(15000, 15500, 16000, 15800, 16200, 16500,
16300, 16000, 15800, 16200, 16500, 16800)
rendimento_otimizado <- rendimento_atual * 1.40 # Aumento de 40%
df_beneficios <- data.frame(
Mes = meses,
Custo_Atual = custo_atual,
Custo_Otimizado = custo_otimizado,
Rendimento_Atual = rendimento_atual,
Rendimento_Otimizado = rendimento_otimizado
)
# Gráfico de benefícios
df_beneficios %>%
pivot_longer(cols = -Mes, names_to = "Metrica", values_to = "Valor") %>%
separate(Metrica, into = c("Metrica", "Cenario"), sep = "_") %>%
ggplot(aes(x = Mes, y = Valor, color = Cenario)) +
geom_line(size = 1.5) +
facet_wrap(~Metrica, scales = "free_y", ncol = 1) +
labs(title = "Projeção de Benefícios da Otimização",
subtitle = "Comparação entre cenário atual e otimizado",
x = "Mês",
y = "Valor (R$)",
color = "Cenário") +
theme_minimal() +
scale_color_manual(values = c("red", "blue"))| Etapa | Duracao_Semanas | Prioridade |
|---|---|---|
| Coleta e Análise de Dados Históricos | 4 | Alta |
| Desenvolvimento do Modelo Preditivo | 6 | Alta |
| Implementação do Algoritmo de Otimização | 8 | Alta |
| Desenvolvimento do Dashboard | 6 | Média |
| Testes Piloto | 4 | Alta |
| Implantação Gradual | 8 | Média |
| Monitoramento Contínuo | NA | Contínua |
| Categoria | Itens |
|---|---|
| Linguagens | R, Python, SQL |
| Frameworks | Shiny, Dash, Docker |
| Infraestrutura | Servidores cloud, Banco de dados |
| Dados | Histórico de saldos, Demandas, Custos de transporte |
A implementação desta solução permitirá ao Sicoob Credicom:
Próximos passos imediatos: Coleta de dados históricos e modelagem preditiva de demanda.
## **Contato:** Equipe de Otimização - +55 (37) 9 9880-8747
## **Data de geração:** 20/09/2025