Page actions
instrument mechanism / verified-clean
Margin vs Markup Converter mechanism
The inspectable method record for Margin vs Markup Converter, kept separate from implementation and qualification.
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
Sources and evidence
These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.
VERIFIED_LEDGER.jsonevidence-tranche4/tranche4-results.jsonBOUNDARY_HAZARD_CATALOG.json