Core Concepts
Actor classes
Section titled “Actor classes”Every captured event carries an actor class — human, AI, or system. That single field is what makes time decomposition possible, and it is why capture has to be designed in rather than bolted on: you cannot infer who was working from timestamps alone.
Time decomposition
Section titled “Time decomposition”Every elapsed interval splits into:
| Component | Meaning |
|---|---|
| Human | A person was working, split into thinking and working |
| AI | A model was engaged, split into reasoning and processing |
| Idle | Nobody and nothing was working — the case was waiting |
Idle is usually the largest component and the most improvable. Teams instrument the human and AI steps because those feel like the interesting ones, then find most elapsed time was a case sitting in a queue nobody measured.
Interval union
Section titled “Interval union”The correctness property that makes the rest trustworthy.
When a human and an AI work on the same case at the same time, naive accounting adds both intervals and produces total time exceeding wall-clock time — a report claiming a two-hour case took three hours of effort, which is either confusing or wrong depending on what you meant.
The engine resolves overlap by union: concurrent human and AI work is counted once.
human ▓▓▓▓▓▓▓▓░░░░░░░░▓▓▓▓ AI ░░░░▓▓▓▓▓▓▓▓░░░░░░░░ └──────────────────┘ union ▓▓▓▓▓▓▓▓▓▓▓▓░░░░▓▓▓▓ counted once, sums to elapsedDecomposition therefore sums to real elapsed time, which is what lets you put the human/AI/idle ratio in front of a business owner without caveats.
Spans, defined after the fact
Section titled “Spans, defined after the fact”Conventional instrumentation makes you decide what to measure before you measure it. You wrap a timer around the thing you suspect is slow, deploy, wait for data, and discover you bracketed the wrong interval.
Here, capture is broad and cheap; spans are defined later. A span says “starts at event A, ends at event B”, and the engine pairs start and end per case across events already recorded.
A question that surfaces in a review — “how long between a customer submitting and an agent first responding?” — is answered from existing data with full history, rather than starting a two-week instrumentation cycle.
Cohort contrast
Section titled “Cohort contrast”The headline output: AI-assisted versus manual.
Same process, two cohorts, compared on the same duration vector. It answers the question that justifies the AI spend — did the loop actually save time — rather than the question that is easy to answer, which is whether the model responded quickly.
PII-free by construction
Section titled “PII-free by construction”Events carry a name, a time, an actor class, a correlation id and tenancy. No payload. That is what makes always-on capture safe to leave enabled across an entire product, and it is why the block can retain history long enough for retrospective spans to be useful.
- Operations — declaring telemetry, recompute, storage