Skip to main content

Reference

Node types

Process Map uses four node types — Start, Task, Queue, and End.

Start

The Start node is the entry point for work items. You configure it with distributions that control how often items arrive and how much work each arrival brings.

warning

Every scenario must have exactly one Start node. The simulation will not run if you have zero or more than one.

FieldDescription
LabelName displayed on the canvas
Arrival frequency distributionHow often work items arrive (for example, exponential(rate=2) means on average 2 arrivals per time unit)
Arrival severity distributionOptional quantity per arrival

Task

A Task node represents a processing step. When a work item arrives, it spends time being processed — sampled from the service time distribution you configure — before moving to the next node.

FieldDescription
LabelName displayed on the canvas
DistributionService time distribution
ResourcesOptional resource assignments (limits concurrency)

Queue

A Queue node is a waiting room. Work items accumulate here until capacity is available downstream. Use it to model buffers and backlogs in your process.

FieldDescription
LabelName displayed on the canvas
CapacityMaximum items that can wait simultaneously (null = unlimited)
note

Queues do not consume service time — items pass through instantly once capacity becomes available.

End

The End node is the exit point for work items. Every scenario must have at least one End node.

warning

If your process has no End node the simulation cannot run. Add at least one End node to complete the flow.

Node indicators

Each node on the canvas shows visual indicators so you can see its configuration at a glance.

IndicatorMeaning
Distribution badgeShows the configured distribution type
Resource dotsColored dots for each assigned resource
Sim iconOpens the simulation config panel for this node
Info iconOpens the node info panel

Connection properties

PropertyTypeDescription
probabilityfloat (0–1)Weight used for probabilistic routing. Must sum to 1 across all outgoing connections from a node.
routing_conditionexpression stringBoolean expression for conditional routing. Evaluated against the unit's label values.
labelstringOptional display label shown on the connection line in the canvas.

Routing modes and expression syntax

When a node has multiple outgoing connections, you choose how work items are distributed:

ModeBehavior
ProbabilisticEach connection has a probability weight (0–1). Work items are routed randomly according to those weights. Weights must sum to 1.
ConditionalEach connection has a boolean expression. Conditions are evaluated in order; the first connection whose condition is true is taken.

A routing condition is a boolean expression evaluated against the unit's label values:

