Montagem Detalhada da Fórmula de Preço de Custo no Sistema

Criado por Bruno Ferreira em 14/11/2025 11:29  ·  Leitura: 16 min

Situação: 

Muitas pessoas precisam construir fórmulas de preço de custo que reflitam corretamente todos os componentes que compõem o custo do produto (preço, impostos, fretes, encargos, descontos, rateios etc,). Fórmulas incorretas geram custos errados, distorcem margens e impactam o valor de venda. O objetivo desta base é fornecer um guia completo e detalhado que explique cada variável disponível, cada símbolo/operador, mostrar exemplos práticos e apresente um passo a passo para montar, depurar e testar fórmulas de preço de custo no sistema.

Solução

A seguir está a lista das variáveis exatamente como aparecem no sistema, suas definições e uma explicação aprofundada dos símbolos, com exemplos, Depois há várias seções com exemplos numéricos, instruções de verificação e a explicação detalhada da fórmula-completa de exemplo, dissecada parte a parte.


--------------------------------------------------------------------------------

Tabela de Variáveis (usar exatamente estes nomes)

--------------------------------------------------------------------------------

MF_PrecoNF - Preço unitário na Nota Fiscal

MF_AliqIPI - Alíquota de IPI

MF_AliqICM - Alíquota de ICMS da NF de Compra

MF_BaseICM - Base de cálculo do ICMS da NF de Compra

MF_DescVlr - Desconto em valor do item

MF_DescPercItem - Desconto em % do item (desativado)

MF_TipoFisc - Tipo fiscal

MF_QtdUnidSaida - Quantidade

MF_IcmSubstItem - Valor do ICMS ST do item

MF_ProdutoSTEntrada - Indica se o produto é ST na entrada (S ou N)

MF_UFFornecedor - UF do fornecedor (MG, DF, SP, RJ, ES, etc)

MF_TotalNF - Total da Nota Fiscal

MF_DescPerc - Desconto em percentual

MF_TotalIPI - Total de IPI

MF_Encargos - Total de encargos

MF_EncNaoTribut - Total de encargos não tributáveis

MF_IPIEncargos - Total de IPI sobre encargos

MF_FreteNF - Frete na Nota Fiscal

MF_TipoFreteConhec - Tipo do frete de conhecimento (“C” CIF ou “F” FOB)

MF_FreteConhec - Valor do frete de conhecimento

MF_DescVlrNF - Desconto em valor da Nota Fiscal

MF_DescBoleta - Desconto obtido no boleto

MF_TotalICM - Total de ICMS

MF_IcmSubstit - ICMS substituição

MF_AliqICMConhec - Alíquota de ICMS do frete de conhecimento

MF_AliqICMProd - ICMS padrão do produto (ao vender)

MF_BaseICMProd - Base ICMS padrão do produto (ao vender)

MF_EncForaNF - Encargos fora da nota fiscal

MF_Dvv - Despesas variáveis de venda

MF_IcmSTForaNF - Valor de ICMS ST fora da nota fiscal

MF_AcrescimoCusto - Acréscimo no custo

MF_AliqPIS - Alíquota de PIS

MF_AliqCOFINS - Alíquota de COFINS

MF_FreteIncideICMS - Indica se o frete incide na base de ICMS e ICMSST (S ou N)

MF_Frete_CTE - Valor do frete de CT-e do item

MF_CifFob_CTE - Tipo do frete CT-e (CIF = 0/1 ou FOB = 2/3)

MF_ValorIPI - Valor de IPI

MF_Vlr_ICMS_Dest - Valor do ICMS do destino (DIFAL)

MF_Vlr_ICMS_Orig - Valor do ICMS da origem (DIFAL)

MF_ValorPIS - Valor do PIS do item na nota de entrada

MF_ValorCOFINS - Valor do COFINS do item na nota de entrada

MF_Vlr_FCP_ST - Valor do FCP de substituição tributária

MF_Vlr_FCP_ST_Fora - Valor do FCP-ST fora da NF

MF_Vlr_FCP_Dest - Valor do FCP do destino (DIFAL)

MF_Aliq_FCP_Dest - Alíquota do FCP do destino (DIFAL)

MF_AliqICMS_CTE - Alíquota de ICMS do CT-e

MF_ValorST_CTE - Valor do ICMS ST do CT-e

MF_GeraCreditoICMS - Indica se gera crédito de ICMS (S ou N)

MF_VlrCreditoICMS_SN - Valor do crédito de ICMS do Simples Nacional

MF_Frete_ICMSSTFNF_CTE - Valor do ICMS ST fora da NF (frete CT-e)

MF_CST - Código de Situação Tributária

