Page actions
instrument implementation / implementation-contract
EOQ / Inventory Reorder Calculator implementation
A source-bound implementation contract for EOQ / Inventory Reorder Calculator; deployment and executable qualification remain separate.
Binding contract
This record describes what an executable surface must bind and validate. It does not claim that a public calculator, package, or production route is deployed.
- Record owner
- Guth Instruments
- Lifecycle
- verified-with-binding-errata
- Evidence ID
- t5-063
- Effect
- Computation or source lookup only
Input and validation requirements
The calculator should reject H=0 because EOQ divides by zero, and should reject negative annual demand because the EOQ square-root argument becomes negative. In addition, the unspecified annual-to-daily conversion convention changes the reorder point: 105 units using 365 days versus 106.388888888889 units using 360 days.
Required corrections
[
{
"vector": 1,
"field": "annual_relevant_total_cost",
"wrong": 1800,
"correct": 1200,
"cause": "working writes 600+600=1800; her own v2 formula is correct"
}
]Inspectable interface fixture
The sample below is evidence for interface and validation tests, not a production implementation.
{
"inputs": {
"annual_demand_D_units_per_year": 7200,
"order_cost_S_currency_per_order": 50,
"holding_cost_H_currency_per_unit_per_year": 2,
"lead_time_days": 14,
"safety_stock_units": 80
},
"expected_outputs": {
"eoq_units": 600,
"reorder_point_units": 356.1643836,
"orders_per_year": 12,
"annual_relevant_total_cost_currency": 1800
},
"working": "EOQ = √(2×7200×50/2) = √360000 = 600 units. Daily demand = 7200/365 = 19.7260274 units/day. Reorder point = 19.7260274×14+80 = 276.1643836+80 = 356.1643836 units. Orders/year = 7200/600 = 12. Ordering cost = 12×50 = 600. Holding cost = (600/2)×2 = 600. Total relevant annual cost = 600+600 = 1800."
}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.jsontranche errata record