Source: https://guthlabs.ai/docs/instruments/eoq-inventory-reorder-calculator/

instrument / verified-with-binding-errata

# EOQ / Inventory Reorder Calculator

The current ledger marks this instrument verified with errata that must be applied at binding time.

Status: **VERIFIED_WITH_ERRATA**Lifecycle: **verified-with-binding-errata**

## Inspectable records

[01**Overview**Purpose and lifecycle](<https://guthlabs.ai/docs/instruments/eoq-inventory-reorder-calculator/>)[02**Mechanism**Method and assumptions](<https://guthlabs.ai/docs/instruments/eoq-inventory-reorder-calculator/mechanism/>)[03**Implementation**Binding and validation](<https://guthlabs.ai/docs/instruments/eoq-inventory-reorder-calculator/implementation/>)[04**Qualification**Evidence and errata](<https://guthlabs.ai/docs/instruments/eoq-inventory-reorder-calculator/qualification/>)

## Ledger state

The current ledger marks this instrument verified with errata that must be applied at binding time.

**Area**: Finance, Economics & Business (educational only — never individualized investment, tax, or legal advice)

**Tranche**: tranche-5

**Evidence ID**: t5-063

**Ledger rows**: 1

No ledger note is attached.

## Review findings

The EOQ and reorder-point formulas are standard under classical inventory assumptions, but the specification is incomplete for its stated outputs. Define daily demand explicitly, define the total-cost formula and inclusions, specify the 365/360/business-day convention, and add validation for zero or negative inputs before labeling the instrument fully verified.

### Formula and scope findings

- EOQ=√(2DS/H) is the standard classical EOQ formula when D is annual unit demand, S is ordering cost per order, and H is annual holding cost per unit; those unit assumptions must be enforced.

- ReorderPoint=daily_demand*lead_time_days+safety_stock is standard, but daily_demand is not an explicit input or defined as D/365 in the specification.

- The specification lists orders/year and total cost as outputs but supplies no formulas for them. A standard assumption is orders_per_year=D/EOQ and relevant_annual_total_cost=(D/EOQ)*S+(EOQ/2)*H, excluding purchase cost.

- The total-cost definition is ambiguous: it does not state whether purchase cost, shortage cost, safety-stock holding cost, or other inventory costs are included.

### Unit assumptions

- D is annual demand in units/year.

- S is ordering cost in currency/order.

- H is annual holding cost in currency/unit/year.

- EOQ is reported in units.

- lead_time_days is measured in calendar days, and daily demand is assumed to be D/365 units/day.

- safety_stock is measured in units.

## Boundary hardening

**BREAK_CLAIMED** · SELF_FLAGGED

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.

## Errata and corrections

### Tranche errata

**annual_relevant_total_cost** · vector 1

1800

1200

working writes 600+600=1800; her own v2 formula is correct

## Inspectable example

4 review vectors are recorded. One source-bound sample is shown below.

````
{
  "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."
}
````

## Related workflows

[Startup Unit Economicsops](<https://guthlabs.ai/docs/instrument-workflows/startup-econ/>)

## Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

- `VERIFIED_LEDGER.json · VERIFIED_WITH_ERRATA`

- `evidence-tranche5/tranche5-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
