Source: https://guthlabs.ai/docs/instruments/air-density-calculator/

instrument / verified-clean

# Air Density Calculator

The current ledger marks this instrument verified clean within the source-bound verification corpus.

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

## Inspectable records

[01**Overview**Purpose and lifecycle](<https://guthlabs.ai/docs/instruments/air-density-calculator/>)[02**Mechanism**Method and assumptions](<https://guthlabs.ai/docs/instruments/air-density-calculator/mechanism/>)[03**Implementation**Binding and validation](<https://guthlabs.ai/docs/instruments/air-density-calculator/implementation/>)[04**Qualification**Evidence and errata](<https://guthlabs.ai/docs/instruments/air-density-calculator/qualification/>)

## Ledger state

The current ledger marks this instrument verified clean within the source-bound verification corpus.

**Area**: Earth & Space (astronomy, orbital mechanics, meteorology, geology, geodesy, oceanography)

**Tranche**: tranche-5

**Evidence ID**: t5-164

**Ledger rows**: 1

No ledger note is attached.

## Review findings

The moist-air ideal-gas formula itself is correct, but the specification does not define how total pressure and relative humidity become Pd and Pv. The missing saturation-vapor-pressure formula is an exact ambiguity that prevents a unique implementation and requires review before approval.

### Formula and scope findings

- The stated formula is standard for moist-air density only when Pd is dry-air partial pressure and Pv is water-vapor partial pressure.

- The listed inputs are total pressure and relative humidity, but the required transformations are not specified: Pv = RH × saturation vapor pressure and Pd = P − Pv.

- No saturation vapor-pressure formula is provided, so the instrument is not uniquely defined from the supplied specification.

- Relative humidity must be represented as a fraction from 0 to 1, or explicitly converted from percent.

- The implementation must reject or constrain cases where Pv exceeds total pressure, since Pd would become negative.

### Unit assumptions

- Temperature is absolute temperature in kelvins for the ideal-gas formula; input temperatures in the vectors are given in degrees Celsius and converted using T(K) = T(°C) + 273.15.

- Total pressure is absolute pressure in pascals; 95 kPa is converted to 95000 Pa in the fourth vector.

- Relative humidity is a fraction, not a percentage, in the calculations.

- Rd = 287.05 J/(kg·K) for dry air and Rv = 461.495 J/(kg·K) for water vapor.

- For test-vector reproducibility, saturation vapor pressure uses the Tetens formula es = 611.2 × exp(17.67×Tc/(Tc+243.5)) Pa, with Tc in degrees Celsius. Values are rounded to the shown precision.

- Pv = RH × es and Pd = P − Pv; density is reported in kg/m³.

## Boundary hardening

**BREAK_CLAIMED** · SELF_FLAGGED

An input at exactly -273.15 C produces a zero-kelvin denominator and must be rejected rather than evaluated. The specification also omits the saturation-vapor-pressure formula and any ice/water branch convention, leaving a branch-selection hazard near 0 C.

## Errata and corrections

No applied erratum is attached to this unique-name record.

## Inspectable example

4 review vectors are recorded. One source-bound sample is shown below.

````
{
  "inputs": {
    "temperature_c": 15,
    "pressure_pa": 101325,
    "relative_humidity": 0.5
  },
  "expected_outputs": {
    "air_density_kg_m3": 1.2211
  },
  "working": "T = 15 + 273.15 = 288.15 K. Using Tetens, es ≈ 1705 Pa. Pv = 0.5 × 1705 = 852.5 Pa. Pd = 101325 − 852.5 = 100472.5 Pa. Rd×T = 287.05×288.15 = 82713.4575. Rv×T = 461.495×288.15 = 132979.78425. Dry contribution = 100472.5/82713.4575 ≈ 1.214706. Vapor contribution = 852.5/132979.78425 ≈ 0.006411. Density = 1.214706 + 0.006411 = 1.221117 ≈ 1.2211 kg/m³."
}
````

## Related workflows

No source-defined multi-instrument workflow membership is recorded.

## Sources and evidence

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

- `VERIFIED_LEDGER.json · VERIFIED_CLEAN`

- `evidence-tranche5/tranche5-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
