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

instrument mechanism / verified-clean

# Packing Weight Checker mechanism

The inspectable method record for Packing Weight Checker, kept separate from implementation and qualification.

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

## Model scope

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.

- 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.

## Units and conventions

- 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.

## Inspectable vector

One of 4 source-bound review vectors:

````
{
  "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."
}
````

## Failure boundary

**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.

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/packing-weight-checker/>)[03**Implementation**](<https://guthlabs.ai/docs/instruments/packing-weight-checker/implementation/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/packing-weight-checker/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`
