Source: https://guthlabs.ai/docs/instruments/travel-currency-tip-rounding-helper/mechanism/

instrument mechanism / verified-clean

# Travel Currency Tip/Rounding Helper mechanism

The inspectable method record for Travel Currency Tip/Rounding Helper, kept separate from implementation and qualification.

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

## Model scope

The arithmetic method is conditionally sound, but the instrument requires explicit policy choices for rounding target, rounding mode, tax/service-charge basis, norm ranges, effective dates, and table provenance. Keep the honest-label warning prominent and display the applicable country, region, service type, norm, and table date alongside every recommendation.

- tip = bill × local_norm% is correct only when local_norm is represented as a decimal fraction (for example, 20% = 0.20) and the bill is in the destination currency.

- The specification does not define whether rounding applies to the tip, the pre-tip total, or the final total; the test vectors assume final_total = bill + tip, followed by rounding of final_total.

- The specification does not define a rounding mode; the test vectors assume nearest denomination with half-up handling for exact half-denomination cases.

- A single local norm may be misleading because tipping norms can be ranges and vary by country, region, service type, tax treatment, service charge, cash/card payment, and venue quality.

- The lookup table needs an effective date and provenance for each norm; otherwise culturally variable or outdated guidance can be presented as a universal rule.

- The specification does not define whether the bill includes tax or an existing service charge. A service charge may reduce or eliminate an additional tip recommendation.

## Units and conventions

- bill, tip, and rounded_total are all denominated in the destination currency; no foreign-exchange conversion is performed.

- local_norm is stored as a decimal fraction: 0.20 means 20%.

- The rounded denomination is in the same currency as bill and is selected for practical cash/payment rounding.

- Rounding uses nearest denomination, with half-up behavior at an exact midpoint.

- Currency minor-unit validity is assumed: USD and EUR use cents, while the displayed JPY and INR examples use whole currency units.

## Inspectable vector

One of 4 source-bound review vectors:

````
{
  "inputs": {
    "bill": 85,
    "currency": "USD",
    "destination_country": "United States",
    "region": "general",
    "service_type": "restaurant",
    "rounding_denomination": 1
  },
  "expected_outputs": {
    "suggested_tip": 17,
    "unrounded_total": 102,
    "rounded_total": 102
  },
  "reference_data": {
    "country": "United States",
    "region": "general",
    "service_type": "restaurant",
    "local_norm_decimal": 0.2,
    "local_norm_percent": "20%",
    "rounding_denomination": 1,
    "rounding_rule": "nearest USD 1.00, half-up",
    "source_convention": "widely tabulated standard value (travel-guide consensus, 2024; culturally variable)"
  },
  "working": "local_norm = 20% = 0.20. tip = 85.00 × 0.20 = 17.00 USD. unrounded_total = 85.00 + 17.00 = 102.00 USD. rounding units = 102.00 ÷ 1.00 = 102 exactly. rounded_total = 102 × 1.00 = 102.00 USD. The 20% norm and the resulting 17.00 USD tip land exactly on the supplied table convention."
}
````

## Failure boundary

**BREAK_CLAIMED** · SELF_FLAGGED

The specification provides no concrete country/service lookup data or definitive rounding convention, so results are not uniquely reproducible. Checked arithmetic also fails on sufficiently large bills unless non-finite totals are rejected.

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/travel-currency-tip-rounding-helper/>)[03**Implementation**](<https://guthlabs.ai/docs/instruments/travel-currency-tip-rounding-helper/implementation/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/travel-currency-tip-rounding-helper/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-tranche7/tranche7-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