MF_CSOSN - Código de Situação da Operação no Simples Nacional

MF_ValorICMSOp - Valor do ICMS da operação

MF_PercentualDIF - Percentual de diferimento

MF_ValorICMSDIF - Valor de ICMS diferido

MF_RegimeTributario - Regime tributário da filial (S – Simples / R – Lucro Real / P – Lucro Presumido)

MF_CodFilial - Código da filial


--------------------------------------------------------------------------------

Explicação detalhada dos símbolos e operadores (com exemplos práticos)


Observação: o sistema utiliza vírgula (,) como separador decimal em quase todos os valores numéricos nas fórmulas.

--------------------------------------------------------------------------------

+ Soma: adiciona dois valores, Exemplo: 100 + 20 = 120, Em fórmula de custo: MF_PRECONF + (MF_FRETE_CTE/MF_QTDUNIDSAIDA) soma o custo do frete ao preço do produto.


- Subtração: subtrai um valor de outro, Ex: 100 - 10 = 90, Na fórmula: (MF_PRECONF - MF_DESCVLR) dá o preço do item após desconto em valor.


* Multiplicação: expr1 * expr2, Ex: 100 * 1,15 = 115, Uso comum: aplicar fator para acréscimo, Para acrescentar 15% faz-se *1,15, Para aplicar alíquota: *(1 + ALIQ/100) ou preço*(ALIQ/100) se quiser só o valor do imposto.


/ Divisão: expr1 / expr2, Ex: 200 / 4 = 50, Usado para ratear valores pela quantidade: MF_FRETE_CTE / MF_QTDUNIDSAIDA calcula frete por unidade.


() Parênteses: agrupam operações e controlam a ordem. A expressão dentro de parênteses é resolvida primeiro, Ex,: (100 - 10) * 1,2 = 90 * 1,2 = 108, Sem parênteses, multiplicação ocorreria antes da subtração.


IF(condição, valor_se_verdadeiro, valor_se_falso): estrutura condicional que escolhe entre dois valores, Ex,: IF(MF_CIFFOB_CTE > 1, (MF_FRETE_CTE/MF_QTDUNIDSAIDA), 0) — se o indicador CIFFOB_CTE for maior que 1, retorna o frete dividido pela quantidade, senão retorna 0.


Operadores de comparação: >, <, >=, <=, =, <>, Usados dentro do IF, Exemplos: MF_CIFFOB_CTE > 1, MF_ICMSUBSTITEM = 0, MF_CST <> '51',


Uso de percentuais: sempre converta porcentagem para fração ao aplicar: ALIQ/100, Ex,: Alíquota 12% → MF_ALIQICM = 12, então para obter 12% sobre MF_PRECONF use MF_PRECONF*MF_ALIQICM/100.


Concatenação de termos: quando somamos várias parcelas, cada parcela deve estar bem isolada por parênteses se houver operações internas: ((parcelas)*fator)+(outraParte),


Exemplos práticos curtos:

1) Preço líquido com IPI: (MF_PRECONF - MF_DESCVLR) * (1 + MF_ALIQIPI/100)

2) Custo unitário do frete de CT-e somente se CIF/FOB indicar: IF(MF_CifFob_CTE > 1, MF_FRETE_CTE / MF_QTDUNIDSAIDA, 0)

3) Rateio de encargos: (MF_ENCARGOS + MF_EncNaoTribut - MF_DescVlrNF) * MF_PERCRATEIO / MF_QTDUNIDSAIDA


--------------------------------------------------------------------------------

Erros comuns e como evitá-los

--------------------------------------------------------------------------------

- Divisão por zero: sempre verifique MF_QTDUNIDSAIDA > 0 antes de usar em divisão, Ex,: IF(MF_QTDUNIDSAIDA > 0, MF_FRETE_CTE/MF_QTDUNIDSAIDA, 0)

- Sintaxe incorreta em IF: número de parâmetros errado ou falta de parênteses, IF precisa de 3 argumentos separados por vírgula,

- Uso incorreto de nomes de variáveis: usar MF_PRECONF e não MF_PreConf ou outra variação; o nome deve ser exatamente igual,

- Ordem de operações: esquecer parênteses causa resultados diferentes do esperado,

- Separador decimal e separador de argumentos: confira o padrão do sistema (vírgula ou ponto) e do editor de fórmulas,

- Valores negativos inesperados: reveja subtrações e condições IF que subtraem valores; pode ocorrer subtração de imposto que deveria ser soma,


--------------------------------------------------------------------------------

Checklist antes de aplicar fórmula em produção

--------------------------------------------------------------------------------

1) Conferir nomes das variáveis exatamente como listados.

