ビールの苦味を示すIBU計算ツール
このツールは、1回のホップ投入がもたらす国際苦味単位(IBU)の概算値を求めます。ホップ重量をグラム、アルファ酸含有率をパーセント、煮沸時間を分、最終的なビール量をリットルで入力してください。比重を1.050に固定したTinsethの利用率曲線を使うため、指定された4項目だけから常に同じ結果を得られます。レシピの設計や比較には便利ですが、完成したビールを分析機器で測定した値の代わりになるものではありません。
無料で実行
IBUの推定値が示すもの
国際苦味単位は、ビールに含まれる苦味成分であるイソアルファ酸のおおよその濃度を表し、通常は1リットル当たりのミリグラム相当として扱われます。この計算では、ホップの質量と表示されたアルファ酸含有率から出発し、煮沸中に苦味のもととなる成分がどれだけ溶解するかを推定します。煮沸が長いほど一般に多くのアルファ酸が抽出、異性化されますが、その増加は直線的ではなく、時間とともに緩やかになります。また、同じ抽出量でも仕上がり量が多ければ濃度は低くなるため、最終容量も重要です。したがって、ここで得られるIBUはレシピ上の計算値であり、味覚として感じる苦味を保証するものではありません。麦芽の甘味、水質、酵母、ホップ製品の形状、発酵時の損失、熟成、測定方法によって、知覚される苦味や分析値は変わります。レシピ同士の比較、投入量の調整、原料変更の方向性を確認するための一貫した基準としてご利用ください。商品仕様を確定する場合は、醸造記録や適切な分析結果でも確認してください。
計算方法と前提条件
計算にはTinsethのホップ利用率モデルを用います。時間係数は飽和曲線に従い、煮沸の前半では利用率が速く上昇し、その後は上限に徐々に近づきます。本来のTinseth式では、濃い麦汁ほど利用率が低下する傾向を考慮して麦汁比重も使います。この機能は指定された4つの入力だけを受け取る設計なので、基準比重を1.050に固定し、正常な結果にはその前提も表示します。ホップ重量、少数に直したアルファ酸比率、予測利用率、グラムからミリグラムへの換算値を掛け、容量のリットル数で割ります。IBUは小数第2位までに丸め、計算の透明性を保つため利用率もパーセントで返します。煮沸時間が0分の投入も有効で、この煮沸モデルでは苦味は0になります。ワールプール、ホップスタンド、ドライホッピングは、温度や工程について別の前提が必要なため対象外です。実際の麦汁比重が1.050から大きく離れる場合は、個別の醸造条件を完全に反映した予測ではなく、標準化された比較値として解釈してください。
レシピ設計での使い方
1回分の投入について、正確なホップ重量、そのロットの包装に記載されたアルファ酸含有率、予定する煮沸時間、苦味成分が分散するビール容量を入力してください。アルファ酸含有率は品種だけでなく、収穫年、保管状態、包装によっても変わるため、品種の一般的な平均値よりロット固有の表示値が適しています。複数回に分けて投入するレシピでは、煮沸時間ごとの利用率の違いを保つため、各投入を個別に計算してIBU推定値を合計してください。レシピの版を比較する際は、一方がケトル内容量、もう一方が瓶詰め量というように基準が混ざらないよう、容量の定義を統一します。この計算は入力された容量をそのまま使用し、蒸発、トルーブ、移送、発酵による損失は補正しません。配合の簡易確認、醸造ソフトとの照合、学習用の例、再現可能な自動処理に適しています。APIの利用料金は1リクエスト当たり$0.002です。未入力、数値以外、無限値、許容範囲外の値には入力エラーを返し、誤解を招く数値を黙って生成することはありません。
活用例
ホップ投入量を計画する
醸造日のレシピを確定する前に、計量したホップがもたらす苦味を見積もれます。
代替ホップを比較する
アルファ酸含有率やホップ重量を変えたとき、標準化されたIBU推定値がどう変化するか確認できます。
レシピ計算を点検する
醸造メモやソフトの出力を確認するとき、透明で決定論的な方法によって各投入を再計算できます。
よくある質問
どの計算式を使用していますか?
基準比重を1.050に固定したTinseth利用率曲線を使い、推定したイソアルファ酸量を1リットル当たりのミリグラムに換算します。
初期比重を入力しないのはなぜですか?
4項目だけで計算する設計のため、比重を1.050に標準化しています。比較結果は再現可能ですが、実比重で補正したレシピ計算とは異なる場合があります。
複数回のホップ投入を計算できますか?
はい。各投入について重量、アルファ酸含有率、煮沸時間を設定して計算し、返されたIBU推定値を合計してください。
ドライホッピングの苦味も推定できますか?
いいえ。この利用率モデルは煮沸したホップが対象です。ドライホッピングやワールプールには、温度、時間、工程について別の前提が必要です。
計算IBUと感じる苦味は同じですか?
同じではありません。甘味、水質、ホップの特徴、発酵、熟成が知覚に影響します。この結果はレシピから濃度を推定したものです。
APIリクエストの料金はいくらですか?
APIリクエスト1件の料金は$0.002です。同じ決定論的な計算をブラウザー内でも実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
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)リクエスト例
{
"hop_weight_g": 28,
"alpha_acid_percent": 5.5,
"boil_time_minutes": 60,
"volume_liters": 20
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "cook.beer_ibu_estimate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |