Cálculo do Custo de Mercadoria: Método Custo Médio Ponderado

Cálculo do Custo de Mercadoria: Método Custo Médio Ponderado

Neste tutorial, vamos aprender a calcular o custo de mercadorias utilizando o método Custo Médio Ponderado (CMP), amplamente adotado em sistemas ERP para o controle de estoque. O CMP considera o custo total das mercadorias em estoque e a quantidade de unidades, resultando em um preço médio para cada unidade de produto.


Regras do Cálculo de Custo Médio Ponderado

O Custo Médio Ponderado é utilizado para calcular o custo das mercadorias vendidas e o valor do estoque. Ele leva em consideração a média ponderada entre os custos de aquisição de mercadorias em diferentes momentos. Este método é ideal para empresas que realizam compras com preços variados ao longo do tempo e desejam manter a simplicidade e a precisão nos cálculos de estoques e custos.


Passo a Passo para o Cálculo do Custo Médio

Entradas (Compras)

  • Quando uma nova remessa de mercadorias é comprada, o custo total da remessa é somado ao custo do estoque existente.
  • O Custo Médio Unitário é recalculado pela fórmula:
Custo Médio Unitário = Custo Total do Estoque ÷ Quantidade Total em Estoque

Saídas (Vendas)

  • As saídas de mercadorias não afetam diretamente o Custo Médio Unitário, já que o cálculo considera apenas as entradas.
  • Quando uma mercadoria é vendida, o custo da mercadoria vendida é determinado pelo Custo Médio Unitário no momento da venda.
Custo Total das Saídas = Quantidade Vendida × Custo Médio Unitário

Atualização do Estoque

Após cada entrada ou saída, o estoque é atualizado, e o Custo Médio Unitário é recalculado com base na nova quantidade total e no custo total das mercadorias em estoque.


📦 Exemplo Prático: Loja de Eletrônicos

Produto: Smartphone Modelo X


1. Entradas de Mercadorias (Compras)

Tabela de Entradas

DataTipoQuantidadePreço UnitárioCusto TotalSaldo QuantidadeSaldo Custo Total
01/06Entrada100R$ 1.000,00R$ 100.000,00100R$ 100.000,00
05/06Entrada200R$ 1.100,00R$ 220.000,00300R$ 320.000,00

Cálculo:

  • Quantidade: 100 + 200 = 300 unidades
  • Custo Total: 100.000,00 + 220.000,00 = R$ 320.000,00
  • CMP: 320.000 ÷ 300 = R$ 1.066,67

2. Saída de Mercadorias (Vendas)

Tabela de Saída

DataTipoQuantidadeCusto Médio UnitárioCusto Total SaídaSaldo QuantidadeSaldo Custo Total
10/06Saída150R$ 1.066,67R$ 160.000,50150R$ 159.999,50

Cálculo:

  • Quantidade: 300 – 150 = 150 unidades
  • Custo Total Estoque: 320.000,00 – 160.000,50 = R$ 159.999,50
  • CMP permanece R$ 1.066,67

3. Nova Entrada de Mercadorias

Tabela de Saldo + Entrada

DataTipoQuantidadePreço UnitárioCusto TotalSaldo QuantidadeSaldo Custo TotalCusto Médio Unitário
15/06Saldo Antes da Entrada150R$ 1.066,67R$ 159.999,50150R$ 159.999,50R$ 1.066,67
15/06Entrada100R$ 1.200,00R$ 120.000,00250R$ 279.999,50R$ 1.120,00

Cálculo:

  • Quantidade: 150 + 100 = 250 unidades
  • Custo Total Estoque: 159.999,50 + 120.000,00 = R$ 279.999,50
  • CMP: 279.999,50 ÷ 250 = R$ 1.120,00

4. Nova Saída de Mercadorias

Tabela da Saída

DataTipoQuantidadeCusto Médio UnitárioCusto Total SaídaSaldo QuantidadeSaldo Custo Total
20/06Saída100R$ 1.120,00R$ 112.000,00150R$ 167.999,50

Cálculo:

  • Quantidade: 250 – 100 = 150 unidades
  • Custo Total Estoque: 279.999,50 – 112.000,00 = R$ 167.999,50
  • CMP permanece R$ 1.120,00

📊 Tabela Resumo de Movimentações

