Skip to content
Talk to our solutions team

Core Concepts

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.

Every elapsed interval splits into:

ComponentMeaning
HumanA person was working, split into thinking and working
AIA model was engaged, split into reasoning and processing
IdleNobody 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.

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 elapsed

Decomposition 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.

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.

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.

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