Source: https://guthlabs.ai/docs/instruments/margin-vs-markup-converter/mechanism/

instrument mechanism / verified-clean

# Margin vs Markup Converter mechanism

The inspectable method record for Margin vs Markup Converter, kept separate from implementation and qualification.

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

## Model scope

The core formulas pass standard mathematical verification, but the instrument needs explicit inverse formulas, input-selection rules, percentage representation, and domain validation before release. 'Price suggestion' should be labeled as a calculated price, not individualized pricing or financial advice; the existing educational-only label is appropriate.

- The stated forward formulas are standard and correct: margin=(price-cost)/price and markup=(price-cost)/cost.

- The specification does not provide the inverse formulas needed for bidirectional conversion. Required inverses include: price=cost/(1-margin), markup=margin/(1-margin), price=cost*(1+markup), and cost=price/(1+markup).

- The output description 'the missing values, price suggestion' is ambiguous about which inputs are optional and which values must be returned.

## Units and conventions

- Cost and price must use the same currency and unit basis, such as both USD per item; mixing total cost with per-unit price is invalid.

- The test vectors interpret margin_percent and markup_percent as percentage points, so 20 means 20% and is converted to 0.20 before calculation.

- The formulas require price != 0 for margin and cost != 0 for markup.

- For ordinary positive cost and price, margin is below 100%; margin=100% causes price=cost/(1-margin) to divide by zero.

- Markup and margin are dimensionless ratios, reported as percentages only for display.

## Inspectable vector

One of 4 source-bound review vectors:

````
{
  "inputs": {
    "cost": 80,
    "price": 100,
    "currency": "USD",
    "basis": "per item"
  },
  "expected_outputs": {
    "margin_percent": 20,
    "markup_percent": 25
  },
  "working": "margin=(price-cost)/price=(100-80)/100=20/100=0.20=20%. markup=(price-cost)/cost=(100-80)/80=20/80=0.25=25%."
}
````

## Failure boundary

**BREAK_CLAIMED** · SELF_FLAGGED

A zero cost makes markup undefined, and an unlabelled margin value such as 50 is ambiguous between 50% and decimal 50. The converter should reject zero denominators and enforce explicit percentage units.

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/margin-vs-markup-converter/>)[03**Implementation**](<https://guthlabs.ai/docs/instruments/margin-vs-markup-converter/implementation/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/margin-vs-markup-converter/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-tranche4/tranche4-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
