初期比重と最終比重から自家醸造のABVを推定
ビール、シードル、ミードなどの自家醸造酒について、比重計または補正済み屈折計による2つの比重値からアルコール度数を推定します。発酵前に測った初期比重と、発酵後に測った最終比重をご入力ください。一般的な醸造近似式に従い、比重差へ131.25を掛けてABVを算出します。比重の低下量も表示するため、根拠の分からない数値を受け取るのではなく、入力値と計算内容をご確認いただけます。
無料で実行
開始時と終了時を表す値を測定してください
初期比重は一般にOGと略され、発酵開始前の麦汁や果汁の比重を示します。最終比重、すなわちFGは、酵母が発酵可能な糖を消費し、仕込みが終了点に達した後の値です。有用な推定値を得るには、比重計の校正温度で両方の試料を測るか、あらかじめ温度補正を行ってください。気泡を除き、泡で比重計が持ち上がらないようにし、メニスカスの適切な位置を読み取ります。発酵開始後に屈折計を使う場合は、入力前にアルコールの影響を補正してください。未補正の発酵後Brix値を比重計の比重値として扱うことはできません。通常は小数点以下3桁まで記録します。わずか数ポイントの差でも結果が変わるためです。レシピや工程上必要な場合は、別々の日の値が安定していることを確かめ、発酵終了を判断してください。本計算は度数の推定であり、仕込みの安全性や瓶詰め可能時期を判定するものではありません。
標準的なABV近似式をご理解ください
計算式はABV (%) = (初期比重 - 最終比重) x 131.25です。たとえば初期比重1.052、最終比重1.012の場合、比重差は0.040となり、推定アルコール度数は5.25パーセントです。係数131.25は通常の醸造範囲で広く使われる実用的な近似値であり、検査機関による分析ではありません。発酵では液体中の複数成分が変化し、測定器には許容誤差があり、試料温度も影響します。また、高アルコールの飲料ほど単純な関係から外れる場合があるため、実測値とは異なることがあります。本計算では入力値と比重差を小数点以下6桁まで保持し、推定パーセントを小数点以下2桁に丸めて安定した結果を返します。最終比重が初期比重を上回る場合、この方法が想定する比重低下ではないため、負の度数を返さず入力エラーとして扱います。
醸造記録やレシピ比較にご活用ください
比重に基づくABV推定は、一貫した醸造記録の一部として使うと特に有用です。初期値とともに醸造日、測定器、試料温度、適用した補正をご記録ください。代表性のある最終値だけを追加し、推定ABVを仕込み量、発酵度のメモ、試飲所見と一緒に保存します。各仕込みで同じ測定手順を用いれば、式が近似であっても比較の意味が高まります。想定値と実測の比重低下を比べることで、酵母の働き、糖化工程の発酵性、材料変更の影響を検討できます。法定表示、税務、販売資料、厳密な品質保証に数値が必要な醸造所や上級者の方は、この推定だけに依存せず、認可された測定法と地域の規則に従ってください。ブラウザー計算機は随時の確認に便利です。APIは1回$0.002で、同じ決定論的計算を醸造記録、表計算、製造工程へ組み込めます。
活用例
完成したビールの度数を推定
醸造日のOGと安定したFGから、仕込み記録用のABVをすばやく推定できます。
レシピの試作結果を比較
酵母、糖化、材料を変更した各仕込みについて、同じ方法で測った値から推定度数を比較できます。
醸造記録を自動化
醸造ソフトや表計算から決定論的APIを呼び出し、返された比重差とABVを保存できます。
よくある質問
どの計算式を使いますか?
一般的な近似式ABV (%) = (初期比重 - 最終比重) x 131.25を使用します。
最終比重が初期比重より高いとエラーになるのはなぜですか?
この近似式は発酵中の比重低下を前提とします。逆の値では負の結果となり、入力の取り違え、測定条件の違い、または式の対象外の工程が考えられます。
屈折計の値を入力できますか?
発酵後の値をアルコールの影響について変換または補正した場合に限ります。未補正の最終Brix値は最終比重と同じではありません。
法定表示に使える精度ですか?
実用的な推定であり、認証された検査値ではありません。表示、税務、規制対応には認可された方法と適用規則をご利用ください。
料金はいくらですか?
ブラウザーでは無料でご利用いただけます。APIは1回につき$0.002です。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/cook/home-brew-gravity-abv-estimate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"original_gravity":1.052,"final_gravity":1.012}'const res = await fetch("https://api.kit.forhosting.com/cook/home-brew-gravity-abv-estimate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"original_gravity": 1.052,
"final_gravity": 1.012
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/cook/home-brew-gravity-abv-estimate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"original_gravity": 1.052,
"final_gravity": 1.012
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/cook/home-brew-gravity-abv-estimate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"original_gravity":1.052,"final_gravity":1.012}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"original_gravity":1.052,"final_gravity":1.012}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/cook/home-brew-gravity-abv-estimate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"original_gravity": 1.052,
"final_gravity": 1.012
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "cook.home_brew_gravity_abv_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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |