Path Metrics

Path metrics are scalar values computed per path (user journey). They are used in three places:

  • Segment Overview — metrics are aggregated per segment and displayed as a heatmap.
  • Cluster Analysis — metrics are used as features for clustering, and separately as overview metrics for the resulting clusters.
  • Filter Paths — metrics are used as conditions to keep or drop entire paths.

Available metrics

MetricDescriptionmetric_args
lengthTotal number of events in the path.
durationTime in seconds between the first and last event.
active_daysNumber of distinct calendar days with at least one event. Optionally restricted to specific events.active_events: list[str] (optional)
event_countNumber of times the specified event(s) occurred.event: str or list[str]
has1 if the specified event(s) occurred at least once, 0 otherwise.events: str or list[str]
time_betweenTime in seconds between the first occurrences of two events. Returns null if either event is missing. Use path_start or path_end as anchors.event_from: str
event_to: str
first_event_dtUnix timestamp of the first event in the path.
matches1 if the path matches a sequence pattern, 0 otherwise. Events are separated by -> and .* matches any sequence. Example: login->.*->purchase.pattern: str
belongs_toChecks whether path events belong to a segment value. Mode any: at least one event has the value. all: all events have the value. event_share: at least a threshold share of events have the value. If multiple segment values are selected, a separate metric is created for each value.segment_name: str
segment_value: str or list[str]
mode: "any" | "all" | "event_share"
threshold: float (for event_share)

Metric config format

Metrics appear in two different config formats depending on where they are used:

  • Segment Overview (metrics_config) and Cluster Analysis (metrics_config) — each metric requires an agg field that defines how per-path values are aggregated across paths in a segment.
  • Cluster Analysis (features) — no agg field. The raw per-path values are used directly as clustering features.
  • Filter Paths — metrics appear inside a condition tree with comparison operators. See the Filter Paths condition format section below.
KeyRequiredDescription
metricyesMetric name from the table above.
metric_argsdependsAdditional arguments for the metric. Required for event_count, has, time_between, matches, and belongs_to.
aggyes (Segment Overview and Cluster Analysis metrics_config only)Aggregation function. See aggregations below.
metrics_config=[
    {"metric": "length", "agg": "mean"},
    {"metric": "duration", "agg": "median"},
    {"metric": "event_count", "metric_args": {"event": "purchase"}, "agg": "mean"},
    {"metric": "has", "metric_args": {"events": ["add_to_cart", "purchase"]}, "agg": "mean"},
    {"metric": "time_between", "metric_args": {"event_from": "path_start", "event_to": "purchase"}, "agg": "median"},
    {"metric": "matches", "metric_args": {"pattern": "login->.*->purchase"}, "agg": "mean"},
]

Aggregations

Aggregations apply to metrics_config in Segment Overview and Cluster Analysis. They are not used for clustering features or in Filter Paths conditions.

ValueDescription
meanMean value across all paths in the segment.
medianMedian value (50th percentile).
q55th percentile.
q2525th percentile.
q7575th percentile.
q9595th percentile.
complement_diffWasserstein distance between this segment's distribution and all other segments combined. Higher means more distinctive from the rest. Segment Overview only — requires a segment column to define what "the rest" means.

Filter Paths condition format

In Filter Paths, metrics are used inside a condition tree rather than a flat list. Each leaf node specifies a metric, a comparison operator, and a value:

# Single condition
{"op": ">", "metric": "length", "value": 5}

# Combine conditions
{
    "op": "and",
    "args": [
        {"op": ">", "metric": "length", "value": 3},
        {"op": "=", "metric": "has", "metric_args": {"events": "purchase"}, "value": True},
    ]
}

Supported operators: =, !=, >, <, >=, <=, in. Logical nodes use and, or, not with an args list.