🤖 AI-Powered Insights
Analyzing performance data with AI...
⚠️ Bottleneck Identification
🔮 Predictability Analysis
📌 Big Numbers
Overall Completion Rate (SP-based)
40%
Average across S27–S31 | S27=24% S28=16% S29=60% S30=46% S31=53%
Avg Completed SP / Sprint
8 SP
Total 93 SP committed | S27=4 S28=3 S29=15 S30=6 S31=10
Rework Rate
34%
10 out of 29 eligible issues had ≥1 rework event
Story Points (deduplicated)
SP Assigned51
SP Done39
Each issue counted once in its last sprint | 29 issues
Issues (deduplicated)
Assigned29
Completed24
Each issue counted once in its last sprint
Median Cycle Time — Overall
5d
Lifetime active time (D&D + InDev + QA + UAT + RfD); On Hold excluded
Median Cycle Time — Project
8d
Project epic or Under Attack tickets (12 issues)
Median Cycle Time — BAU
3d
No epic or BAU epic (14 issues, credential rotations & cancelled excluded)
Median Time in Development
4d
Lifetime D&D + In Development time | n=21 issues
Median QA
3d
4 issues that reached QA Testing
Median UAT
1d
Time in UAT Testing while Business Approval = Approval Required only
📖 Definitions
- Completion Rate
- Average of per-sprint completion rates: for each sprint, SP done in that sprint ÷ SP committed to that sprint; then averaged across all sprints. SP committed includes all issues assigned to the sprint, including rollovers from previous sprints. Issues with no Story Points set are counted as 1 SP. Credential rotations with no Story Points are excluded.
- Rollover
- An issue rolls over when it is not completed (Done) within the sprint it was committed to. Rollover% = 100% − Compl%.
- Rework / Rework Event
- An issue is counted as reworked when its status moves back to In Development or Discovery & Design from a later stage (QA Testing, UAT Testing, Ready for Deployment, or Done). Rework% = issues with ≥1 rework event ÷ total active issues in the sprint. An active issue is one that had at least one transition into an active status within the sprint window. Each issue is counted once regardless of how many rework events it had. Issues are categorized by rework count: 0, 1, 2, or 3+ rework events (Table 5).
- Median
- The middle value of a sorted dataset. Unlike the average, the median is not affected by extreme outliers. For example, if 9 issues take 1–5 days and 1 issue takes 90 days, the median reflects the typical experience (e.g. 3d) while the average would be inflated.
- Cycle Time
- Total lifetime active time: sum of time spent in Discovery & Design, In Development, QA Testing, UAT Testing (while Business Approval = Approval Required only), and Ready for Deployment — across the issue's entire history. On Hold time is excluded. Cancelled issues and credential rotations without Story Points are excluded.
📊 Table 1 — Sprint Velocity & Cycle Time
| Sprint |
Compl% | Rework% |
Total SP | SP Done | Issues | Done |
| S27: L2O 1/20–2/2/2026 |
24% |
0% |
17 | 4 | 9 | 4 |
| S28: L2O 2/3–2/16/2026 |
16% |
43% |
19 | 3 | 9 | 1 |
| S29: L2O 2/17–3/2/2026 |
60% |
29% |
25 | 15 | 13 | 9 |
| S30: L2O 3/3–3/16/2026 |
46% |
29% |
13 | 6 | 6 | 3 |
| S31: L2O 3/17–3/30/2026 |
53% |
10% |
19 | 10 | 10 | 6 |
📊 Table 2 — Sprint Composition: Easy (1–2 SP) vs Complex (≥3 SP)
| Issues | Done | % of Sprint |
Issues | Done | % of Sprint |
| S27: L2O 1/20–2/2/2026 | 7 | 4 | 64% | 4 | 0 | 36% |
| S28: L2O 2/3–2/16/2026 | 8 | 0 | 73% | 3 | 1 | 27% |
| S29: L2O 2/17–3/2/2026 | 9 | 5 | 75% | 3 | 1 | 25% |
| S30: L2O 3/3–3/16/2026 | 6 | 2 | 67% | 3 | 0 | 33% |
| S31: L2O 3/17–3/30/2026 | 7 | 4 | 58% | 5 | 2 | 42% |
| TOTAL (S27–S31) | 37 | 15 | 67% | 18 | 4 | 33% |
📊 Table 3 — Completion & Cycle Time by Assignee
| Assignee | Role | Compl% | Rework% |
MdnCycle | MdnDev | MdnQA |
| Developer 1 | Dev |
36% | 39% |
5d | 4d | N/A |
| Developer 2 | Dev |
40% | 25% |
6d | 4d | N/A |
| Developer 3 | Dev |
100% | 0% |
5d | 4d | N/A |
| QA 1 | QA |
83% | N/A |
N/A | N/A | 4d |
* Compl% = average of per-sprint rates (SP done in sprint ÷ SP committed in sprint, per sprint, then average across sprints). Rollover% = 100% − Compl%. QA 1 is QA reviewer — assigned during QA Testing only. MdnQA = median time in QA Testing while QA 1 was the assignee. MdnCycle and MdnDev not applicable to QA role.
📊 Table 4 — Story Points vs Cycle Time
Active time from first active status → Ready for Deployment or Done (whichever first). On Hold time excluded. Issues with cycle time data only.
| Story Points | Issues | Median Cycle | Avg Cycle | Min | Max | Issue Keys |
| 1 SP | 14 | 3.0d | 3.2d | 0.1d | 6.6d |
23936, 24017, 23452, 23448, 20939, 23813, 24090, 23674, 23823, 23348, 23503, 24512, 24152, 24449 |
| 2 SP | 6 | 4.3d | 5.5d | 0.3d | 12.5d |
23930, 24673, 23675, 23732, 23798, 24103 |
| 3 SP | 5 | 5.4d | 4.5d | 1.0d | 6.8d |
24590, 22201, 24060, 22905, 23941 |
| 5 SP | 1 | 2.6d | 2.6d | 2.6d | 2.6d |
23128 |
📊 Table 5 — Rework Distribution
Rework = status moving back to Discovery & Design or In Development from later stages (QA Testing, UAT Testing, Ready for Deployment, or Done). All S27–S31 issues that meet criteria.
| Rework Events |
Issues |
BizApps IDs |
| 0 reworks |
19 |
BIZAPPS-23448, BIZAPPS-23452, BIZAPPS-23503, BIZAPPS-23813, BIZAPPS-23823, BIZAPPS-23930, BIZAPPS-23936, BIZAPPS-24017, BIZAPPS-24090, BIZAPPS-24103, BIZAPPS-24152, BIZAPPS-24449, BIZAPPS-22905, BIZAPPS-23128, BIZAPPS-24590, BIZAPPS-24512, BIZAPPS-24060, BIZAPPS-23732, BIZAPPS-22201 |
| 1 rework |
6 |
BIZAPPS-23348, BIZAPPS-23674, BIZAPPS-23675, BIZAPPS-23941, BIZAPPS-20939, BIZAPPS-24673 |
| 2 reworks |
2 |
BIZAPPS-24152, BIZAPPS-24512 |
| 3+ reworks |
2 |
BIZAPPS-23798, BIZAPPS-20432 |
| TOTAL | 29 | All S27–S31 L2O issues (BIZAPPS, Value Stream = Lead to Opportunity, not Cancelled/On Hold) |
📋 Data Generation Rules & Methodology
Complete Rules for Reproducing This Report
- Data Source & Scope
-
Project: BIZAPPS
Value Stream: Lead to Opportunity (customfield_23515 = "Lead to Opportunity")
Sprints: S27 (1/20–2/2/2026), S28 (2/3–2/16/2026), S29 (2/17–3/2/2026), S30 (3/3–3/16/2026), S31 (3/17–3/30/2026)
Sprint Board: Lead & Demand Gen Scrum Board (Board ID: 6081)
Sprint IDs: 12637 (S27), 12755 (S28), 12844 (S29), 12876 (S30), [S31 ID TBD]
- Exclusions (Applied to ALL Metrics)
-
1. Cancelled issues: status = "Cancelled" — excluded from board and all metrics
2. On Hold issues: status = "On Hold" — excluded from board and all metrics
3. Credential rotations with null SP: summary contains "Credential Rotation" AND story points is null — excluded entirely
Note: Other credential rotations WITH story points set are included
- Story Points Default Rule
-
Issues with no Story Points: Counted as 1 SP
Field: customfield_10002 (Story Points)
This applies to all SP calculations (committed, done, completion rate)
- Deduplication Rule
-
Each issue counted once in its LAST SPRINT only
- Issues that span multiple sprints (rollovers) are counted only in their final sprint
- Prevents double-counting across sprints
- "Last sprint" determined by the last element in the sprint array (customfield_10100)
- Completion Rate Calculation
-
Per-sprint: SP done in sprint ÷ SP committed in sprint
- SP committed = sum of effective SP for all issues assigned to that sprint (including rollovers from previous sprints)
- SP done = sum of effective SP for issues with status = "Done"
Overall: Average of per-sprint completion rates across all sprints
Formula: (S27_compl% + S28_compl% + S29_compl% + S30_compl% + S31_compl%) ÷ 5
- Rollover Calculation
-
Definition: Issue rolls over when not completed (Done) within the sprint it was committed to
Formula: Rollover% = 100% − Completion%
Note: Measured per-sprint, not per-issue
- Rework Rate Calculation
-
Trigger: Status moves back to "Discovery & Design" or "In Development" from a later stage (QA Testing, UAT Testing, Ready for Deployment, or Done)
Active Issue: One that had at least one transition into an active status within the sprint window
Formula: Rework% = (issues with ≥1 rework event) ÷ (total active issues in sprint)
Important: Each issue counted once regardless of how many rework events it had
Status Order: Discovery & Design (1) → In Development (2) → QA Testing (3) → UAT Testing (4) → Ready for Deployment (5) → Done (6)
Rework = moving from higher number to lower number (specifically to 1 or 2)
- Cycle Time Calculation
-
Scope: Total lifetime active time across entire issue history
Included Statuses:
- Discovery & Design
- In Development
- QA Testing
- UAT Testing (with Business Approval condition — see below)
- Ready for Deployment
Excluded: On Hold time is excluded from all calculations
Method: Parse changelog histories, calculate time between status transitions, sum all active periods
Metric: Use median (not average) to avoid outlier skew
Additional Exclusions: Cancelled issues and credential rotations without Story Points
- Median Time in Development
-
Included: Discovery & Design + In Development time combined
Method: Sum of all time spent in these two statuses across issue lifetime
Exclude: On Hold time
Sample: Issues that had activity in these statuses (n=21 in this report)
- Median QA Time
-
Included: Time in "QA Testing" status only
Sample: Issues that reached QA Testing (n=4 in this report)
Exclude: On Hold time
- Median UAT Time (Conditional)
-
Critical Condition: Only counts time when Business Approval = "Approval Required"
Field: customfield_21131 (Business Approval)
Logic: Track Business Approval field changes alongside status changes. Only accumulate UAT time when:
1. Status = "UAT Testing" AND
2. Business Approval.value = "Approval Required"
Exclude: UAT time when Business Approval is "Approved" or any other value
- Work Type Categories
-
Project: Issues with Project epic OR "Under Attack" in summary/title (12 issues in this report)
BAU: No epic OR BAU epic (14 issues in this report)
Exclusions: Credential rotations and cancelled issues excluded from BAU count
Epic Field: customfield_10014 (Epic Link)
- Composition Categories
-
Easy: 1–2 SP issues
Complex: ≥3 SP issues
Calculation: Percentage of sprint = (Easy SP ÷ Total SP) or count-based for issue metrics
- Assignee Metrics
-
Completion%: Average of per-sprint rates for issues assigned to that person
Rework%: Percentage of assignee's active issues that had rework events
Role Assignment:
- Dev: Primary assignee during development phases
- QA (e.g., QA 1): Assigned only during QA Testing status
QA-specific: MdnQA = median time in QA Testing while that person was the assignee
Note: MdnCycle and MdnDev not applicable to QA-only assignments
- Story Points vs Cycle Time (Table 4)
-
Active time: From first active status → Ready for Deployment or Done (whichever occurs first)
Exclude: On Hold time
Sample: Only issues with cycle time data (excludes issues that never entered active statuses)
Statistics: Median, Average, Min, Max calculated per SP bucket (1, 2, 3, 5 SP)
- Rework Distribution (Table 5)
-
Rework Event: Status moves back to "Discovery & Design" or "In Development" from a later stage (QA Testing, UAT Testing, Ready for Deployment, or Done)
Status Order: Discovery & Design (1) → In Development (2) → QA Testing (3) → UAT Testing (4) → Ready for Deployment (5) → Done (6)
Rework = moving from higher number to lower number (specifically to 1 or 2)
Sample: All S27–S31 issues that meet criteria (project = BIZAPPS, Value Stream = "Lead to Opportunity", not Cancelled, not On Hold, excluding credential rotations with null SP)
Distribution: Issues categorized by rework count: 0, 1, 2, or 3+ rework events
- API Endpoints Required
-
1. Get Issues: POST /rest/api/2/search
- JQL: project = BIZAPPS AND "Value Stream" = "Lead to Opportunity" AND sprint in (12637, 12755, 12844, 12876, [S31])
- Fields: summary, status, assignee, customfield_10002, customfield_10100, customfield_23515, customfield_21131, created, resolutiondate, customfield_10014
- Expand: changelog
2. Get Sprints: GET /rest/agile/1.0/board/6081/sprint
- Retrieve sprint dates and boundaries
3. Parse Sprint String:
- Format: "com.atlassian.greenhopper.service.sprint.Sprint@...[id=XXXX,name=S##: L2O ...]"
- Extract id, name, state from string using regex
- Changelog Processing
-
Sort: Order histories by created date (ascending)
Track: For each history item where field = "status":
- fromString (previous status)
- toString (new status)
- created (timestamp)
Track Business Approval: For each history item where field = "Business Approval":
- toString (new value)
- created (timestamp)
Calculate Durations: Time between transitions = current timestamp − previous timestamp