<expression> := <term>
| <expression> AND <term>
| <expression> OR <term>
<term> := <field> <operator> <value>
| ( <expression> )
<field> := label name (defined in the scenario's label set)
<operator> := < | <= | = | >= | > | <>
<value> := number | "string"

AND binds tighter than OR. Use parentheses to override precedence.

Supported operators:

OperatorMeaning
<Less than
<=Less than or equal to
=Equal to
>=Greater than or equal to
>Greater than
<>Not equal to

Examples:

ExpressionRoutes when
priority = "high"The unit's priority label equals "high"
score >= 80The unit's score label is 80 or above
score >= 80 AND region = "north"Both conditions are true
score < 50 OR escalated = "yes"Either condition is true

See Setting up conditional routing for how Router nodes evaluate these expressions, including default routes and validation.

Distributions

DistributionParametersExample use
constantvalueFixed processing time (e.g. always 5 min)
normalmean, stdNormally distributed service time
exponentialrateMemoryless arrivals (classic queuing)
uniformlow, highAny value equally likely in a range
poissonrateCount-based arrival process
lognormalmean, sigmaRight-skewed service times
gammashape, scaleFlexible positive-value distribution
weibullscale, shapeWear-out or reliability modeling
triangularlow, mode, highThree-point estimate

Output metrics

After each run, Pocketstats reports:

MetricDescription
Units completedTotal work items that reached an End node
ThroughputUnits completed per time unit
Avg cycle timeMean time from arrival to completion
Avg queue depthMean number of items waiting at each Queue node
Avg resource utilizationFraction of time each resource was in use

Resource properties

PropertyTypeDescription
NamestringDisplay name shown in the Manage Resources dialog and on canvas indicators.
CostnumberDollar amount per period (for example, 75 for $75/hour). Optional.
PeriodstringTime unit for the cost rate: hour, day, or minute. Required if cost is set.
ColorcolorColor used for the resource indicator dot on the canvas.
Unitsinteger ≥ 1Total pool size — how many units of this resource exist across the whole process. Default: 1.

Scenario properties

PropertyTypeDescription
idintegerAuto-assigned identifier
namestringDisplay name (up to 255 characters)
created_atdatetimeWhen the scenario was first saved
versionintegerOptimistic-lock counter; increments on every save
owneruserPersonal scenarios are owned by a single user
organizationorgOrg scenarios are visible to all org members
share_tokenUUIDPresent when sharing is enabled; null otherwise

Plan limits

FeatureFree (trial expired)Pro
Create scenariosUnlimited
Edit scenarios
Run simulationsUnlimited
View existing scenariosRead-only
Share scenarios
Organization scenariosRead-only

All new accounts include a 14-day Pro trial with full access — no credit card required.

Config file format

You can export and import scenarios as .conf text files. The format is human-readable and version-control friendly, making it easy to track changes, diff models, or script bulk edits. See Importing and exporting a scenario for the procedure.

The file is divided into up to five sections separated by ---:

SectionContents
NodesNode type and label for each node
DistributionsArrival and service time distributions
ConnectionsEdges and routing probabilities
ResourcesResource pool definitions
Resource allocationsWhich resources are assigned to which nodes

Comments start with # and can appear anywhere in the file.

Full example

# My process model

---
S:Intake
T:Review
T:Approval
Q:Buffer
E:Done

---
Intake ~ exponential(rate=2), constant(value=1)
Review ~ normal(mean=5, std=1)
Approval ~ lognormal(mean=2, sigma=0.5)

---
Intake -> Review
Review -> Buffer
Buffer -> Approval : 0.8
Buffer -> Done : 0.2
Approval -> Done

---
R:Analyst $50/hour #4a90d9
R:Manager $100/day

---
Analyst(1) -> Review
Manager(1) -> Approval

Nodes section

One node per line: <prefix>:<label>

PrefixType
S:Start
T:Task
Q:Queue
E:End

Distributions section

One distribution per line: <label> ~ <dist>

  • Task nodes: <label> ~ <distribution>
  • Start nodes: <label> ~ <frequency_dist>, <severity_dist>
  • Queue and End nodes have no distribution.

Distribution syntax: <name>(<param>=<value>, ...)

DistributionParameters
constantvalue
exponentialrate
normalmean, std
uniformlow, high
poissonmu
lognormalmean, sigma
gammashape, scale
weibullscale, shape
triangularlow, mode, high

Connections section

One connection per line: <from> -> <to> or <from> -> <to> : <probability>

Review -> Approval
Review -> Rejected : 0.1
note

If you omit the probability on a connection, it defaults to 1.0.

warning

When multiple connections leave the same node, their probabilities must sum to 1.0. An unbalanced routing probability will cause a validation error on import.

Resources section

One resource per line: R:<name> $<cost>/<period> #<hex-color>

Cost and color are optional.

R:Analyst $50/hour #4a90d9
R:Manager

Resource allocations section

One allocation per line: <resource_name>(<count>) -> <node_label>

Analyst(1) -> Review
Manager(2) -> Approval

Validation errors

If the .conf file contains errors, the import will fail with a message describing the problem — for example, an unknown distribution name or a connection that references a node that does not exist. Fix the reported line and re-import.

Sharing

Share links look like:

https://pocketstats.io/shared/<uuid>/

Each link is a unique UUID. Revoking and re-enabling sharing generates a new UUID, so old links stop working.

When someone opens a share link, they see a read-only version of the canvas. Viewers can:

  • Pan and zoom the canvas
  • Click any node or connection to inspect its configuration in the side panel
  • View node type, label, distribution parameters, and resource assignments
  • View connection routing mode and probability weights

Viewers cannot:

  • Edit nodes, connections, or any configuration
  • Run simulations
  • Export or duplicate the scenario
  • See other scenarios in your account

The toolbar and editing controls are hidden. The viewer sees only the canvas and a read-only configuration panel.

Sharing API

MethodEndpointAction
POST/api/scenarios/<id>/shareEnable sharing (returns share_token and share_url)
DELETE/api/scenarios/<id>/shareDisable sharing
GET/api/shared/<token>Read scenario data (public, no auth required)

Keyboard shortcuts

note

On macOS, replace Ctrl with Cmd for all shortcuts below.

KeyAction
VSelect / move tool
TPlace Task node
QPlace Queue node
SPlace Start node
EPlace End node
CConnect tool
IToggle info panel (requires a node to be selected)
MOpen Manage Resources modal
Delete / BackspaceDelete selected node or connection
Ctrl+ZUndo
Ctrl+Y / Ctrl+Shift+ZRedo
tip

Both Ctrl+Y and Ctrl+Shift+Z trigger redo on Windows and Linux. On macOS, use Cmd+Z to undo and Cmd+Shift+Z to redo.

Canvas interactions

ActionHow
Place nodeSelect tool from toolbar (or keyboard shortcut), click on canvas
Move nodeDrag in select mode
Connect nodesConnect tool → drag from source handle to target
SelectClick node; Ctrl+click for multi-select; drag-box for area select
DeleteDelete or Backspace with node or edge selected
Open info panelI with node selected, or click the info icon on the node
Open sim panelClick the simulation icon on a node
Fit viewToolbar fit button