Calculadora custo por porção
Farinha, ovos, leite e manteiga que somam 6,7 no total, divididos em 4 porções, saem a 1,675 por prato. Informe quanto custou cada ingrediente do lote e quantas porções ele rende: você recebe o total, o custo por prato e cada passo. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Roda direto no seu navegador. Grátis, sem cadastro — seus dados não são enviados para lugar nenhum.
Uma calculadora de custo por porção transforma a lista de compras de uma receita e o rendimento do lote em um número honesto: quanto um prato realmente custa. Informe o custo de cada ingrediente da receita completa —farinha, ovos, leite, temperos, óleo— e o número de porções que o lote produz; a ferramenta soma as linhas, divide pelas porções e devolve o custo total, o custo por porção, as linhas de ingredientes rotuladas e a aritmética passo a passo que você pode colar em uma planilha de meal-prep ou em um orçamento de buffet.
O que significa custo por porção em um lote de receita
O custo por porção é o dinheiro total gasto em ingredientes de um lote cozido dividido por quantas porções esse lote deve alimentar. Se um gratinado de massa usa farinha, ovos, leite e manteiga que juntos custam seis dólares e setenta e a forma é cortada em quatro porções iguais, cada prato custa um dólar e sessenta e sete e meio antes de mão de obra, energia, embalagem ou markup.
Essa cifra é a base do orçamento doméstico de refeições, dos cards de blogs de culinária, da engenharia de cardápios de cantina e dos orçamentos de buffet por item. Não é o mesmo que preço unitário na prateleira: o preço unitário compara a embalagem A com a B por preço sobre onças; o custo por porção agrega muitos ingredientes já comprados para uma receita e aloca essa soma entre pratos.
Também não é um redimensionador de receita: redimensionar multiplica quantidades quando você muda o número de convidados; esta calculadora assume que você já sabe o dinheiro gasto nas quantidades que vai cozinhar e só precisa da aritmética de total sobre porções. Zero porções é um erro duro porque não há prato ao qual alocar custo, e uma contagem negativa de porções não é um rendimento físico neste modelo. Itens de despensa grátis ou básicos podem ser inseridos com custo zero quando você decide excluí-los; a soma ainda funciona.
Professores de matemática do consumidor, nutricionistas que montam planos de refeição e product managers que publicam widgets de custo de refeição precisam do mesmo contrato determinístico: mesmos custos de ingredientes, mesmas porções, mesmo custo por porção e total, em qualquer ambiente.
Dicas práticas, limites e buscas relacionadas
Informe os custos das quantidades que você realmente usará no lote, não da embalagem inteira da loja a menos que use o pacote todo. Se metade de uma caixa de creme de dois dólares entra na sopa, use um dólar como custo dessa linha para o prato permanecer honesto. Prefira enviar números em vez de strings formatadas como moeda; números em string só são aceitos quando batem com um padrão numérico finito estrito sem cifrões ou vírgulas.
Mantenha cada custo não negativo —zero é permitido para amostras grátis ou básicos que você exclui— enquanto as porções devem permanecer estritamente positivas. Esta página atende quem busca calculadora de custo por porção de receita, ferramenta de custo de refeição por porção ou ajuda de orçamento de ingredientes; não é um scraper de preços ao vivo, nem um comparador de preço unitário de corredor, nem um redimensionador de quantidades de receita.
Prefira esta capacidade quando você já conhece os custos dos ingredientes e o rendimento do lote; se a fonte for uma foto de cupom, extraia esses números primeiro.
Casos de uso
Orçamento doméstico de meal-prep
Cozinheiros listam o custo de cada ingrediente de um lote, informam quantas porções rende e veem o custo real do prato antes de comprar ou cozinhar para a semana.
Notas de preço em blogs e cards
Autores anexam um custo aproximado por porção às receitas publicadas para leitores compararem ideias de refeição por orçamento, sabor e tempo.
Orçamentos de buffet e cardápios
Equipes somam custos de ingredientes por item de um prato e dividem pelas porções planejadas para semear preços de cardápio, refeições escolares ou eventos antes do markup.
Perguntas frequentes
Como o custo por porção é calculado?
Some o custo de cada ingrediente do lote completo e divida esse total pelo número de porções.
Preciso de um nome para cada ingrediente?
Não. Você pode enviar números soltos como custos, ou objetos só com o campo cost. Nomes opcionais aparecem na resposta e em steps quando fornecidos.
Isso compara preços unitários do supermercado?
Não. Aloca os custos de ingredientes de uma receita entre porções. Para comparar embalagens no corredor, use uma ferramenta de preço unitário.
A calculadora de custo de receita é grátis?
A ferramenta do navegador é grátis e roda localmente.
Que custo eu coloco quando uso só parte de um ingrediente?
Coloque apenas a parte que vai para a receita. Se metade de uma caixinha de creme de leite que custou 2 entra na sopa, digite 1 nessa linha para o custo por porção não ficar inflado.
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/life/cost-per-serving \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"ingredients":[{"name":"Flour 1 kg","cost":1.2},{"name":"Eggs (6)","cost":2.4},{"name":"Milk 1 L","cost":1.1},{"name":"Butter 250 g","cost":2}],"servings":4}'const res = await fetch("https://api.kit.forhosting.com/life/cost-per-serving", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"ingredients": [
{
"name": "Flour 1 kg",
"cost": 1.2
},
{
"name": "Eggs (6)",
"cost": 2.4
},
{
"name": "Milk 1 L",
"cost": 1.1
},
{
"name": "Butter 250 g",
"cost": 2
}
],
"servings": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/cost-per-serving",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"ingredients": [
{
"name": "Flour 1 kg",
"cost": 1.2
},
{
"name": "Eggs (6)",
"cost": 2.4
},
{
"name": "Milk 1 L",
"cost": 1.1
},
{
"name": "Butter 250 g",
"cost": 2
}
],
"servings": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/cost-per-serving", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"ingredients":[{"name":"Flour 1 kg","cost":1.2},{"name":"Eggs (6)","cost":2.4},{"name":"Milk 1 L","cost":1.1},{"name":"Butter 250 g","cost":2}],"servings":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"ingredients":[{"name":"Flour 1 kg","cost":1.2},{"name":"Eggs (6)","cost":2.4},{"name":"Milk 1 L","cost":1.1},{"name":"Butter 250 g","cost":2}],"servings":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/cost-per-serving", 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
{
"ingredients": [
{
"name": "Flour 1 kg",
"cost": 1.2
},
{
"name": "Eggs (6)",
"cost": 2.4
},
{
"name": "Milk 1 L",
"cost": 1.1
},
{
"name": "Butter 250 g",
"cost": 2
}
],
"servings": 4
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.cost_per_serving",
"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.
Limites
min_ingredients | 1 |
max_ingredients | 200 |
max_abs | 1000000000000 |
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
Quando as porções são zero a divisão é indefinida, então a API retorna um erro claro invalid_input em vez de inventar infinito ou uma refeição grátis sem sentido. O caminho é aritmética determinística pura —sem scraper de supermercado, sem rede, sem semente aleatória, sem relógio— de modo que o executor gratuito do navegador e a API pré-paga devolvem o mesmo JSON após o arredondamento decimal fixo sempre que você a chama.
Como chamar a API e o que volta
Envie um corpo JSON com dois campos obrigatórios. ingredients (aliases costs, items, list) é um array de pelo menos uma e no máximo duzentas entradas. Cada entrada pode ser um número finito não negativo tratado como custo, ou um objeto com cost (aliases price, amount, value) e um name opcional (aliases label, title, ingredient). servings (aliases portions, people, yield, serves) é um número finito que deve ser estritamente maior que zero. Os valores absolutos de custos e porções devem permanecer dentro de um trilhão para que somas e quocientes intermediários permaneçam finitos em precisão dupla IEEE no Worker e no navegador. Em caso de sucesso a resposta define ingredient_count com quantas linhas foram somadas, ingredients como array de objetos com index, name e cost arredondado, servings com o rendimento arredondado, total_cost com a soma de todos os custos, cost_per_serving com total_cost dividido por servings, formula com a string cost_per_serving equals total_cost over servings, message com um resumo curto e steps com um array ordenado de linhas de substituição. Validação falha —ingredients ausente, lista vazia, números não finitos, valores fora dos limites absolutos, custos negativos ou servings zero ou não positivo— retorna invalid_input e nunca é cobrada. O preço é um US$ 0,002 fixo por requisição bem-sucedida com unidade item e preço unitário marginal zero.
Dicas práticas, limites e buscas relacionadas
Ao ensinar ou testar, combine exemplos: farinha 1.2, ovos 2.4, leite 1.1 e manteiga 2.0 para quatro porções rende total 6.7 e custo por porção 1.675; o mesmo total para oito porções reduz pela metade o custo do prato; uma lista só de números ainda funciona sem nomes; e servings igual a zero demonstra o caminho duro de invalid_input. Tarefas falhas que retornam invalid_input não consomem saldo pré-pago, o que mantém scripts exploratórios baratos quando alunos colocam servings em zero de propósito. Checagens de ida e volta são fáceis: some os custos à mão e confirme que igualam total_cost, depois divida por servings e confirme cost_per_serving com o mesmo arredondamento a doze casas.
Perguntas técnicas
O que acontece se as porções forem zero?
Divisão por zero é indefinida. A API retorna invalid_input e não cobra a requisição.