Source: https://guthlabs.ai/docs/instruments/currency-converter-offline-snapshot/mechanism/

instrument mechanism / verified-clean

# Currency Converter (Offline Snapshot) mechanism

The inspectable method record for Currency Converter (Offline Snapshot), kept separate from implementation and qualification.

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

## Model scope

The arithmetic method is standard once the quote convention is fixed, but the specification does not provide the actual bundled table or a concrete build-time snapshot date. The verdict is NEEDS_REVIEW until the implementation documents its base currency, exact table values and source/date, supported currencies, validation behavior, and rounding policy.

- The formula description is underspecified: with rates quoted as units of each currency per EUR, the standard cross-rate formula is converted_amount = amount × (rate_to / rate_from).

- The bundled snapshot table itself, its base currency, quote convention, and supported currency codes are not supplied, so the actual implementation cannot be verified from the specification alone.

- Rounding behavior is unspecified, including decimal precision, minor-unit rules, and whether intermediate calculations retain full precision.

- The specification does not define behavior for unsupported currencies, malformed currency codes, negative amounts, or conversion from a currency to itself.

## Units and conventions

- Each table rate is quoted as currency units per 1 EUR; EUR has rate 1.000000.

- Amounts are monetary amounts denominated in the input currency, and the result is denominated in the output currency.

- The calculation uses amount × rate_to / rate_from, with no fees, spread, commission, or tax.

- Test outputs show mathematical precision; a production display may round according to the destination currency's minor-unit convention, which must be specified.

- The displayed date is the snapshot date, not the time at which the offline conversion is performed.

## Inspectable vector

One of 4 source-bound review vectors:

````
{
  "inputs": {
    "amount": 1,
    "from_currency": "EUR",
    "to_currency": "DEM",
    "snapshot_date": "2025-01-15"
  },
  "expected_outputs": {
    "converted_amount": 1.95583,
    "notice": "Rates as of 2025-01-15; may be stale."
  },
  "reference_data": {
    "rate_rows": [
      {
        "currency": "EUR",
        "units_per_EUR": 1,
        "source_convention": "European Commission/ECB irrevocable euro conversion-rate table"
      },
      {
        "currency": "DEM",
        "units_per_EUR": 1.95583,
        "source_convention": "European Commission/ECB irrevocable euro conversion-rate table"
      }
    ],
    "quote_convention": "units of currency per 1 EUR"
  },
  "working": "EUR rate = 1.00000 units/EUR. DEM rate = 1.95583 units/EUR. Converted amount = 1 EUR × (1.95583 / 1.00000) = 1.95583 DEM. This lands exactly on the official fixed EUR-to-German-mark conversion entry."
}
````

## Failure boundary

**BREAK_CLAIMED** · SELF_FLAGGED

The specification does not provide the bundled currency-rate table, its date, supported currency codes, missing-rate behavior, or sign convention. Consequently, ordinary cross-currency conversions cannot be numerically verified from this specification, and unsupported currencies can produce undefined lookup results unless explicitly rejected.

## Other records

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