Page actions
instrument mechanism / verified-clean
Tip & Bill Split Calculator mechanism
The inspectable method record for Tip & Bill Split Calculator, kept separate from implementation and qualification.
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.jsonevidence-tranche5/tranche5-results.jsonBOUNDARY_HAZARD_CATALOG.json