This tool contains command line utilities that perform
sample path analysis on data sets representing flow
processes provided in csv files and writes its output as
png files to the local filesystem.
Invoke it on the command line with
flow <command> <csv-file> [options]Analyze: Generates finite-window Little’s
Law charts from an CSV file containing id,
start_ts, end_ts, and optionally a
class column. It produces a full set of long
run samplepath flow-metrics charts and writes them under an
output directory.What it does:
flow analyze events.csv \
--completed \
--outlier-iqr 1.5 \
--lambda-pctl 99 \
--output-dir charts \
--scenario weekly_report \
--cleancsv (positional)
Path to the CSV. Should contain at least the columns
(id,start_ts,end_ts[, class])
–delimiter (default:
",")
Optional delimiter override
–start_column (default:
start_ts)
Name of start timestamp column
–end_column (default:
end_ts)
Name of end timestamp column
–date-format (default:
None)
Explicit datetime format string for parsing
Drop rows from the CSV before running the analysis.
Useful for isolating subprocesses in the main file. Use with
--scenario to save subprocess results.
–completed (default:
False)
Include only items with end_ts
–incomplete (default:
False)
Include only items without end_ts
–classes (default:
None)
Comma-separated list of class tags to include
Remove outliers to see whether the remaining process converges.
–outlier-hours (default:
None)
Drop items exceeding this many hours in sojourn
time
–outlier-pctl (default:
None)
Drop items above the given percentile of sojourn
times
–outlier-iqr (default:
None)
Drop items above Q3 + K·IQR (Tukey
fence)
–outlier-iqr-two-sided (default:
False)
Also drop items below Q1 − K·IQR when combined with
--outlier-iqr
Sometimes it helps to drop early points in the λ(T) chart so the remainder displays on a more meaningful scale.
–lambda-pctl (default:
None)
Clip Λ(T) to the upper percentile (e.g., use 99
to clarify charts)
–lambda-lower-pctl (default:
None)
Clip the lower bound as well
–lambda-warmup (default:
0.0)
Ignore the first H hours when computing Λ(T)
percentiles
–epsilon (default:
0.05)
Relative error threshold for convergence
–horizon-days (default:
28.0)
Ignore this many initial days when assessing
convergence
–output-dir (default:
charts)
Root directory where charts will be written
–scenario (default:
latest)
Subdirectory inside the output root
–save-input (default:
True)
Copy the input CSV into the output directory
–clean (default:
False)
Remove existing charts before writing new results
–with-event-marks (default:
False)
Show arrival/departure event markers on sample path charts.
When enabled, arrivals are shown as purple dots and
departures as green dots on the N(t) chart.
The input format is simple.
The csv requires three columns
Additionally you may pass any other columns. They are all ignored for now, except for a column called class which you can use to filter results by event/item type.
--start_column and
--end_column options.--date-format argument does this.Results and charts are saved to the output directory as follows:
See the CLI Documentation for the full list of command line options.
For input events.csv, output is organized
as:
<output-dir>/
└── events/
└── <scenario>/ # e.g., latest
├── input/ # input snapshots
├── core/ # core metrics & tables
├── convergence/ # limit estimates & diagnostics
├── convergence/panels/ # multi-panel figures
├── stability/panels/ # stability/variance panels
├── advanced/ # optional deep-dive charts
└── misc/ # ancillary artifacts--
A complete reference to the charts produced can be found in The Chart Reference.