A chat sitting at high friction for three minutes and a chat that arrived at high friction thirty seconds ago look identical on every gauge that reports a state. Both show the same label. One of them is a conversation you are losing slowly and the other is one you have just started working on.
The momentum card is the derivative. It sits on the right-hand rail of the agent console alongside the gauges it reads, and instead of measuring the conversation it measures the other measurements, once a second, and reports which way they are moving. It answers a question none of its siblings can: is what I am doing in this tab actually working.
How it watches the other gauges
Once a second the card polls every sibling overlay on the rail and takes a snapshot of the counts and labels each one exposes. It then compares that snapshot with the previous one. Anything that changed becomes an event.
Reading other cards rather than the messages is what makes it cheap and what makes it broad. It inherits every extraction rule its siblings already implement without repeating any of them, and an overlay that is missing simply contributes nothing rather than breaking the poll.
Nothing fires until three snapshots have landed for that visitor. The first is a baseline, and diffing it against an empty default would emit a burst of backward events for every item that was already open when you accepted the chat. The next two confirm the picture is stable. Until then the pill says it is warming up, which on a fast-moving chat is the first few seconds only.
The seventeen things that count as movement
Eight transitions count as forward motion. A decision being reached is the heaviest at three points. A commitment being completed, an objection being resolved, a lookup being closed and the buying signal reaching its top band are worth two each. A visitor question being answered, a visitor step being confirmed, and the effort score climbing out of its two worst bands are worth one and a half.
Nine count as drag. A high-severity risk flag is the heaviest single item on the whole board at minus four. A medium risk flag and the effort score reaching Painful cost two. A new objection costs one and a half. A new lookup, a question piling up unanswered, the effort score reaching High, a dismissive reply detected on your side, and the visitor mood crossing into frustrated cost one each.
The weights are worth reading as a statement of what the console thinks matters. One high risk flag outweighs a decision plus a resolved objection. Two things going right do not cancel one thing going badly wrong, and that is deliberate.
Closing, Advancing, Steady, Drifting, Stuck
Two totals are kept. Recent is the sum of events in the last five minutes. Running is the sum of everything since the chat began.
The label comes from recent, not running, and that choice is the reason the card is usable. A chat that opened badly and has since been fixed reads as Steady rather than being permanently marked by its first two minutes. Running sits underneath as context.
Five points or better is Closing. Two to just under five is Advancing. Anything between minus one point nine nine and just under two is Steady. Down to minus four point nine nine is Drifting. Below that is Stuck. The event log holds sixty entries per visitor and the sparkline shows the last twelve.
The pill expands itself exactly once, when the label crosses into Stuck from anything else. Nothing else auto-expands, including Closing, on the grounds that a congratulatory interruption is still an interruption.
Reading the label honestly
Steady is ambiguous and it is worth being clear about how. It means the recent window nets out near zero, which covers a productive conversation where nothing has changed state in five minutes and also covers a conversation where one thing went right and one went wrong. The number alone will not tell you which. Expanding the card and reading the event list will, in about two seconds.
The five-minute window also means momentum decays. A chat you fixed six minutes ago is Steady again, correctly, because the question the card answers is about now rather than about the whole session.
Stuck deserves the interruption it causes. It requires minus five within five minutes, which in practice needs either a high risk flag plus something else, or three or four smaller things going wrong together. It is not a label you drift into by accident, and the coaching line attached to it is blunt: try a different angle, or transfer.
Why it cannot block your wrap-up
The card writes one line into the wrap-up recap, summarising the label, the recent score, the event count and the most recent event. That line is genuinely useful in a handover, because it is the only part of the recap that carries direction rather than state.
It deliberately does not touch the readiness gate. Every concrete blocker is already covered by a card that owns it: open questions, unfulfilled commitments, unresolved objections, risk flags, open lookups and unconfirmed visitor steps all hold readiness on their own. Momentum is a trend, and a trend is the wrong thing to block a close on. A chat can be Drifting and entirely finished, and it can be Advancing with an unanswered question in it.
That restraint is what keeps the readiness indicator meaningful. A gate that fires on soft signals gets ignored, and once it is ignored the hard signals it also carries stop working.
What it will not do
It is per tab. It says nothing about which of your open chats needs attention next, which is a different card's job entirely.
It inherits its siblings' blind spots completely. If the mood lexicon cannot read the language, momentum will not see a frustration event either. If an overlay is not loaded, its contribution is silently zero rather than an error.
It stores nothing. State is per visitor and in memory, and a transfer, accept, reject or session end drops it, so an agent taking over never inherits the previous agent's apparent stuckness. There is no history and no report, which as with the rest of the rail is the correct default for a signal this soft.
What to measure
Momentum itself is not a metric and should not become one. The things it is built from already are, and those are the ones worth reporting.
- Share of chats that ever entered Stuck, read as a diagnostic rather than a score. A topic that reliably produces Stuck chats is a product or documentation problem.
- Transfer rate on chats that entered Stuck against those that did not, which tells you whether the interruption is changing behaviour.
- First contact resolution by topic, which is the durable version of the same question.
- Handling time split by outcome rather than averaged, because speed and quality trade against each other differently at each end of a chat.
Put it into practice
- Open a live chat and press Ctrl+Shift+7, or click the pill, to expand the card.
- Give it three seconds before you believe it. The first snapshot is a baseline and the next two confirm it.
- Resolve an open question and watch a forward event appear with its weight attached.
- When it reads Steady, expand the event list rather than assuming nothing happened. Steady also means one good thing and one bad thing.
- Treat the automatic expansion into Stuck as the prompt it is meant to be: change the approach, or hand the chat to someone else.
- Do not report on the label. Report on the transfers, resolutions and repeat topics underneath it.
Momentum is a direction, and a direction is only meaningful from a position. The phase pill supplies that position, naming where on the arc of a conversation you currently are — and it reads this gauge as one of its inputs.