Calculadora de margem de lucro
Digite um custo e um preço de venda e receba lucro, margem e markup lado a lado: um custo de 80 vendido a 100 dá margem de 20%, mas markup de 25%. Vender abaixo do custo mostra o prejuízo como margem negativa. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Custo
- 80
- Preço
- 100
- Lucro
- 20
- Margem de lucro (%)
- 20
- Acréscimo (%)
- 25
Calcula lucro, percentual de margem bruta e percentual de markup a partir de um custo unitário e um preço de venda, distinguindo as duas razões que costumam ser confundidas.
Lucro, margem e markup, e como diferem
A partir de um custo e um preço, esta ferramenta devolve três números. O lucro é simplesmente preço - custo. O percentual de margem é (preço - custo) / preço * 100, expressando o lucro como uma parcela do preço de venda.
O percentual de markup é (preço - custo) / custo * 100, expressando o mesmo lucro como uma parcela do custo. Essas duas razões são rotineiramente confundidas: um custo de 80 vendido a 100 gera uma margem de 20%, mas um markup de 25%, e a ferramenta devolve ambos para que você nunca os misture. A saída repete o custo e o preço que você forneceu, de modo que um resultado armazenado é autoexplicativo sem precisar da requisição original.
Campos, validação e casos-limite
Há uma exceção rígida: price não pode ser 0, porque é o denominador da margem, então um preço zero devolve o erro tipado "price no puede ser 0". Um preço abaixo do custo é permitido e simplesmente produz um lucro negativo e uma margem negativa, que é o sinal correto de uma venda com prejuízo, e não um erro. O campo opcional decimals é um inteiro de 0 a 8 e assume 2 por padrão, dando aos fluxos financeiros espaço para uma economia de unidade de alta precisão.
Casos de uso
Precifique um produto corretamente
Informe seu custo posto e o preço-alvo para ver a margem verdadeira e evitar o erro clássico de anunciar markup como se fosse margem.
Modele descontos e prejuízos
Teste um preço abaixo do custo para ver o lucro e a margem negativos, quantificando exatamente o quanto um desconto promocional corta.
Perguntas frequentes
Qual é a diferença entre margem e markup?
Margem é o lucro como percentual do preço; markup é o mesmo lucro como percentual do custo. Custo 80 a um preço 100 é uma margem de 20%, mas um markup de 25%.
Por que o preço não pode ser zero?
O preço é o denominador do percentual de margem, então um preço zero dividiria por zero.
Posso modelar um prejuízo?
Sim. Um preço abaixo do custo é permitido e devolve um lucro negativo e uma margem negativa, não um erro.
Quão precisa pode ser a saída?
O campo decimals aceita 0 a 8 (padrão 2), arredondado half-up.
O que acontece quando o custo é zero?
A margem fica em 100%, porque o preço inteiro é lucro. O markup não pode ser calculado, já que seria preciso dividir por zero, então ele fica vazio em vez de mostrar um número enganoso.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/dev/profit-margin \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"cost":80,"price":100}'const res = await fetch("https://api.kit.forhosting.com/dev/profit-margin", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"cost": 80,
"price": 100
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/profit-margin",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"cost": 80,
"price": 100
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/profit-margin", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"cost":80,"price":100}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"cost":80,"price":100}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/profit-margin", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"cost": 80,
"price": 100
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.profit_margin",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Lucro, margem e markup, e como diferem
Quando o custo é 0, o markup é matematicamente indefinido (divisão por zero), então markup_percent é devolvido como null enquanto margin_percent permanece válido em 100.
Campos, validação e casos-limite
Dois campos são obrigatórios: cost, um número finito maior ou igual a 0, e price, um número finito maior ou igual a 0. Toda entrada é verificada quanto a tipo, finitude e faixa antes de qualquer aritmética, e uma violação devolve invalid_input nomeando o campo, por exemplo um custo negativo ou um preço não numérico.
Arredondamento, determinismo e entrega
O arredondamento usa uma regra half-up explícita sobre o resultado IEEE exato, aplicada de forma independente a profit, margin_percent e markup_percent, então um valor de 12.345 vira 12.35 em vez de se desviar por um formatador dependente de locale. Tarefas de API que falham nunca são cobradas; o saldo pré-pago é gasto apenas em trabalho bem-sucedido a US$ 0,002.
Casos de integração
Audite um catálogo em massa
Envie o custo e o preço de cada SKU pela API para sinalizar itens cujo margin_percent fique abaixo do seu limite.
Perguntas técnicas
E se o custo for zero?
Lucro e margem ainda são válidos, mas o markup é indefinido (divisão pelo custo), então markup_percent é devolvido como null.