Calculadora coste por ración
Harina, huevos, leche y mantequilla que suman 6,7 en total, repartidos en 4 raciones, salen a 1,675 por plato. Escriba lo que costó cada ingrediente del lote y cuántas raciones da: obtendrá el total, el coste por plato y cada paso. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
Una calculadora de coste por ración convierte la lista de compra de una receta y el rendimiento del lote en un número honesto: cuánto cuesta realmente un plato. Introduzca el coste de cada ingrediente de la receta completa —harina, huevos, leche, especias, aceite— y el número de raciones que produce el lote; la herramienta suma las partidas, divide por raciones y devuelve el coste total, el coste por ración, las líneas de ingredientes etiquetadas y la aritmética paso a paso que puede pegar en una hoja de meal-prep o en un presupuesto de catering.
Qué significa el coste por ración en un lote de receta
El coste por ración es el dinero total gastado en ingredientes de un lote cocinado dividido entre las porciones que ese lote debe alimentar. Si un pastel de pasta usa harina, huevos, leche y mantequilla que juntos cuestan seis dólares con setenta y la bandeja se corta en cuatro raciones iguales, cada plato cuesta un dólar con sesenta y siete y medio antes de mano de obra, energía, envase o margen.
Esa cifra es la base del presupuesto doméstico de comidas, de las fichas de blogs de cocina, de la ingeniería de menús de cafetería y de los presupuestos de catering por partida. No es lo mismo que el precio unitario en el lineal: el precio unitario compara el envase A con el B por precio entre onzas; el coste por ración agrega muchos ingredientes ya comprados para una receta y reparte esa suma entre platos.
Tampoco es un escalador de recetas: escalar multiplica cantidades al cambiar el número de comensales; esta calculadora asume que usted ya conoce el dinero gastado en las cantidades que cocinará y solo necesita la aritmética de total entre raciones. Cero raciones es un error duro porque no hay plato al que asignar coste, y un recuento negativo de raciones no es un rendimiento físico en este modelo. Los productos de despensa gratuitos o básicos pueden introducirse con coste cero cuando usted decide excluirlos; la suma sigue funcionando.
Profesores de matemáticas del consumidor, dietistas que elaboran planes de menú y gestores de producto que publican widgets de coste de comida necesitan el mismo contrato determinista: mismos costes de ingredientes, mismas raciones, mismo coste por ración y total, en cualquier entorno.
Consejos prácticos, límites y búsquedas relacionadas
Introduzca los costes de las cantidades que realmente usará en el lote, no del envase completo de tienda salvo que lo use entero. Si entra en la sopa la mitad de un cartón de nata de dos dólares, use un dólar como coste de esa línea para que la cifra del plato sea honesta. Prefiera enviar números en lugar de cadenas con formato de moneda; los números en cadena solo se aceptan cuando coinciden con un patrón numérico finito estricto sin signos de dólar ni comas.
Mantenga cada coste no negativo —cero se permite para muestras gratis o básicos que excluye— mientras que las raciones deben ser estrictamente positivas. Esta página apunta a quienes buscan una calculadora de coste por ración de receta, herramienta de coste de comida por porción o ayuda de presupuesto de ingredientes; no es un scraper de precios en vivo, ni un comparador de precio unitario del pasillo, ni un escalador de cantidades de receta.
Prefiera esta capacidad cuando ya conozca los costes de ingredientes y el rendimiento del lote; si su fuente es una foto de ticket, extraiga primero esos números.
Qué puede hacer con ella
Presupuesto doméstico de meal-prep
Los cocineros listan el coste de cada ingrediente de un lote, introducen cuántas porciones rinde y ven el coste real del plato antes de comprar o cocinar para la semana.
Notas de precio en blogs y fichas
Los autores añaden un coste aproximado por ración a las recetas publicadas para que los lectores comparen ideas de menú por presupuesto, sabor y tiempo.
Presupuestos de catering y menús
Los equipos suman costes de ingredientes por partida de un plato y dividen por raciones previstas para sembrar precios de menú, comidas escolares o eventos antes del margen.
Preguntas frecuentes
¿Cómo se calcula el coste por ración?
Sume el coste de cada ingrediente del lote completo y divida ese total entre el número de raciones.
¿Necesito un nombre para cada ingrediente?
No. Puede enviar números sueltos como costes, u objetos solo con el campo cost. Los nombres opcionales aparecen en la respuesta y en steps cuando se facilitan.
¿Compara precios unitarios del supermercado?
No. Reparte los costes de ingredientes de una receta entre raciones. Para comparar envases del pasillo use una herramienta de precio unitario.
¿Es gratis la calculadora de coste de receta?
La herramienta del navegador es gratuita y se ejecuta en local.
¿Qué coste pongo si solo uso una parte de un ingrediente?
Ponga solo la parte que entra en la receta. Si usa la mitad de un envase de nata que costó 2, escriba 1 en esa línea; así el coste por ración no sale inflado.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
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)Ejemplo de solicitud
{
"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
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.cost_per_serving",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
min_ingredients | 1 |
max_ingredients | 200 |
max_abs | 1000000000000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Cuando las raciones son cero la división no está definida, así que la API devuelve un error claro invalid_input en lugar de inventar infinito o una comida gratis absurda. El camino es aritmética determinista pura —sin scraper de supermercado, sin red, sin semilla aleatoria, sin reloj— de modo que el ejecutor gratuito del navegador y la API de prepago devuelven el mismo JSON tras el redondeo decimal fijo cada vez que la invoca.
Cómo llamar a la API y qué devuelve
Envíe un cuerpo JSON con dos campos obligatorios. ingredients (alias costs, items, list) es un array de al menos una y como máximo doscientas entradas. Cada entrada puede ser un número finito no negativo tratado como coste, o un objeto con cost (alias price, amount, value) y un name opcional (alias label, title, ingredient). servings (alias portions, people, yield, serves) es un número finito que debe ser estrictamente mayor que cero. Los valores absolutos de costes y raciones deben permanecer dentro de un billón para que sumas y cocientes intermedios sigan siendo finitos en precisión doble IEEE en el Worker y en el navegador. En caso de éxito la respuesta fija ingredient_count al número de líneas sumadas, ingredients a un array de objetos con index, name y cost redondeado, servings al rendimiento redondeado, total_cost a la suma de todos los costes, cost_per_serving a total_cost dividido por servings, formula a la cadena cost_per_serving equals total_cost over servings, message a un resumen breve y steps a un array ordenado de líneas de sustitución. La validación fallida —ingredients ausente, lista vacía, números no finitos, valores fuera de límites absolutos, costes negativos o servings cero o no positivo— devuelve invalid_input y nunca se cobra. El precio es un $0.002 fijo por petición exitosa con unidad item y precio unitario marginal cero.
Consejos prácticos, límites y búsquedas relacionadas
Al enseñar o probar, combine ejemplos: harina 1.2, huevos 2.4, leche 1.1 y mantequilla 2.0 para cuatro raciones da total 6.7 y coste por ración 1.675; el mismo total para ocho raciones reduce a la mitad el coste del plato; una lista de costes solo numéricos sigue funcionando sin nombres; y servings igual a cero demuestra la ruta dura de invalid_input. Las tareas fallidas que devuelven invalid_input no consumen saldo prepago, lo que mantiene baratos los scripts exploratorios cuando los alumnos ponen servings a cero a propósito. Las comprobaciones de ida y vuelta son fáciles: sume a mano los costes y confirme que igualan total_cost, luego divida por servings y confirme cost_per_serving con el mismo redondeo a doce decimales.
Preguntas técnicas
¿Qué ocurre si las raciones son cero?
La división por cero no está definida. La API devuelve invalid_input y no cobra la petición.