[Feature] Step-Level Time Tracking + Session Outcomes #56

Closed
opened 2026-02-10 15:58:42 +00:00 by chihlasm · 1 comment
chihlasm commented 2026-02-10 15:58:42 +00:00 (Migrated from github.com)

Summary

Automatically capture duration at each tree step (timestamp on entry/exit). Add a "Did this resolve the issue?" prompt at session end with outcome categories: resolved, escalated, workaround, unresolved.

Why

This is the foundational data layer for all analytics features. Without it:

  • Can't measure tree effectiveness
  • Can't quantify ROI ("Is ResolutionFlow saving us time?")
  • Can't build manager dashboards
  • Can't optimize trees based on real usage

Every MSP manager will ask "does this save time?" before buying. This data answers that question.

Implementation Notes

Step-Level Timing

  • Decision timestamps already exist in session JSONB — add entered_at and exited_at to each decision record
  • Compute step duration: exited_at - entered_at
  • Include per-step timing in exports

Session Outcomes

  • Add outcome field to Session model: resolved | escalated | workaround | unresolved
  • Add outcome_notes text field for optional context
  • Show outcome modal when session is completed (before final export)
  • Migration: add outcome and outcome_notes columns to sessions table

Export Enhancement

  • Include total duration and per-step durations in all export formats
  • Include outcome in export header

Schema Changes

ALTER TABLE sessions ADD COLUMN outcome VARCHAR(20); -- resolved/escalated/workaround/unresolved
ALTER TABLE sessions ADD COLUMN outcome_notes TEXT;

Decision JSONB enhancement:

{
  "node_id": "...",
  "entered_at": "2026-02-10T09:15:00Z",
  "exited_at": "2026-02-10T09:17:30Z",
  "duration_seconds": 150,
  ...existing fields...
}

Acceptance Criteria

  • Each decision record includes entered_at, exited_at, duration_seconds
  • Session completion shows outcome selection modal
  • Outcome stored in session record
  • Per-step timing and total duration in all export formats
  • Session history page shows outcome badges

Unlocks

  • Tree effectiveness dashboard (#future)
  • ROI metrics and manager dashboards
  • SLA compliance tracking
  • Engineer performance analytics

Sources

  • docs/plans/2026-02-04-feature-ideas-brainstorm.md — Idea 1: Session Time Tracking
  • .claude/docs/ai/resolutionflow/10x/session-1.md — Medium Opportunity #1

Priority

Do Next — foundational, unlocks entire analytics layer

## Summary Automatically capture duration at each tree step (timestamp on entry/exit). Add a "Did this resolve the issue?" prompt at session end with outcome categories: resolved, escalated, workaround, unresolved. ## Why This is the **foundational data layer** for all analytics features. Without it: - Can't measure tree effectiveness - Can't quantify ROI ("Is ResolutionFlow saving us time?") - Can't build manager dashboards - Can't optimize trees based on real usage Every MSP manager will ask "does this save time?" before buying. This data answers that question. ## Implementation Notes ### Step-Level Timing - Decision timestamps already exist in session JSONB — add `entered_at` and `exited_at` to each decision record - Compute step duration: `exited_at - entered_at` - Include per-step timing in exports ### Session Outcomes - Add `outcome` field to Session model: `resolved` | `escalated` | `workaround` | `unresolved` - Add `outcome_notes` text field for optional context - Show outcome modal when session is completed (before final export) - Migration: add `outcome` and `outcome_notes` columns to sessions table ### Export Enhancement - Include total duration and per-step durations in all export formats - Include outcome in export header ## Schema Changes ```sql ALTER TABLE sessions ADD COLUMN outcome VARCHAR(20); -- resolved/escalated/workaround/unresolved ALTER TABLE sessions ADD COLUMN outcome_notes TEXT; ``` Decision JSONB enhancement: ```json { "node_id": "...", "entered_at": "2026-02-10T09:15:00Z", "exited_at": "2026-02-10T09:17:30Z", "duration_seconds": 150, ...existing fields... } ``` ## Acceptance Criteria - [ ] Each decision record includes `entered_at`, `exited_at`, `duration_seconds` - [ ] Session completion shows outcome selection modal - [ ] Outcome stored in session record - [ ] Per-step timing and total duration in all export formats - [ ] Session history page shows outcome badges ## Unlocks - Tree effectiveness dashboard (#future) - ROI metrics and manager dashboards - SLA compliance tracking - Engineer performance analytics ## Sources - `docs/plans/2026-02-04-feature-ideas-brainstorm.md` — Idea 1: Session Time Tracking - `.claude/docs/ai/resolutionflow/10x/session-1.md` — Medium Opportunity #1 ## Priority **Do Next** — foundational, unlocks entire analytics layer
chihlasm commented 2026-02-24 22:23:15 +00:00 (Migrated from github.com)

Closing as implemented. Step-level time tracking and session outcomes were implemented in commit ca4ce7c and subsequent work: entered_at/exited_at on decisions, outcome modal at session end, outcome stored on sessions, timing visible in exports, and outcome badges in session history. PR #78 analytics also leverage this data for dropoff metrics.

Closing as implemented. Step-level time tracking and session outcomes were implemented in commit ca4ce7c and subsequent work: entered_at/exited_at on decisions, outcome modal at session end, outcome stored on sessions, timing visible in exports, and outcome badges in session history. PR #78 analytics also leverage this data for dropoff metrics.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chihlasm/resolutionflow#56