Page actions
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.
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
Sources and evidence
These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.
VERIFIED_LEDGER.jsonevidence-tranche4/tranche4-results.jsonBOUNDARY_HAZARD_CATALOG.json