# ItemValuation

## Description

ItemValuation tracks the aggregate inventory value for a specific item under a specific valuation policy. It maintains the total quantity, total value, and a computed cost per unit (totalValue / totalQuantity). Item valuations are updated internally when stock movements are executed.

Internal transfers do not change item-level valuation since stock remains within the same inventory system. Valuation changes emit events for downstream consumption by accounting and reporting modules.

## Domain Model Definitions

### Model type

Standard

### Command Definitions

- Item valuations are updated internally by stock movement execution

### Query Definitions

- [getItemValuation](../queries/GetItemValuation.md) - Retrieve the valuation for a specific item under a specific policy
- [listItemValuations](../queries/ListItemValuations.md) - List item valuations with optional filters

### Models

- ItemValuation

### Invariants

- Unique per item-valuationPolicy pair
- Cost per unit = totalValue / totalQuantity
- Internal transfers do not change item-level valuation
- Valuation changes emit events for downstream consumption

### Relationships

- **References Item**: Each item valuation belongs to an Item from the item-management module
- **References ValuationPolicy**: Each item valuation is associated with a valuation policy
