Skip to main content

Config format

Scenarios can be exported and imported as .conf text files. The format is human-readable and version-control friendly.

Overview

A .conf file is divided into sections, each preceded by ---. Each section contains a different part of the model.

Comments start with #.

# 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

If probabilities are omitted, they default to 1.0. When multiple connections leave the same node, probabilities should sum to 1.

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 a .conf file contains errors, the import will fail with a message describing the problem — for example, an unknown distribution name or a connection referencing a node that doesn't exist.