Software de Kardex e Estoque

Kardex Tauro

O software de gestão de estoque Kardex Tauro® foi projetado para gerenciar seu armazém ou depósito de forma eficiente e pode ser aprendido em um curto período de tempo.

O Kardex Tauro é gratuito para uso não comercial.
Não requer conexão com a internet e funciona no Windows.

Código Python: tabela de amortização de um crédito (download grátis)

Código Python: tabela de amortização de um crédito (download grátis)

Contratar um crédito é a parte fácil. Entender como cada parcela se divide é onde quase todo mundo se perde. Quando o banco fala em «parcela fixa», a gente imagina que o capital cai do mesmo jeito todo mês, e não é assim: nas primeiras parcelas quase tudo o que você paga é juro e só uma fatia pequena encosta no capital. Daí aquela sensação ruim de que a dívida «não anda». Este programa em Python monta a tabela de amortização completa, mês a mês, com saldo inicial, parcela, juro, amortização e saldo final, e ainda mostra quanto você vai pagar no total e quanto disso é juro.

Ele serve para três perfis bem concretos. Para o dono da pequena empresa que está avaliando um crédito e quer ver, antes de assinar, quanto o dinheiro realmente custa. Para o contador que precisa do quadro de amortização para lançar o juro do período separado da amortização do capital. E para o encarregado de estoque ou de depósito que pegou o crédito para comprar mercadoria e quer entender por que o saldo que o banco informa não bate com a conta que ele fazia no papel.

O pacote vem pronto para descompactar e não pede mais nada: Python 3.11 ou superior, só isso. Dentro vão o programa, o crédito de exemplo, a saída esperada e um guia curto.

⬇ Baixar o código (ZIP)

Estes são os arquivos que aparecem quando você descompacta a pasta:

ArquivoPara que serve
amortizacion_credito.pyO programa completo, comentado linha por linha
datos/credito.csvO crédito de exemplo: uma só linha com valor, taxa nominal anual, prazo em meses e data da liberação
salida_ejemplo.txtA saída que você deve obter, para comparar com a sua
LEIAME.mdAs instruções e os detalhes do cálculo, explicados em resumo

O que o programa faz

  1. Lê o arquivo datos/credito.csv, que traz uma só linha: valor do crédito, taxa nominal anual, prazo em meses e data da liberação.
  2. Transforma a taxa anual em taxa mensal: divide a taxa nominal por cem e por doze. Uma taxa nominal anual de dezoito por cento vira um e meio por cento ao mês.
  3. Calcula a parcela fixa com a fórmula do sistema francês e arredonda para centavos.
  4. Percorre os meses, um por um: cobra o juro sobre o saldo que ainda se deve, calcula quanto da parcela baixa o capital e deixa o saldo final daquele mês.
  5. Ajusta a última parcela ao centavo. Sem esse ajuste o saldo final ficaria num valor mínimo diferente de zero e a tabela nunca fecharia.
  6. Monta a data de cada vencimento com uma função própria, para não errar quando o dia não existe no mês de destino.
  7. Mostra o resumo com quatro totais e salva a tabela em salida/amortizacion.csv, pronta para abrir no Excel.

Como executar

Primeiro instale o Python 3.11 ou superior pelo site oficial, marcando a opção que coloca o Python no PATH do sistema. Depois descompacte o ZIP inteiro numa pasta e abra o terminal dentro dessa pasta: no Windows dá para digitar cmd na barra de endereços do explorador de arquivos. Estando ali, chame o programa pelo nome:

python amortizacion_credito.py

Não há nenhuma biblioteca para instalar: o programa usa apenas o que já vem com o Python. Roda em menos de um segundo, mostra a tabela na tela e deixa o arquivo final na pasta salida. Se o seu sistema não reconhecer o comando python, tente py amortizacion_credito.py, que é a forma curta criada pelo instalador do Windows.

O código, explicado

Estes são os cinco trechos que realmente importam. O resto é leitura de arquivo e formatação de colunas.

A fórmula da parcela fixa. É a do sistema francês: a parcela é igual ao valor multiplicado pela taxa mensal, dividido por um menos o fator de desconto do prazo.

def cuota_fija(monto: Decimal, tasa: Decimal, plazo: int) -> Decimal:
    """Calcula a parcela fixa do sistema francês, arredondada para centavos."""
    # # Sistema francês: parcela = valor * i / (1 - (1+i)^-n). O Decimal calcula (1+i)**-n
    factor = (UNO + tasa) ** -plazo
    return redondear(monto * tasa / (UNO - factor))

