Source: https://guthlabs.ai/docs/instruments/blood-alcohol-concentration-widmark-estimate/mechanism/

instrument mechanism / verified-clean

# Blood Alcohol Concentration (Widmark estimate) mechanism

The inspectable method record for Blood Alcohol Concentration (Widmark estimate), kept separate from implementation and qualification.

Status: **VERIFIED_CLEAN**Lifecycle: **verified-clean**

## Model scope

The existing honest-label text is directionally appropriate, but it should explicitly state that 'time to sober' is not a reliable time-to-drive, legal-limit, or fitness-to-operate estimate. Clarify whether BAC is fractional or percent, define β and its units, define standard-drink grams, specify weight units, provide the time-to-sober formula, and enforce positive weight/r and nonnegative reported BAC.

- The formula's first term, Alcohol_g/(Weight_g×r), is a unitless fraction. For an output labeled BAC %, it must be multiplied by 100, assuming BAC is expressed as percent g/dL (for example, 0.08%).

- β is not unit-specified. After converting the Widmark fraction to percent, β must be in BAC percentage points per hour; alternatively, if β is a fraction per hour, the entire formula must remain in fractional units.

- No formula is provided for the claimed time-to-sober output. A conventional estimate would be max(0, current_BAC_percent/β_percent_per_hour), but this definition and the zero/negative handling are absent.

- The fixed r values of 0.68 for males and 0.55 for females are only rough reference values, not universal physiological constants; the sex categories and applicable r range are unspecified.

- The formula does not constrain BAC to be nonnegative, so elapsed time can produce physically nonsensical negative BAC values.

- The meaning of a 'drink' is unspecified; drinks must be converted to grams of pure ethanol before applying the formula.

## Units and conventions

- Weight is converted to grams before calculation; 1 kg = 1000 g and, in the unit-conversion test, 1 lb = 453.59237 g.

- Alcohol_g is grams of pure ethanol, not beverage volume or beverage mass.

- The reported BAC is percent by volume in the usual educational Widmark convention, numerically equivalent to g/dL; therefore the Widmark fraction is multiplied by 100.

- β is assumed to be 0.015 BAC percentage points per hour for the test vectors.

- r is dimensionless, with r=0.68 for the supplied male examples and r=0.55 for the supplied female example.

- Time to sober is interpreted as time for the clamped estimated BAC to reach zero: max(0, estimated_BAC_percent/β).

## Inspectable vector

One of 4 source-bound review vectors:

````
{
  "inputs": {
    "alcohol_g": 56,
    "weight_g": 80000,
    "sex": "M",
    "r": 0.68,
    "elapsed_hours": 2,
    "beta_percent_points_per_hour": 0.015
  },
  "expected_outputs": {
    "raw_formula_BAC_percent": 0.07294117647,
    "estimated_BAC_percent": 0.07294117647,
    "time_to_sober_hours": 4.8627451
  },
  "working": "Denominator = 80000 × 0.68 = 54400 g. Widmark fraction = 56 ÷ 54400 = 0.0010294117647. Convert to percent: 0.0010294117647 × 100 = 0.10294117647%. Metabolism = 0.015 × 2 = 0.03 percentage points. Estimated BAC = 0.10294117647 − 0.03 = 0.07294117647%. Time to sober = 0.07294117647 ÷ 0.015 = 4.8627451 hours."
}
````

## Failure boundary

**BREAK_CLAIMED** · SELF_FLAGGED

The specification does not define beta, does not state whether the formula's BAC is a fraction or percentage, does not define standard-drink gram content, and permits a negative raw BAC at the zero-alcohol boundary. It also has an undefined result at zero body weight.

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/blood-alcohol-concentration-widmark-estimate/>)[03**Implementation**](<https://guthlabs.ai/docs/instruments/blood-alcohol-concentration-widmark-estimate/implementation/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/blood-alcohol-concentration-widmark-estimate/qualification/>)

## Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

- `VERIFIED_LEDGER.json`

- `evidence-tranche4/tranche4-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
