Inventory Cost Observables
Typed snapshot contracts for cost calculators. Each interface represents the data a cost calculator's ModelElementObserver.replicationEnded callback needs from one source ModelElement, captured at the moment that source's within-replication statistics are stable (immediately after the source's own replicationEnded() runs).
These are typed snapshots, not live views: every field value is sampled at construction time. Concrete data-class implementations live in CostObservablesData.
Warmup: every field is sourced from KSL's within-replication statistics (Counter.value, Response.average, TWResponse.weightedAverage), which reset at the warmup event. The snapshot fields therefore reflect only the post-warmup observation window, with no explicit time-arithmetic on the caller's part.
Inheritors
Properties
Time-weighted backlog units, sourced from the inventory's backlog policy. 0.0 when the inventory has no backlog policy attached.
Time-weighted on-order units.
Count of lost-sale events (subset of stockouts).
Count of replenishment orders placed (post-warmup).
Count of stockout events.
Sum of units ordered across all replenishment orders.
Sum of (remainingDemand − amountOnHand) across stockouts.