Guth
NewsDocs
Page actions
View as Markdown ↗
Explore MCP tools ↗

instrument mechanism / verified-clean

Tip & Bill Split Calculator mechanism

The inspectable method record for Tip & Bill Split Calculator, kept separate from implementation and qualification.

Status: VERIFIED_CLEANLifecycle: verified-clean

Model scope

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.

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

Units and conventions

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

Inspectable vector

One of 4 source-bound review vectors:

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

Failure boundary

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.

Other records

Sources and evidence

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

  • VERIFIED_LEDGER.json
  • evidence-tranche5/tranche5-results.json
  • BOUNDARY_HAZARD_CATALOG.json