2) Garantir MF_QTDUNIDSAIDA > 0 ou usar IF de proteção. 

3) Testar a fórmula com exemplo numérico em Excel.

4) Fazer revisão por um colega ou documentação fiscal se houver impostos complexos (DIFAL, FCP, ST), 5) Registrar alteração com justificativa (por que o termo foi incluído).


--------------------------------------------------------------------------------

Exemplo numérico completo (passo a passo com valores) — caso real

--------------------------------------------------------------------------------

Valores de entrada (exemplo):

MF_PRECONF = 6,50  (preço unitário antes de desconto)

MF_DESCVLR = 0,10  (desconto em valor por unidade)

MF_ALIQIPI = 5     (5% de IPI)

MF_ENCARGOS = 10,00 (valor total dos encargos que serão rateados entre itens)

MF_ENCNAOTRIBUT = 0,00

MF_FRETENF = 5,00

MF_FRETECONHEC = 0,00

MF_ENCFORANF = 0,00

MF_DESCVLRNF = 0,00

MF_PERCRATEIO = 1   (usar 1 quando a totalidade dos encargos é aplicável)

MF_QTDUNIDSAIDA = 10

MF_CIFFOB_CTE = 2   (indica que o frete CT-e deve ser considerado)

MF_FRETE_CTE = 20,00

MF_ICMSUBSTITEM = 0,00

MF_ICMSTFORANF = 0,00

MF_CST = '00'

MF_ALIQICM = 12

MF_PERCENTUALDIF = 0

MF_ALIQPIS = 1,65

MF_ALIQCOFINS = 7,6

MF_VLR_ICMS_DEST = 219,38


Vamos calcular passo a passo usando a fórmula exemplo com inclusão de MF_VLR_ICMS_DEST conforme recomendado:


Fórmula (com DIFAL adicionado ao rateio de encargos unitários): 

(((MF_PRECONF-MF_DESCVLR)*(1+MF_ALIQIPI/100))

+((MF_ENCARGOS+MF_ENCNAOTRIBUT+MF_FRETENF+MF_FRETECONHEC+MF_ENCFORANF-MF_DESCVLRNF+MF_VLR_ICMS_DEST)*MF_PERCRATEIO/MF_QTDUNIDSAIDA)

+IF(MF_CIFFOB_CTE > 1,(MF_FRETE_CTE/MF_QTDUNIDSAIDA),0)

+(MF_ICMSUBSTITEM/MF_QTDUNIDSAIDA)

+(MF_ICMSTFORANF/MF_QTDUNIDSAIDA)

-IF(MF_ICMSUBSTITEM=0,(MF_PRECONF-MF_DESCVLR)*((IF((MF_CST<>'51'),MF_ALIQICM,MF_PERCENTUALDIF))/100),0)

+((MF_PRECONF*(MF_ALIQPIS+MF_ALIQCOFINS))/100))*1,15


Cálculo numérico:

1) Preço líquido: MF_PRECONF - MF_DESCVLR = 6,50 - 0,10 = 6,40

2) Aplicar IPI: 6,40 * (1 + 5/100) = 6,40 * 1,05 = 6,72

3) Soma encargos + DIFAL: MF_ENCARGOS + ,,, + MF_VLR_ICMS_DEST = 10 + 0 + 5 + 0 + 0 + 0 + 219,38 = 234,38

4) Rateio por unidade: 234,38 * MF_PERCRATEIO / MF_QTDUNIDSAIDA = 234,38 * 1 / 10 = 23,438

5) Frete CT-e por unidade (CIFFOB_CTE > 1): MF_FRETE_CTE / MF_QTDUNIDSAIDA = 20 / 10 = 2,0

6) ICMS-ST / unidade: MF_ICMSUBSTITEM / MF_QTDUNIDSAIDA = 0 / 10 = 0

7) ICMS ST fora NF / unidade: MF_ICMSTFORANF / MF_QTDUNIDSAIDA = 0 / 10 = 0

8) ICMS operação (condição MF_ICMSUBSTITEM=0 é verdadeira, então calcular): (MF_PRECONF - MF_DESCVLR) * (MF_ALIQICM/100) = 6,40 * 12/100 = 6,40 * 0,12 = 0,768

    - Esta parcela é subtraída: -0,768 (porque na fórmula original o termo aparece com sinal de subtração)

9) PIS+COFINS: (MF_PRECONF*(MF_ALIQPIS+MF_ALIQCOFINS))/100 = 6,50 * (1,65+7,6)/100 = 6,50 * 9,25/100 = 6,50 * 0,0925 = 0,60125