DataMovimentaçãoQuantidadePreço Unitário (R$)Custo Total (R$)Saldo QuantidadeSaldo Custo Total (R$)Custo Médio Unitário
01/06Entrada1001.000,00100.000,00100100.000,001.000,00
05/06Entrada2001.100,00220.000,00300320.000,001.066,67
10/06Saída1501.066,67160.000,50150159.999,501.066,67
15/06Entrada1001.200,00120.000,00250279.999,501.120,00
20/06Saída1001.120,00112.000,00150167.999,501.120,00

📌 Resumo Final do Estoque

IndicadorValor
Saldo Final (unidades)150
Custo Médio UnitárioR$ 1.120,00
Valor Total do EstoqueR$ 167.999,50

🧩 Explicação das Colunas

  • Movimentação: Indica se foi entrada (compra) ou saída (venda).
  • Quantidade: Quantidade movimentada.
  • Preço Unitário: Preço pago por unidade (entradas) ou custo médio (saídas).
  • Custo Total: Valor movimentado na operação.
  • Saldo Quantidade: Quantidade restante em estoque.
  • Saldo Custo Total: Valor total do estoque após a movimentação.
  • Custo Médio Unitário: Custo médio recalculado após cada entrada.

🔄 CMP vs. PEPS (FIFO): Qual Método Escolher?

O Custo Médio Ponderado não é o único método de controle de estoque. A alternativa mais comum no Brasil é o PEPS/FIFO (Primeiro que Entra, Primeiro que Sai), que baixa o estoque pelo custo do lote mais antigo, em vez de uma média.

CritérioCusto Médio Ponderado (CMP)PEPS (FIFO)
Como recalcula o custoA cada entrada, recalcula a média de todo o estoqueNão recalcula — cada lote mantém seu próprio custo até esgotar
Complexidade de implementaçãoMais simples (uma única variável de custo unitário)Mais complexa (fila de lotes com custos distintos)
Aceito para fins fiscais no BrasilSimSim
Sensibilidade a variação de preçosSuaviza oscilações — bom para produtos com preço de compra instávelReflete mais rápido o custo real de reposição em cenários de alta ou baixa de preços

Importante: o método UEPS/LIFO (Último que Entra, Primeiro que Sai), comum em outros países, não é aceito pela legislação fiscal e contábil brasileira para fins de apuração de resultado — mencionamos aqui apenas para deixar claro por que ele não aparece como alternativa válida no Brasil.

Na prática, a escolha entre CMP e PEPS costuma ser definida pelo próprio ERP disponível e por exigências do regime tributário da empresa; a maioria dos pequenos e médios negócios brasileiros opera com CMP pela simplicidade operacional.

🧮 Implementando o Cálculo em Código

Se você está construindo um controle de estoque simples (uma planilha automatizada, um pequeno sistema interno), a lógica do CMP pode ser resumida em poucas linhas:

function registrarEntrada(estoque, quantidade, precoUnitario) {
  const custoTotalEntrada = quantidade * precoUnitario;
  const novaQuantidade = estoque.quantidade + quantidade;
  const novoCustoTotal = estoque.custoTotal + custoTotalEntrada;

  return {
    quantidade: novaQuantidade,
    custoTotal: novoCustoTotal,
    custoMedioUnitario: novoCustoTotal / novaQuantidade,
  };
}

function registrarSaida(estoque, quantidade) {
  if (quantidade > estoque.quantidade) {
    throw new Error('Quantidade de saída maior que o saldo em estoque.');
  }

  const custoTotalSaida = quantidade * estoque.custoMedioUnitario;

  return {
    quantidade: estoque.quantidade - quantidade,
    custoTotal: estoque.custoTotal - custoTotalSaida,
    custoMedioUnitario: estoque.custoMedioUnitario, // não muda em saídas
  };
}

Repare que registrarSaida lança um erro quando a quantidade solicitada excede o saldo — um caso de borda fácil de esquecer, mas que evita que o estoque fique negativo por uma falha de digitação ou uma venda registrada em duplicidade.

Nota sobre custos adicionais: o preço unitário usado no registrarEntrada deve, idealmente, já incluir custos vinculados à compra que compõem o custo de aquisição contábil — frete, seguro e, quando não recuperável, o ICMS-ST. Ignorar esses custos subestima o Custo Médio Unitário e infla artificialmente a margem de lucro calculada.

✔️ Conclusão

Este tutorial demonstrou como calcular o Custo Médio Ponderado para entradas e saídas de mercadorias, mantendo o controle eficiente do estoque e dos custos. Com essas informações, é possível tomar decisões mais informadas sobre preços e margens de lucro.

Comentários

Não foi possível carregar os comentários no momento.

Deixe seu comentário