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.
The five places you set cost
Section titled “The five places you set cost”| Where | What you set |
|---|---|
| Entity Cost | An Initial Cost stamped on each entity at creation, and a Waiting Cost per hour of waiting |
| Activity Cost | A Per-Entity Cost on completion, a Processing Cost per minute, and the activity’s VA / NVA / RNVA classification |
| Resource Cost | An Hourly or Busy / Idle rate, a Cost Per Use, and an Overtime Multiplier |
| Queue Cost | A Cost Per Unit charged as each entity leaves the queue |
| Cost on a route | A 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.
How a charge is classified
Section titled “How a charge is classified”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:
| Charge | Bucket |
|---|---|
| Activity Processing Cost | The activity’s own classification |
| Resource hourly cost and cost per use | The classification of the activity that is holding the resource |
| Route Cost Per Move | The route’s own classification |
| Queue Cost Per Unit | Always non-value-added |
| Entity Waiting Cost | Always non-value-added |
| Activity Per-Entity Cost | Always value-added |
| Entity Initial Cost, inventory unit cost | No bucket, total only |
| Resource idle and overtime cost | No 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.
What the classification also does
Section titled “What the classification also does”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.
Where cost shows up
Section titled “Where cost shows up”
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.
Things that catch people out
Section titled “Things that catch people out”- 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.

