Source: https://guthlabs.ai/docs/instruments/tip-bill-split-calculator/

instrument / verified-clean

# Tip & Bill Split 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/tip-bill-split-calculator/>)[02**Mechanism**Method and assumptions](<https://guthlabs.ai/docs/instruments/tip-bill-split-calculator/mechanism/>)[03**Implementation**Binding and validation](<https://guthlabs.ai/docs/instruments/tip-bill-split-calculator/implementation/>)[04**Qualification**Evidence and errata](<https://guthlabs.ai/docs/instruments/tip-bill-split-calculator/qualification/>)

## Ledger state

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

**Area**: Everyday & Life

**Tranche**: tranche-5

**Evidence ID**: t5-072

**Ledger rows**: 1

No ledger note is attached.

## Review findings

The core arithmetic is correct for an equal split with a positive integer number of people and a tip percentage converted from percentage points to a fraction. The instrument needs explicit input semantics, validation constraints, currency-rounding behavior, and a defined itemized-share mode before it can receive PASS.

### Formula and scope findings

- The formulas are standard for an equal split when tip% is represented as a fraction, but the spec does not define whether tip% input is entered as 20 or 0.20.

- The optional itemized shares input has no defined formula or behavior; the listed per-person formula only supports an equal split.

- Currency rounding rules are unspecified, especially when total/num_people produces fractional cents.

### Unit assumptions

- bill amount, tip amount, and total use the same currency and monetary unit.

- tip% is assumed to be percentage points converted to a fraction before multiplication: 20% = 0.20.

- num_people is a dimensionless positive integer.

- Test-vector outputs show unrounded arithmetic values unless otherwise stated; a production currency display may require rounding to the smallest currency unit.

## Boundary hardening

**BREAK_CLAIMED** · SELF_FLAGGED

The calculator has an unhandled undefined-result trap when number_of_people is zero: per_person requires division by zero. It should reject that input. The tip-percent convention is also ambiguous unless the interface explicitly states whether 20 means 20% or a decimal rate of 20.

## 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": {
    "bill": 84.5,
    "tip_percent": 20,
    "num_people": 4,
    "tip_percent_interpretation": "20 percentage points = 0.20"
  },
  "expected_outputs": {
    "tip_amount": 16.9,
    "total": 101.4,
    "per_person": 25.35
  },
  "working": "tip = 84.50 × 0.20 = 16.90; total = 84.50 + 16.90 = 101.40; per_person = 101.40 ÷ 4 = 25.35."
}
````

## 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`
