Estimador de amargor IBU de cerveza
Este estimador de IBU calcula las Unidades Internacionales de Amargor aproximadas que aporta una adición de lúpulo.
Ejecutar — gratis
Introduzca el peso en gramos, el porcentaje de alfa ácidos del lúpulo, los minutos de hervor y el volumen final de cerveza en litros. La calculadora aplica la curva de utilización Tinseth con una densidad fija de referencia de 1.050, por lo que obtiene un resultado determinista a partir de esos cuatro datos. Resulta útil para diseñar y comparar recetas, aunque sigue siendo una estimación y no una medición de laboratorio de la cerveza terminada.
Qué representa la estimación de IBU
Las Unidades Internacionales de Amargor expresan la concentración aproximada de iso-alfa ácidos amargos en la cerveza, que por convención se interpreta como miligramos por litro. Este estimador parte de la masa de lúpulo y del porcentaje de alfa ácidos indicado, y después calcula qué proporción de ese amargor potencial se vuelve soluble durante el hervor. Un hervor más largo suele extraer e isomerizar más alfa ácidos, pero el aumento se desacelera con el tiempo y no sigue una línea recta. El volumen final también importa: una misma cantidad extraída produce una concentración menor en un lote más grande. Por ello, el IBU devuelto es un cálculo de receta, no una garantía sobre la percepción sensorial. El dulzor de la malta, la química del agua, la levadura, el formato del lúpulo, la fermentación, el envejecimiento y los métodos de medición pueden modificar tanto el sabor amargo como el resultado de un laboratorio. Utilice la cifra como referencia uniforme para comparar recetas, ajustar adiciones y confirmar la dirección de un cambio. Para una especificación comercial final, consulte los registros de elaboración o un análisis de laboratorio adecuado.
Cómo se realiza el cálculo
El cálculo emplea el modelo de utilización Tinseth. Su factor temporal sigue una curva de saturación: la utilización crece con rapidez al principio del hervor y después se aproxima gradualmente a un límite. Los cálculos Tinseth clásicos también consideran la densidad del mosto, porque un mosto más denso suele reducir la utilización. Esta capacidad acepta deliberadamente solo los cuatro datos indicados, así que aplica una densidad específica de referencia fija de 1.050 y muestra esa suposición en cada resultado correcto. Multiplica el peso del lúpulo por los alfa ácidos en forma decimal, la utilización prevista y la conversión de gramos a miligramos; luego divide el producto entre el volumen en litros. El IBU se redondea a dos decimales y la utilización se devuelve como porcentaje para que el procedimiento sea transparente. Una adición de cero minutos es válida y genera cero amargor calculado en este modelo de hervor. No se modelan adiciones en whirlpool, hop stand ni dry hopping, pues requieren otros datos de temperatura y proceso. Si la densidad de su mosto se aleja mucho de 1.050, interprete el valor como comparación normalizada y no como predicción totalmente personalizada.
Cómo usar el estimador al diseñar recetas
Para una sola adición, introduzca el peso exacto, el valor de alfa ácidos impreso para ese lote de lúpulo, la duración prevista del hervor y el volumen de cerveza sobre el que se repartirá el aporte. Los alfa ácidos varían entre variedades, cosechas, condiciones de almacenamiento y envases, por lo que la etiqueta del lote es más fiable que el promedio genérico de una variedad. Si una receta contiene varias adiciones, calcule cada una por separado y sume sus valores estimados de IBU; así se conserva la distinta utilización asociada a cada tiempo de hervor. Mantenga una definición de volumen uniforme al comparar versiones, sobre todo si un registro usa volumen de caldera y otro volumen envasado. El estimador toma literalmente el volumen facilitado y no corrige evaporación, turbios, pérdidas de trasiego ni fermentación. Es adecuado para verificaciones rápidas de formulación, contraste con software cervecero, ejemplos didácticos y flujos automatizados deterministas. Cada uso de la API cuesta $0.002. Los datos ausentes, no numéricos, infinitos o fuera de rango devuelven un error de entrada, en lugar de producir silenciosamente una cifra engañosa.
Qué puede hacer con ella
Planificar una adición de lúpulo
Estime el amargor de una carga medida de lúpulo antes de cerrar la receta del día de elaboración.
Comparar sustituciones de lúpulo
Compruebe cómo cambia el IBU normalizado al variar el porcentaje de alfa ácidos o el peso del lúpulo.
Auditar cálculos de recetas
Vuelva a calcular las adiciones con un método transparente y determinista al revisar notas o resultados de otro programa.
Preguntas frecuentes
¿Qué fórmula utiliza el estimador?
Utiliza la curva de Tinseth con una densidad fija de referencia de 1.050 y convierte después el aporte estimado de iso-alfa ácidos a miligramos por litro.
¿Por qué la densidad inicial no es un dato de entrada?
La capacidad está diseñada en torno a cuatro datos, así que normaliza la densidad en 1.050. Esto permite comparaciones deterministas, aunque puede diferir de un cálculo ajustado a la densidad real.
¿Puedo calcular varias adiciones de lúpulo?
Sí. Ejecute cada adición con su propio peso, porcentaje de alfa ácidos y tiempo de hervor, y después sume los valores de IBU obtenidos.
¿Estima el amargor del dry hopping?
No. El modelo de utilización cubre lúpulo hervido. El dry hopping y las adiciones en whirlpool necesitan supuestos de temperatura, duración y proceso ajenos a este contrato.
¿El IBU calculado equivale al amargor percibido?
No. El dulzor, la química del agua, el carácter del lúpulo, la fermentación y el envejecimiento influyen en la percepción; el resultado solo estima la concentración a partir de la receta.
¿Cuánto cuesta una solicitud API?
Cada solicitud API cuesta $0.002. El mismo cálculo determinista también puede ejecutarse en el navegador.
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/cook/beer-ibu-estimate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"hop_weight_g":28,"alpha_acid_percent":5.5,"boil_time_minutes":60,"volume_liters":20}'const res = await fetch("https://api.kit.forhosting.com/cook/beer-ibu-estimate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"hop_weight_g": 28,
"alpha_acid_percent": 5.5,
"boil_time_minutes": 60,
"volume_liters": 20
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/cook/beer-ibu-estimate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"hop_weight_g": 28,
"alpha_acid_percent": 5.5,
"boil_time_minutes": 60,
"volume_liters": 20
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/cook/beer-ibu-estimate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"hop_weight_g":28,"alpha_acid_percent":5.5,"boil_time_minutes":60,"volume_liters":20}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"hop_weight_g":28,"alpha_acid_percent":5.5,"boil_time_minutes":60,"volume_liters":20}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/cook/beer-ibu-estimate", 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
{
"hop_weight_g": 28,
"alpha_acid_percent": 5.5,
"boil_time_minutes": 60,
"volume_liters": 20
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "cook.beer_ibu_estimate",
"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.
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. |