Source: https://guthlabs.ai/docs/instruments/packing-weight-checker/

instrument / verified-clean

# Packing Weight Checker

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/packing-weight-checker/>)[02**Mechanism**Method and assumptions](<https://guthlabs.ai/docs/instruments/packing-weight-checker/mechanism/>)[03**Implementation**Binding and validation](<https://guthlabs.ai/docs/instruments/packing-weight-checker/implementation/>)[04**Qualification**Evidence and errata](<https://guthlabs.ai/docs/instruments/packing-weight-checker/qualification/>)

## Ledger state

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

**Area**: Everyday & Life

**Tranche**: tranche-4

**Evidence ID**: t4-187

**Ledger rows**: 1

No ledger note is attached.

## Review findings

The arithmetic formulas are straightforward, but the specification is ambiguous about per-bag grouping, multiple-limit mapping, and whether overage means signed difference or clamped excess. Keep the honest label: airline baggage limits vary and change; verify with the carrier before travel.

### Formula and scope findings

- total_weight = Σ(item weights) is correct only when all item weights use the same unit and belong to the same bag or explicitly defined group.

- The specification requests pass/fail per bag, but it does not define the bag structure, how items are assigned to bags, or how multiple limits correspond to bags.

- overage = total_weight − limit is a signed difference. When under the limit it produces a negative value, whereas an 'overage amount' is usually defined as max(0, total_weight − limit). The product must label this as signed difference or change the formula.

- The pass/fail rule is not explicitly stated; it should be PASS when total_weight <= limit and FAIL when total_weight > limit.

### Unit assumptions

- Every item weight and its applicable limit must use the same unit; no automatic conversion is specified.

- The test vectors use the declared unit exactly, including grams rather than implicitly treating gram values as kilograms.

- Weights and limits are assumed to be numeric and nonnegative.

- A single bag is assumed in each vector because per-bag grouping and multiple-limit mapping are not defined.

- The signed overage formula is used as written; negative outputs mean unused capacity, not a positive overage amount.

## Boundary hardening

**BREAK_CLAIMED** · SELF_FLAGGED

The extreme-magnitude vector produces Infinity in JavaScript, and the negative-weight vector exposes an input-validation and sign-convention hazard. The checker should reject non-finite values, negative physical item weights, and mixed or unlabeled units before calculating totals.

## 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": {
    "bags": [
      {
        "id": "bag_1",
        "items": [
          {
            "name": "clothes",
            "weight": 2.4
          },
          {
            "name": "shoes",
            "weight": 1.8
          },
          {
            "name": "toiletries",
            "weight": 3.1
          }
        ],
        "limit": 8
      }
    ],
    "unit": "kg"
  },
  "expected_outputs": {
    "total_weight": 7.3,
    "pass_fail_per_bag": {
      "bag_1": "PASS"
    },
    "overage": -0.7
  },
  "working": "total_weight = 2.4 + 1.8 + 3.1 = 4.2 + 3.1 = 7.3 kg. overage = 7.3 − 8.0 = −0.7 kg. Since 7.3 <= 8.0, bag_1 = PASS."
}
````

## 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-tranche4/tranche4-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
