Home › Health › Blood Alcohol Content Calculator
Blood Alcohol Content Calculator
Estimates blood alcohol concentration from body weight, sex, number of standard drinks and hours since drinking started with the Widmark formula (Widmark 1932), reported in %, g/L and mg/100 mL together with the peak value and the hours until the estimate returns to zero.
When to use
You need a rough BAC estimate for a known number of drinks and elapsed time, the peak BAC before elimination, or how long until the estimate reaches zero.
Do not use when: You need to decide whether someone can drive or is legally intoxicated: the result is informational only, not medical or legal advice, and real BAC varies widely between people; to count drinks or grams of alcohol first, use standard-drinks.
Formula
peak_bac_percent = standard_drinks × grams_alcohol_per_drink / (r × weight_kg × 1000) × 100 with r = 0.68 (male) or 0.55 (female); bac_percent = max(0, peak_bac_percent − elimination_rate_percent_per_hour × hours_since_first_drink); bac_g_per_l = bac_percent × 10; bac_mg_per_100ml = bac_percent × 1000; hours_to_zero = bac_percent / elimination_rate_percent_per_hour
Widmark's formula assumes instantaneous absorption and constant (zero-order) elimination; food, drinking pace, body composition, medication and genetics change real BAC by ±0.02 % or more. Informational only, not medical or legal advice; never use it to decide whether to drive.
Inputs
| Parameter | Type | Unit | Required | Description |
|---|---|---|---|---|
weight_kg | number | kg | yes | Body weight in kilograms. Range: ≥ 20, ≤ 400 |
sex | enum: male | female | yes | Selects the Widmark distribution ratio r: 0.68 for men, 0.55 for women (average body-water fractions). | |
standard_drinks | number | yes | Number of standard drinks consumed since the first drink. Range: ≥ 0, ≤ 60 | |
grams_alcohol_per_drink | number | g | default 14 | Grams of pure ethanol in one standard drink: 14 g in the US (NIAAA), 10 g in Australia and much of Europe, 8 g for a UK unit. Range: ≥ 1, ≤ 50 |
hours_since_first_drink | number | h | yes | Time elapsed since drinking started. Range: ≥ 0, ≤ 48 |
elimination_rate_percent_per_hour | number | %/h | default 0.015 | BAC eliminated per hour (Widmark β). Typical adults eliminate 0.010–0.020 %/h; 0.015 is the usual average. Range: ≥ 0.008, ≤ 0.03 |
Outputs
| Output | Type | Unit | Description |
|---|---|---|---|
bac_percent | number | % | Blood alcohol concentration now, in grams per 100 mL of blood (% w/v), floored at 0. |
bac_g_per_l | number | g/L | Same value in grams per litre (‰), the unit used in most of continental Europe. |
bac_mg_per_100ml | number | mg/100 mL | Same value in milligrams per 100 mL, the unit used in the UK and Ireland. |
peak_bac_percent | number | % | Widmark BAC if all alcohol were absorbed at once, before any elimination. |
hours_to_zero | number | h | Time from now until the estimate reaches 0: bac_percent / elimination rate. |
interpretation | string | Typical-effects band for the estimated BAC (< 0.02, 0.02–0.05, 0.05–0.08, ≥ 0.08 %); legal driving limits vary by country. | |
warning | string | Fixed safety warning returned with every result. |
Example
80 kg male, 4 US drinks, 2 h: {"weight_kg":80,"sex":"male","standard_drinks":4,"grams_alcohol_per_drink":14,"hours_since_first_drink":2} → {"peak_bac_percent":0.103,"bac_percent":0.073,"bac_g_per_l":0.729,"bac_mg_per_100ml":72.9,"hours_to_zero":4.86}
60 kg female, 2 Australian drinks (10 g), 1 h: {"weight_kg":60,"sex":"female","standard_drinks":2,"grams_alcohol_per_drink":10,"hours_since_first_drink":1} → {"peak_bac_percent":0.061,"bac_percent":0.046,"hours_to_zero":3.04}
GET https://tttkmbb.com/api/v1/calculate/bac-widmark?weight_kg=80&sex=male&standard_drinks=4&grams_alcohol_per_drink=14&hours_since_first_drink=2
Machine access
- API:
GET https://tttkmbb.com/api/v1/calculate/bac-widmark(query parameters) orPOSTwith a JSON body{"inputs": {...}} - Schema: https://tttkmbb.com/api/v1/calculators/bac-widmark · Markdown: https://tttkmbb.com/health/bac-widmark.md · JSON definition: https://tttkmbb.com/health/bac-widmark.json
- MCP: server
https://tttkmbb.com/mcp, toolrun_calculator with calculator_id="bac-widmark" - OpenAPI operationId:
estimate_blood_alcohol_widmark - Freshness:
static. Authentication: none. Rate limit: fair use (see rate limits).
Sources
- Wikipedia – Blood alcohol content (Widmark formula) (reference)
- NIAAA – What Is a Standard Drink? (government)
FAQ
Why does the estimate differ from a breathalyser?
Widmark uses population-average water fractions and elimination rates and ignores absorption time and food. Individual results commonly deviate by ±0.02 % BAC or more, which is why it must not be used for driving decisions.
How do I convert between %, g/L and mg/100 mL?
0.05 % = 0.5 g/L (0.5 ‰) = 50 mg/100 mL. Multiply percent by 10 for g/L and by 1000 for mg/100 mL.
Which grams-per-drink value should I use?
14 g for a US standard drink (12 oz 5 % beer, 5 oz 12 % wine, 1.5 oz 40 % spirits), 10 g for Australian, WHO and most European standard drinks, 8 g for a UK unit. Use standard-drinks to convert a specific beverage.
Related calculators
- Standard Drinks Calculator — Convert a beverage's volume and ABV into standard drinks and grams of alcohol to enter here.