10) Somando as partes antes do *1,15:

    6,72 (preço+IPI) + 23,438 (rateio+difal) + 2,0 (frete CTe por unid) + 0 + 0 - 0,768 + 0,60125 = 32,0(aprox)

    Soma exata = 6,72 + 23,438 + 2,0 - 0,768 + 0,60125 = 31,99125

11) Multiplicar por 1,15: 31,99125 * 1,15 = 36,7909375 → resultado final do custo unitário = 36,7909375


Interpretação: ao incluir o MF_VLR_ICMS_DEST (219,38) no rateio de encargos, o custo unitário aumenta substancialmente porque o DIFAL ficou alocado por unidade. Ajuste o MF_PERCRATEIO se desejar ratear apenas uma parte dos encargos sobre esse item.


--------------------------------------------------------------------------------

Explicação parte a parte da fórmula completa (uma descrição clara de cada trecho)

--------------------------------------------------------------------------------

(((MF_PRECONF-MF_DESCVLR)*(1+MF_ALIQIPI/100)) → Calcula o preço do produto após desconto e aplica IPI, obtendo o valor base com imposto.


+((MF_ENCARGOS+MF_ENCNAOTRIBUT+MF_FRETENF+MF_FRETECONHEC+MF_ENCFORANF-MF_DESCVLRNF+MF_VLR_ICMS_DEST)*MF_PERCRATEIO/MF_QTDUNIDSAIDA) → Soma todos os valores monetários que compõem encargos e o DIFAL, aplica o percentual de rateio configurado e divide pela quantidade para obter o custo unitário desses itens.


+IF(MF_CIFFOB_CTE > 1,(MF_FRETE_CTE/MF_QTDUNIDSAIDA),0) → Se o indicador CIFFOB_CTE indicar que o frete do CT-e deve ser considerado, adiciona o frete por unidade; caso contrário adiciona 0.


+(MF_ICMSUBSTITEM/MF_QTDUNIDSAIDA) → Acrescenta a parcela de ICMS por substituição (ICMS-ST) do item por unidade.


+(MF_ICMSTFORANF/MF_QTDUNIDSAIDA) → Acrescenta o ICMS-ST que foi informado fora da nota, rateado por unidade.


-IF(MF_ICMSUBSTITEM=0,(MF_PRECONF-MF_DESCVLR)*((IF((MF_CST<>'51'),MF_ALIQICM,MF_PERCENTUALDIF))/100),0) → Se não houver ICMS-ST no item, calcula o ICMS normal da operação (usando MF_ALIQICM, exceto quando MF_CST = '51' que usa MF_PERCENTUALDIF) e subtrai esse valor; se houver ICMS-ST não subtrai nada (0).


+((MF_PRECONF*(MF_ALIQPIS+MF_ALIQCOFINS))/100) → Calcula os valores de PIS e COFINS sobre o preço de referência e soma.


)*1,15 → Por fim multiplica todo o resultado por 1,15 aplicando um acréscimo final de 15% (pode representar ajuste, margem ou custo adicional definido pela empresa).


--------------------------------------------------------------------------------

Dicas avançadas e variações úteis

--------------------------------------------------------------------------------

- Incluir MF_VLR_ICMS_DEST separado: se preferir não afetar o rateio de encargos, você pode adicionar +(MF_VLR_ICMS_DEST/MF_QTDUNIDSAIDA) como uma parcela separada no final, em vez de somá-lo ao pacote de encargos, Isso deixa claro que é um imposto do tipo DIFAL alocado por unidade.

- Proteção contra divisão por zero: envolver divisões em IF para evitar erros, por exemplo: IF(MF_QTDUNIDSAIDA>0, MF_FRETE_CTE/MF_QTDUNIDSAIDA, 0).

- Documente cada alteração: sempre registre no change-log da fórmula o porquê de cada termo novo (ex: "incluído MF_VLR_ICMS_DEST para contabilizar DIFAL em operações interestaduais").

- Crie fórmulas "limpas" para testes: começar com uma fórmula mais simples e ir adicionando termos, testando entre cada passo.


--------------------------------------------------------------------------------

Conclusão

--------------------------------------------------------------------------------

Este documento teve por objetivo detalhar, exemplificar e ensinar como montar a fórmula de preço de custo no sistema, explicando cada variável, símbolo e construindo um exemplo prático com cálculos numéricos, Utilize os exemplos, checklist e dicas avançadas para validar e aplicar suas fórmulas com segurança.


Lembrando que tem uma videoaula que demonstra passo a passo no canal da Universidade ATS: https://www.youtube.com/watch?v=3laBe4ZKiTk

 



 

Bruno Ferreira
Desenvolvedor
Central de Atendimento
(31) 2112-3700

atsinformatica.com.br