Skip to content

Costs in a model

Cost in ProcessModel is authored in five places and read in one. Every charge lands on a single running total carried by the entity, and most of them are also sorted into a value classification, so the report can tell you not just what the process cost but how much of that cost bought something the customer wanted.

WhereWhat you set
Entity CostAn Initial Cost stamped on each entity at creation, and a Waiting Cost per hour of waiting
Activity CostA Per-Entity Cost on completion, a Processing Cost per minute, and the activity’s VA / NVA / RNVA classification
Resource CostAn Hourly or Busy / Idle rate, a Cost Per Use, and an Overtime Multiplier
Queue CostA Cost Per Unit charged as each entity leaves the queue
Cost on a routeA Cost Per Move charged each time an entity travels the route, with its own classification

An Inventory item’s Unit Cost is a sixth, smaller one: it charges the entity for the stock it takes.

Alongside the running total, ProcessModel keeps three buckets: value-added, non-value-added, and required non-value-added. Which bucket a charge lands in is decided for you, and the rule is not the same everywhere:

ChargeBucket
Activity Processing CostThe activity’s own classification
Resource hourly cost and cost per useThe classification of the activity that is holding the resource
Route Cost Per MoveThe route’s own classification
Queue Cost Per UnitAlways non-value-added
Entity Waiting CostAlways non-value-added
Activity Per-Entity CostAlways value-added
Entity Initial Cost, inventory unit costNo bucket, total only
Resource idle and overtime costNo bucket, reported against the resource

Two consequences are worth knowing before you read a report.

The three buckets do not add up to the total. Initial Cost and inventory unit cost go straight to the total with no classification, so a model that stamps a large value on each entity will always show a total larger than the three buckets combined. That is expected, not an error.

Setting an activity to NVA does not move its Per-Entity Cost. That flat charge is booked as value-added whatever the classification beside it says. If you need the classification to govern the charge, put the money on Processing Cost instead, which does follow it.

The VA / NVA / RNVA setting on an activity is not a label for the report. It selects the cost bucket above, it selects the matching time bucket, and it decides how any resource held at that activity is classified while it works. Changing it changes the numbers, so set it to describe the work honestly rather than to make a chart look better.

The Costs tab of the report

After a run, the Costs report tab rolls the whole thing up: cost per activity, cost per resource split into used, unused, break, downtime, and overtime, and cost per entity type. Impact Analysis uses the same buckets to rank where value is being lost. In action logic, Entity.TotalCost reads an entity’s running total at any moment.

  • Time in transit bills the waiting rate. An entity moving along a route accrues its Waiting Cost for the whole move, and that charge is non-value-added even when the route itself is marked value-added.
  • Waiting Cost has deliberate gaps. An entity blocked at an activity’s output, or parked because capacity is full, does not accrue it. Only genuine waiting is charged.
  • Overtime needs a shift. The Overtime Multiplier only ever applies to a resource that has a shift schedule, because overtime is measured against that schedule. A resource with no shift can never work overtime, so the multiplier never comes into play.
  • Costs can be negative. Entering revenue as a positive number and costs as negative turns the report total into a net figure for the run.