Handoff Debt Analyzer for JSM
Updated 26 October 2026. Read-only analysis of assignee and status history to identify coordination friction. This diagnostic score is not an SLA or employee-performance measure.
Install and open
A Jira administrator installs the existing app on Jira Cloud. The user needs access to the selected project and its issues; accept the normal Forge access prompt if shown. Open Jira → Apps → Handoff Debt Analyzer. No external account or credentials are needed.
Run an analysis
- Select an accessible service project. If no service project is returned, accessible Jira projects are offered for validation.
- Click Analyze handoff debt.
- Review Handoff debt, Tickets analyzed, Reassignments, Ping-pong tickets, High-debt tickets and Status backtracks.
- Review the highest-debt tickets and most common handoff paths. After changing project, run analysis again and confirm the report project before exporting.
- Export CSV when rows exist. Empty results leave export disabled.
Method and limits
The resolver reads up to 100 most recently updated issues and at most five bulk changelog pages, requesting assignee/status history. Incomplete history can undercount transitions. It returns the scanned sample sorted by score. The UI shows ten tickets initially, with Show 10 more tickets. Search, attention and status filters apply to the table, recommendations and team paths; KPI totals cover the full scanned sample. Truncated changelog history is flagged. The score is min(100, 6 × assignee changes + 12 × returns to a prior assignee + 8 × returns to a prior status + 2 × max(0, status changes − 3)). Severity is low below 15, medium from 15, high from 30 and critical from 50. Project debt is the rounded mean across the scanned sample. No visible history means zero observed transitions, not proof that no handoffs occurred.
Evidence and next actions
The recommendations identify tickets with owner returns, at least three reassignments or status re-entry and cite issue keys for inspection. They suggest reviewing routing, acceptance criteria and workflow causes; they do not prove waste or promise savings.
Elapsed time and team paths
Hours to next status measures calendar elapsed time from a reassignment to the next recorded status change. Missing observations remain unknown. Nights, weekends and productive work are included. This is not lost time, effort or an SLA measure. Overlapping intervals must not be summed as total lost time.
Expand Map owners and unassigned queues to teams and supply team names to group recorded reassignments. Mapping is user-supplied, applies to all sampled history and is not a historical directory. Same-team changes are excluded; unmapped events are counted. Mapping stays only in this tab and clears on refresh or project change.
Data and permissions
The inspected manifest requests read:jira-work only. All Jira API calls use api.asUser().requestJira and respect the initiating user's access. No asApp calls, write scopes, remotes, external fetch domains or web triggers are present. No persistent report storage is implemented. The app processes issue metadata and assignee/status histories in Forge and returns results to the current browser. CSV exports contain issue data and remain under user control; formula prefixes and quotes are escaped.
Reproducible validation
- Use an isolated project accessible to the reviewer with a recent issue whose history changes assignee A → B → A.
- Run analysis and verify two reassignments, one return and a score contribution of 24.
- For status history Open → In progress → Open, verify one status backtrack and a contribution of 8.
- Compare the thirteen CSV columns with the scanned sample, including observed elapsed calendar hours, observed interval count and history completeness. CSV exports the full scanned sample regardless of active filters.
- Check an empty project and user access restrictions. No Jira record is modified by analysis.
Live Development validation on 26 October 2026 analyzed 89 tickets in the authorized test site. Synthetic demonstration issue CLSD-89 showed three recorded reassignments, two returns, one status re-entry and score 50. The downloaded 89-row CSV matched the UI. This is synthetic QA evidence, not a customer result. A separate non-administrator account and a second tenant were not tested in this execution.
Troubleshooting
If projects or issues are missing, check user consent, Browse Projects, issue security and the sample boundary. API errors show an HTTP status without raw Jira response bodies. Contact support with sanitized steps, app version and timestamp.
Support · Product privacy and security