A conta é feita com Decimal, e não com números de ponto flutuante, e o resultado é arredondado para centavos. Parece detalhe técnico e é dinheiro: se o valor fosse guardado como decimal binário, os centavos iriam se deslocando parcela após parcela e no fim a soma das amortizações não daria exatamente o valor do crédito.

A taxa mensal. A taxa divulgada pelo banco é nominal anual, então o programa divide por cem e por doze. Nessa linha está a chave de todo o exercício:

    tasa = tasa_anual / CIEN / DOCE                 # # Taxa mensal = taxa nominal anual / 100 / 12

Com uma taxa nominal anual de dezoito por cento, a taxa mensal fica em um e meio por cento. Aplicada todos os meses sobre o saldo que ainda se deve, ela pesa bem mais do que sugere o número anual anunciado na vitrine do banco.

O coração do cálculo. Aqui está o motivo de o crédito parecer parado no começo: o juro é calculado sobre o saldo que ainda se deve, e como esse saldo é grande nos primeiros meses, o juro também é grande.

    for numero in range(1, plazo + 1):
        interes = redondear(saldo * tasa)          # # O juro é cobrado sobre o saldo que ainda se deve: por isso no começo pesa tanto
        # # A última parcela absorve os centavos do arredondamento para o saldo fechar em zero
        cuota_mes = redondear(saldo + interes) if numero == plazo else cuota
        abono = redondear(cuota_mes - interes)     # # Amortização: o que de fato baixa a dívida (parcela - juro)
        final = redondear(saldo - abono)

Leia o bloco com calma, porque ele resume o sistema inteiro. O juro do mês sai do saldo inicial multiplicado pela taxa. A parcela menos o juro é o que de fato baixa a dívida, e o saldo final é o saldo inicial menos essa amortização. O comentário da última linha é o que explica por que a parcela final quase nunca é igual às outras.

Datas sem sustos. Somar meses a uma data parece trivial até aparecer um dia trinta e um ou um mês de fevereiro:

def sumar_meses(fecha: date, meses: int) -> date:
    """Soma meses a uma data e ajusta o dia para o último do mês quando ele não existe."""
    # Se pasa el año a meses para no equivocarse al cruzar diciembre.
    total = fecha.year * 12 + (fecha.month - 1) + meses

Se o dia da liberação não existir no mês de destino, o programa usa o último dia daquele mês. Um crédito que nasce num trinta e um nunca devolve uma data impossível.

As duas conferências. Fecham o exercício e são a parte que você mais vai usar quando carregar os seus próprios dados:

    print(f"  Soma das amortizações = valor: {'FECHA' if total_abono == monto else 'REVISAR'}")
    print(f"  Saldo final = 0,00: {'FECHA' if saldo_final == 0 else 'REVISAR'}")

A primeira conferência soma todas as amortizações e confirma que dão exatamente o valor do crédito. A segunda confirma que o saldo final fecha em zero. Se alguma delas dissesse REVISAR, algum dado de entrada mudou e não vale a pena continuar lendo a tabela.

O que você vai ver na tela

Com o crédito de exemplo, um valor de 12.000.000,00 em doze meses, o programa mostra primeiro as condições: o valor da parcela fixa e a nota de que a taxa é dividida por doze. Depois vem a tabela, que é esta:

Parcela fixa (sistema francês): 1.100.159,91
Nota: a taxa é nominal anual e é dividida por 12 para obter a taxa mensal.

TABELA DE AMORTIZAÇÃO MÊS A MÊS
------------------------------------------------------------------------------------------------
N.º  Data          Saldo inicial         Parcela           Juros     Amortização     Saldo final
------------------------------------------------------------------------------------------------
1    2026-05-01    12.000.000,00    1.100.159,91      180.000,00      920.159,91   11.079.840,09
2    2026-06-01    11.079.840,09    1.100.159,91      166.197,60      933.962,31   10.145.877,78
3    2026-07-01    10.145.877,78    1.100.159,91      152.188,17      947.971,74    9.197.906,04
4    2026-08-01     9.197.906,04    1.100.159,91      137.968,59      962.191,32    8.235.714,72
5    2026-09-01     8.235.714,72    1.100.159,91      123.535,72      976.624,19    7.259.090,53
6    2026-10-01     7.259.090,53    1.100.159,91      108.886,36      991.273,55    6.267.816,98
7    2026-11-01     6.267.816,98    1.100.159,91       94.017,25    1.006.142,66    5.261.674,32
8    2026-12-01     5.261.674,32    1.100.159,91       78.925,11    1.021.234,80    4.240.439,52
9    2027-01-01     4.240.439,52    1.100.159,91       63.606,59    1.036.553,32    3.203.886,20
10   2027-02-01     3.203.886,20    1.100.159,91       48.058,29    1.052.101,62    2.151.784,58
11   2027-03-01     2.151.784,58    1.100.159,91       32.276,77    1.067.883,14    1.083.901,44
12   2027-04-01     1.083.901,44    1.100.159,96       16.258,52    1.083.901,44            0,00
------------------------------------------------------------------------------------------------

