Drunkenness Calculator

Blood Alcohol Content (BAC) Calculator

Male Female
lbs kg
1 drink = 12oz beer, 5oz wine, or 1.5oz shot

How the Drunkenness Calculator Works

This calculator uses the Widmark Formula, the gold standard for estimating Blood Alcohol Concentration (BAC). BAC represents the percentage of your blood that is concentrated with alcohol. For example, a BAC of 0.08% means your blood contains 0.08 grams of alcohol for every 100 milliliters of blood.

The Widmark Formula

The math behind your level of intoxication is based on several biological variables:

  • Alcohol Consumed: We assume a standard drink contains roughly 14 grams of pure ethanol.
  • Body Weight: Alcohol distributes itself in the water content of the body. A larger person generally has more water, diluting the alcohol more effectively.
  • Gender Constant (r): Men generally have a higher water percentage (r = 0.68) than women (r = 0.55), who typically have a higher body fat percentage.
  • Metabolism: The liver processes alcohol at a relatively constant rate, typically lowering BAC by about 0.015% per hour.

What is a "Standard Drink"?

In the United States, a standard drink is defined as any beverage containing approximately 0.6 fluid ounces or 14 grams of pure alcohol. This is roughly equivalent to:

  • 12 ounces of regular beer (about 5% alcohol).
  • 5 ounces of wine (about 12% alcohol).
  • 1.5 ounces of distilled spirits (about 40% alcohol or 80 proof).

Important Safety Disclaimer

NEVER drink and drive. This calculator provides a theoretical estimate for educational purposes only. Factors like metabolism, recent food intake, hydration, and medication can drastically alter your actual BAC. A digital calculator cannot replace a professional breathalyzer or blood test. If you have been drinking, please use a designated driver or ride-sharing service.

function calculateBAC() { var genderConstant = parseFloat(document.getElementById('gender').value); var weight = parseFloat(document.getElementById('weight').value); var weightUnit = document.getElementById('weightUnit').value; var drinks = parseFloat(document.getElementById('drinks').value); var hours = parseFloat(document.getElementById('timeElapsed').value); var resultDiv = document.getElementById('bacResult'); var valueDisplay = document.getElementById('bacValue'); var statusDisplay = document.getElementById('bacStatus'); var sobrietyDisplay = document.getElementById('sobrietyTime'); if (isNaN(weight) || isNaN(drinks) || isNaN(hours) || weight <= 0) { alert("Please enter valid numbers for weight, drinks, and time."); return; } // Convert weight to grams var weightInGrams; if (weightUnit === 'lbs') { weightInGrams = weight * 453.592; } else { weightInGrams = weight * 1000; } // Standard drink = 14 grams of alcohol var alcoholConsumedGrams = drinks * 14; // Widmark Formula: BAC = [Alcohol consumed (g) / (Body weight (g) * r)] * 100 var rawBAC = (alcoholConsumedGrams / (weightInGrams * genderConstant)) * 100; // Metabolism reduction: 0.015% per hour var reduction = hours * 0.015; var finalBAC = rawBAC – reduction; if (finalBAC < 0) finalBAC = 0; // Display results resultDiv.style.display = 'block'; valueDisplay.innerText = finalBAC.toFixed(3) + "%"; // Determine status and colors if (finalBAC === 0) { resultDiv.style.backgroundColor = "#e8f5e9"; statusDisplay.innerText = "Sober"; statusDisplay.style.color = "#2e7d32"; sobrietyDisplay.innerHTML = ""; } else if (finalBAC < 0.05) { resultDiv.style.backgroundColor = "#fff9c4"; statusDisplay.innerText = "Slight Impairment / Relaxed"; statusDisplay.style.color = "#f57f17"; } else if (finalBAC 0) { var hoursToSober = finalBAC / 0.015; sobrietyDisplay.innerHTML = "Estimated time until 0.00% BAC: " + hoursToSober.toFixed(1) + " hours"; } }

Leave a Comment