Analyzing operational data...
Scanning traces for automation opportunities
Operational Intelligence
Inbound → operator actions → system events → resolution
orders · operators · last 30 days
Hover any metric for the ClickHouse query and Celonis cost equivalent
i
Orders Tracked
Total unique order workflows observed in the trace data.
Count of unique trace IDs where an order was created in the last 30 days.
Powered by:
Total unique order workflows observed in the trace data.
Count of unique trace IDs where an order was created in the last 30 days.
Powered by:
uniqExact(TraceId)SELECT uniqExact(TraceId)
FROM otel_traces
WHERE ServiceName='clickstack-portal'
AND SpanName='order.created'
AND Timestamp >= now()-INTERVAL 30 DAY
Celonis equivalent: Process event count — included in $100K+/yr license
Orders Tracked
--
order lifecycles
i
Operators Observed
Distinct human operators who performed at least one action.
Unique operators who touched at least one trace in the last 30 days.
Powered by:
Distinct human operators who performed at least one action.
Unique operators who touched at least one trace in the last 30 days.
Powered by:
uniqExact()SELECT uniqExact(SpanAttributes['operator.id'])
FROM otel_traces
WHERE ServiceName='clickstack-portal'
AND SpanAttributes['operator.id'] != ''
AND Timestamp >= now()-INTERVAL 30 DAY
Celonis equivalent: Resource analysis — included in $100K+/yr license
Operators Observed
--
unique operators
i
Avg Resolution Time
Mean time from first event to last event per order, in days.
Average elapsed days from first to last event per order trace.
Powered by:
Mean time from first event to last event per order, in days.
Average elapsed days from first to last event per order trace.
Powered by:
dateDiff() + avg()SELECT avg(dateDiff('hour', min_ts, max_ts)) / 24
FROM (
SELECT TraceId,
min(Timestamp) as min_ts,
max(Timestamp) as max_ts
FROM otel_traces
WHERE ServiceName='clickstack-portal'
GROUP BY TraceId
HAVING max_ts > min_ts
)
Celonis equivalent: Throughput time — $100K+/yr
Avg Resolution Time
--
inbound to close
i
Portal Pages Captured
Total page navigation events recorded by HyperDX.
Browser page visits with DOM metadata (element count, scroll depth, content).
Powered by:
Total page navigation events recorded by HyperDX.
Browser page visits with DOM metadata (element count, scroll depth, content).
Powered by:
count()SELECT count()
FROM otel_traces
WHERE ServiceName='clickstack-portal'
AND SpanName LIKE 'page.%'
AND Timestamp >= now()-INTERVAL 30 DAY
No Celonis equivalent — this is unique to ClickStack
Portal Pages Captured
--
portal layer
i
Conformance
Percentage of orders that follow the designed "happy path" — the intended step sequence with no deviations, rework, or escalations.
% of orders completing the full 5-step happy path sequence.
Powered by:
Percentage of orders that follow the designed "happy path" — the intended step sequence with no deviations, rework, or escalations.
% of orders completing the full 5-step happy path sequence.
Powered by:
windowFunnel()SELECT round(countIf(level >= 5)
/ count() * 100, 1)
FROM (
SELECT TraceId,
windowFunnel(2592000)(Timestamp,
SpanName='order.created',
SpanName='inspection.scheduled',
SpanName='report.submitted',
SpanName='review.completed',
SpanName='order.closed'
) as level
FROM otel_traces
WHERE ServiceName='clickstack-portal'
GROUP BY TraceId
)
Celonis equivalent: Conformance Checker ($500K/yr enterprise)
Conformance
--
happy path %
i
Rework Rate
Percentage of orders that contain at least one revision loop — where a completed step was sent back for correction.
% of orders with revision bounce loops (review → revision needed).
Powered by:
Percentage of orders that contain at least one revision loop — where a completed step was sent back for correction.
% of orders with revision bounce loops (review → revision needed).
Powered by:
countIf()SELECT round(countIf(rework > 0)
/ count() * 100, 1)
FROM (
SELECT TraceId,
countIf(SpanName IN (
'review.revision_needed',
'report.revised',
'status.revision_needed'
)) as rework
FROM otel_traces
WHERE ServiceName='clickstack-portal'
GROUP BY TraceId
)
Celonis equivalent: Rework analysis — $100K+/yr
Rework Rate
--
revision loops
Activity · 7 days
i
Orders Today
Distinct order traces created since midnight
Powered by:
Orders Today
--
Distinct order traces created since midnight
Powered by:
count(DISTINCT TraceId)SELECT count(DISTINCT TraceId)
FROM otel_traces
WHERE ServiceName='clickstack-portal'
AND SpanName='order.created'
AND Timestamp >= today()
Celonis equivalent: included in base Process Mining license
i
Avg Duration
Average elapsed time from first to last event per order
Powered by:
Avg Duration
--
Average elapsed time from first to last event per order
Powered by:
formatReadableTimeDelta()SELECT formatReadableTimeDelta(avg(dur))
FROM (
SELECT TraceId,
dateDiff('second',
min(Timestamp),
max(Timestamp)) as dur
FROM otel_traces
GROUP BY TraceId
HAVING dur > 0
)
Celonis equivalent: Throughput Time — $100K+/yr license
i
Events/min
Event throughput rate over the last hour
Powered by:
Events/min
--
Event throughput rate over the last hour
Powered by:
count() / dateDiff()SELECT round(count()
/ dateDiff('minute',
min(Timestamp),
max(Timestamp)), 1)
FROM otel_traces
WHERE Timestamp >= now()-INTERVAL 1 HOUR
Celonis equivalent: Process Throughput — $100K+/yr license
i
Error Rate
Percentage of spans with ERROR status in the last 24 hours
Powered by:
Error Rate
--
Percentage of spans with ERROR status in the last 24 hours
Powered by:
countIf() / count()SELECT round(
countIf(StatusCode='ERROR')
/ count() * 100, 2)
FROM otel_traces
WHERE ServiceName='clickstack-portal'
AND Timestamp >= now()-INTERVAL 24 HOUR
Celonis equivalent: Process Health Monitoring — $100K+/yr license
i
Identified Automation Targets
Tasks ranked by weekly hours recoverable through automation
Powered by:
Tasks ranked by weekly hours recoverable through automation
Powered by:
count() + avg(Duration)SELECT SpanName as task,
count() / 7 as daily_freq,
avg(Duration/1e9) / 60 as avg_minutes,
round(count() * avg(Duration/1e9)
/ 3600, 1) as weekly_hours
FROM otel_traces
WHERE ServiceName='clickstack-portal'
AND Timestamp >= now()-INTERVAL 7 DAY
GROUP BY task
ORDER BY weekly_hours DESC
Celonis equivalent: Task Mining ($200K/yr add-on)
Identified Automation Targets
Tasks ranked by weekly hours spent. High-frequency, low-complexity tasks are the best automation candidates.
LIVE_TELEMETRY
Analyzing bottlenecks...
i
Top Operational Flows
Most frequent operator step sequences across all order traces
Powered by:
Most frequent operator step sequences across all order traces
Powered by:
groupArray() + row_number()SELECT groupArray(SpanName) as path,
count() as sessions
FROM (
SELECT TraceId, SpanName,
row_number() OVER (
PARTITION BY TraceId
ORDER BY Timestamp) as step
FROM otel_traces
WHERE ServiceName='clickstack-portal'
AND Timestamp >= now()-INTERVAL 30 DAY
)
WHERE step <= 8
GROUP BY TraceId
ORDER BY sessions DESC LIMIT 5
Celonis equivalent: Process Explorer ($500K/yr enterprise)
Top Operational Flows
Most common operator workflows by line of business. Click any step to see matching sessions.
Email
Portal
API
--
Sessions Analyzed
--
Unique Paths
--
Top Path %
i
Object-Centric Process Mining
Multi-object interaction analysis: tracks how different object types (emails, portal pages, API calls, inspections) interact within each order
Powered by:
Multi-object interaction analysis: tracks how different object types (emails, portal pages, API calls, inspections) interact within each order
Powered by:
ClickHouse-native OCPM-- Full OCPM pipeline via /api/ocpm
-- Interaction matrix, lifecycle durations,
-- bottleneck detection, and operator affinity
-- all computed in standard ClickHouse SQL
Celonis equivalent: OCPM Module ($300K/yr enterprise add-on)
Object-Centric Process Mining
?
OCPM analyzes how different object types (orders, vendors, inspectors, documents) interact within business processes. Unlike traditional process mining which follows one case ID, OCPM tracks multiple objects simultaneously — revealing cross-functional bottlenecks that single-case analysis misses.
Learn more →
Multi-object interaction analysis across 8 span categories. First ClickHouse-native OCPM implementation.
OCPM
LIVE
Hover any metric for the ClickHouse query and Celonis cost equivalent
i
Object Categories
Distinct span prefix categories with activity in this period
Powered by:
Distinct span prefix categories with activity in this period
Powered by:
multiIf() + uniqExact()SELECT uniqExact(multiIf(
SpanName LIKE 'email.%', 'Communication',
SpanName LIKE 'page.%', 'Portal',
SpanName LIKE 'api.%', 'System',
SpanName LIKE 'inspection.%', 'Field Work',
'Other'))
FROM otel_traces
WHERE ServiceName='clickstack-portal'
Celonis equivalent: Object Type Registry — OCPM add-on ($100K+/yr)
Object Categories
--
active types
i
Cross-Object Interactions
Unique category pairs that co-occur within the same order
Powered by:
Unique category pairs that co-occur within the same order
Powered by:
arrayJoin() + CROSS JOINSELECT count(DISTINCT (cat_a, cat_b))
FROM (
SELECT arrayJoin(categories) AS cat_a,
arrayJoin(categories) AS cat_b
FROM order_categories
WHERE cat_a < cat_b
)
-- Derived from /api/ocpm logic
Celonis equivalent: Object Interaction Graph — OCPM add-on ($100K+/yr)
Interactions
--
category pairs
i
Slowest Cross-Object Transition
The category transition with the highest average duration
Powered by:
The category transition with the highest average duration
Powered by:
lagInFrame() + avg()SELECT cat_from, cat_to,
avg(time_between_ms) as avg_handoff_ms
FROM object_transitions
GROUP BY cat_from, cat_to
ORDER BY avg_handoff_ms DESC
LIMIT 1
-- Derived from /api/ocpm logic
Celonis equivalent: Cross-Object Bottleneck — requires OCPM add-on ($300K/yr)
Slowest Handoff
--
cross-category
i
Path Variants
Total unique path patterns across all object categories
Powered by:
Total unique path patterns across all object categories
Powered by:
cityHash64() + uniqExact()SELECT uniqExact(path_hash)
FROM (
SELECT TraceId,
groupArray(SpanName) as path,
cityHash64(toString(
groupArray(SpanName))) as path_hash
FROM otel_traces
WHERE ServiceName='clickstack-portal'
GROUP BY TraceId
)
Celonis equivalent: Process Variants by Object Type — PQL required ($500K/yr)
Total Variants
--
unique patterns
i
Object Interaction Matrix
Category co-occurrence counts across order traces
Powered by:
Category co-occurrence counts across order traces
Powered by:
arrayJoin() + count()SELECT cat_from, cat_to,
count() as transitions,
avg(time_between_ms) as avg_handoff_ms
FROM object_transitions
GROUP BY cat_from, cat_to
ORDER BY transitions DESC
-- Derived from /api/ocpm
Celonis equivalent: OCPM Module ($300K/yr enterprise add-on)
Object Interaction Matrix
i
Object Lifecycle Duration
How long each object category stays active per order
Powered by:
How long each object category stays active per order
Powered by:
dateDiff() + quantile()SELECT category,
count() as order_count,
avg(duration_hours) as avg_hours,
median(duration_hours) as median_hours,
quantile(0.95)(duration_hours) as p95_hours
FROM category_lifecycles
GROUP BY category
ORDER BY avg_hours DESC
Celonis equivalent: Object Lifecycle Analysis — OCPM add-on ($300K/yr)
Object Lifecycle Duration
i
Cross-Object Bottlenecks
Slowest transitions between object categories by P95 latency
Powered by:
Slowest transitions between object categories by P95 latency
Powered by:
quantile(0.95)()SELECT cat_from, cat_to,
quantile(0.95)(time_between_ms)
/ 3600000 as p95_hours
FROM object_transitions
GROUP BY cat_from, cat_to
ORDER BY p95_hours DESC
LIMIT 5
Celonis equivalent: Cross-Object Bottleneck Analysis — OCPM add-on ($300K/yr)
Cross-Object Bottlenecks
i
Operator-Object Affinity
Which operators interact most with each object category
Powered by:
Which operators interact most with each object category
Powered by:
multiIf() + count()SELECT SpanAttributes['operator.id'] as operator,
multiIf(
SpanName LIKE 'email.%', 'Communication',
SpanName LIKE 'page.%', 'Portal',
SpanName LIKE 'api.%', 'System',
SpanName LIKE 'inspection.%', 'Field Work',
'Other') as category,
count() as interactions
FROM otel_traces
WHERE ServiceName='clickstack-portal'
GROUP BY operator, category
ORDER BY operator, interactions DESC
Celonis equivalent: Resource Analysis ($200K/yr add-on)
Operator-Object Affinity
Celonis OCPM requires their full platform at $100K+/yr. This is the first ClickHouse-native OCPM implementation using standard SQL.
Dashboard powered by synthetic demonstration data. Production metrics will differ.