Repare na primeira parcela: dos 1.100.159,91 que você paga, 180.000,00 vão para juro e apenas 920.159,91 baixam a dívida. Na última parcela a proporção se inverte: o juro já é de 16.258,52 e quase toda a parcela é capital. No fim, o resumo entrega os números que interessam:

RESUMO DO CRÉDITO
================================================================================================
  Total pago      : 13.201.918,97
  Total de juros  : 1.201.918,97
  Total amortizado: 12.000.000,00
  Última parcela  : 1.100.159,96

  Nota: a última parcela é diferente porque absorve os centavos do arredondamento.

  Soma das amortizações = valor: FECHA
  Saldo final = 0,00: FECHA

Ou seja, um crédito de 12.000.000,00 termina custando 13.201.918,97, dos quais 1.201.918,97 são juros. E repare na última parcela: ela vale 1.100.159,96, cinco centavos a mais que as outras onze. Não é erro do programa. É o ajuste de centavos de que falávamos, e é exatamente por isso que os bancos informam o valor exato da última parcela no contrato.

Erros comuns e dicas

  • Se a janela fechar no instante em que você dá dois cliques no arquivo, nada quebrou: o programa terminou e o console se fechou sozinho. Abra por um terminal para conseguir ler a tabela inteira.
  • Se aparecer um erro citando datos/credito.csv, quase sempre é porque o ZIP foi aberto dentro do visualizador em vez de ser descompactado. O programa precisa da pasta datos ao lado do arquivo do programa.
  • No arquivo de dados escreva os números de forma simples: o valor sem separador de milhar e a taxa sem o símbolo de porcentagem. Se escrever o valor com pontos, o programa vai ler errado.
  • Salve sempre o arquivo de dados em UTF-8. Se você editar e salvar em outro formato, os acentos da saída se quebram e algumas colunas aparecem deslocadas.
  • Sempre que mudar o valor, a taxa ou o prazo, confira o resumo: as duas conferências precisam dizer FECHA. Se disserem REVISAR, algum dado de entrada está incoerente e precisa de correção antes de você usar os números.
  • A tabela não substitui o extrato do banco. A sua instituição pode usar outra capitalização, seguros, tarifa de administração ou carência; compare linha por linha antes de aceitar que a diferença é real.
  • Guarde a sua versão junto com o arquivo de dados. Quando o banco mudar uma condição, é só rodar de novo e comparar as duas tabelas em um minuto.

Quando isso não basta

Este programa responde a uma pergunta bem específica: como uma parcela fixa se divide entre juro e capital. Funciona perfeitamente enquanto o crédito for um só, o prazo for fixo e a taxa não se mexer. Quando a empresa já carrega vários créditos ao mesmo tempo, fornecedores que financiam em trinta, sessenta e noventa dias, taxas revisadas a cada trimestre ou amortizações extraordinárias no meio do caminho, o arquivo de texto fica curto e a tabela deixa de contar a história completa.

É aí que passa a fazer sentido olhar um software de verdade. O Kardex Tauro é um programa gratuito para organizar o estoque e as finanças de uma pequena empresa, e existe justamente para esse momento: quando planilhas e scripts soltos já não bastam e você precisa que os números morarem num só lugar. Ele não substitui o seu contador nem decide por você; deixa as contas arrumadas para que a conversa com o banco comece de um ponto claro.

⬇ Baixar o código (ZIP)

Baixe o ZIP, troque os dados de exemplo pelo seu crédito e coloque o resultado ao lado do extrato do banco. Meia hora dessa comparação ensina mais sobre o seu crédito do que qualquer folheto. E se o programa for útil, guarde-o por perto: quando o crédito crescer, o Kardex Tauro é o passo seguinte, e o hábito de conferir os números continua exatamente o mesmo.

Compartilhar
Link copiado
Microsoft Store da Microsoft StoreBaixar grátis
Chatea por WhatsApp