@switch (activePanel()) {
@case ('scorecard') {
@if (scorecardRows().length > 0) {
@for (card of scorecardRows(); track card.flowId) {
{{ flowName(card.flowId) }}{{ card.starts.toLocaleString() }}{{ completionRate(card) }}%{{ card.medianDuration }}{{ card.handovers.toLocaleString() }}
}
} @else {
No flow matches “{{ query() }}”.
}
}
@case ('drop-off') {
Node-by-node traffic for the published graph. The band on the left is the
share of people who reached a node and never left it — the darker the
band, the more conversations end there.
@if (traffic().length > 0) {
@for (node of traffic(); track node.nodeId) {
}
} @else {
No node matches “{{ query() }}”.
}
}
@case ('intents') {
Where each intent’s conversations actually ended. Recognition is not the
measure here — an intent can be understood every time and still hand every
conversation to a person.
@if (intentRows().length > 0) {