Skip to content

Time units and transfer delays

The model's base time unit

simulation.time_unit (default "minutes") is the unit every KPI, the clock, the run length and the warm-up are expressed in, and the default unit of every new field. Set it once per model (see Units); a tool that changes it later must convert the run length and the warm-up, since every other field keeps its own unit.

Per-field units

Every duration-bearing field (a distribution's time_unit, a schedule's point durations, a failure's uptime/downtime, a link's transfer delay) carries its own unit: milliseconds, seconds, minutes, hours, days, weeks, months or years. This lets you enter a service time in seconds and an arrival schedule in hours inside a model whose base unit is minutes, without doing the arithmetic by hand. A file written before units existed (a missing unit or "base") opens with the unit it already meant filled in.

An arrival schedule's rate values convert with the inverse factor (a rate, not a duration); a capacity schedule's values (unit counts) never convert.

A link between two blocks may carry a delay (a duration spec, same shape as any block's distribution + dist_params + time_unit). When present, forward() samples it on the source block's own RNG and runs a transfer process: the entity stays live and "in transit" for that duration, and the transfer time counts toward its throughput time. With no delay declared, a link is still zero time, exactly as before -- adding transfer delays never changes an existing model that does not use them.

Use a transfer delay for simple travel time between two blocks. For a routing network, vehicle fleets or a conveyor belt, see Layout view, paths and vehicles (STATION/ ROUTE/TRANSPORT/CONVEYOR).

Playback

In a recorded run an entity in transit is placed along its link at the position its travel time gives, so a replay shows the delay.