Skip to Content
Pipeline ViewReporting

Reporting · Precision Operator Briefing

The Reporting tab (surface code RPT-01) is a live workspace roll-up that reads the signals queue, agent reasoning, engagement trace, and buddy activity into a single operator dashboard. Every readout is Sudo-rendered from server-computed aggregates (no client-side guessing), and each cell carries a delta vs the prior window.

Layout

ColumnHeader (RPT-01) DashboardTitle KPI strip 4 ModuleCards (sparkline · meter · strip · row) TraceChart + HUD dial Buddy Activity grid ReasoningLog + RecommendedActions HourlyTimeline full-width bottom row

KPI strip · four module cards

CodeCardAdornment
M-01Signals Last 24hSparkline (24 hourly buckets, oldest → newest) vs prior-24h delta
M-02Pipeline ARRMeter vs arrTargetCents (default $50,000)
M-03Critical Signals8-segment strength strip (criticalCount / criticalCapacity)
M-04Agents HealthyRow: agentsHealthy / agentsTotal + uptimePct

Confidence-band tokens flip vermillion when degradation is detected.

Trace chart + HUD dial

Animated line chart (stroke-dashoffset draw-in, pulsing NOW endpoint, DROP.DETECT marker when a dip is picked up). The NOW badge renders as an HTML overlay rather than SVG text so preserveAspectRatio="none" doesn’t stretch it horizontally.

  • ReasoningLog: terminal-style stream of recent agent reasoning turns, grouped by buddy. The active entry gets a blinking cursor.
  • RecommendedActions: playbook-driven action cards, filtered through pickPlaybooks() so only actions whose required integrations are connected show up. Clicking one opens the target buddy’s chat with a pre-filled prompt.

Hourly timeline

Full-width 24-bucket bar chart of signal events across the last 24 hours. Oldest bucket on the left.

Data endpoints

GET /api/v1/reporting/summary

Returns the KPI strip payload. 30-second cache per workspace.

{ "activeSignals": 14, "pipelineArr": 420000, "openTasks": 12, "avgConfidence": 78, "signalsLast24h": 204, "signalsPrev24h": 187, "signalsHourly": [3, 5, 8, 12, 9, ...], "arrTargetCents": 5000000, "criticalCount": 3, "criticalCapacity": 8, "agentsTotal": 4, "agentsHealthy": 4, "uptimePct": 99.94, "confidencePptDelta": 1.2 }

Fields:

FieldSource
activeSignalsCustomer nodes with signal_type in the last 7d
pipelineArrSum of amount on open Opportunity nodes
openTasksCount of open Opportunity nodes
avgConfidenceMean of waypath_confidence or icp_match_score across customers; falls back to relationship confidence
signalsLast24h · signalsPrev24h · signalsHourlyTouchpoint events bucketed to hourly windows [now-24h, now) and [now-48h, now-24h)
criticalCountCustomer nodes with hyper_signal OR signal_strength >= 0.75 within the 7-day window
agentsHealthy / agentsTotalDerived from the buddy registry (4 specialists)
uptimePct · confidencePptDeltaWorkspace-level proxies until richer telemetry lands

The cache is invalidated automatically by any handler that mutates Customer / Opportunity / Touchpoint nodes, so the next poll recomputes.

GET /api/v1/reporting/recent-reasoning?limit=25

Returns the N most recent assistant turns across all buddies in the workspace. limit is clamped to 1–100 (default 25).

{ "entries": [ { "id": "msg_abc", "sessionId": "sess_xyz", "ts": 1729612340000, "buddyId": "insights", "text": "Detected hyper-signal on Acme Corp. New VP Marketing..." } ] }

On a fresh demo workspace with no chat history yet, the endpoint seeds the log with synthetic entries built from the workspace’s Recommendation nodes and recent Touchpoint events (tagged with plausible buddy IDs). This keeps the Reporting surface useful immediately after a new-workspace signup. No empty state.

When Supabase isn’t configured, the endpoint still returns synthetic entries rather than [], so the UI always has content to render.


SYNC · OK© 2026 WAYPATHBUILD · D-03SOC2 · IN PROGRESSWAYPATH.APP