Allocation
The Allocation report uses AI-powered classification and weighting of pull requests to break down how engineering effort is being spent across Features, Maintenance, Fixes, and Other. Instead of relying on self-reported survey answers, it uses system data from your code host to estimate where engineering effort is going.
When to use the Allocation report
DX Snapshots ask engineers to self-report how they split their time between New capabilities and KTLO and maintenance. The Allocation report provides a system-based view of the same concept, using PR data instead of survey answers:
- Use it to understand what percentage of delivered work is Feature vs Maintenance vs Fixes, at the team or org level.
- Use the time series to see how Allocation is shifting over time in response to initiatives or changes in priorities.
How categorization works
1. Categories
Each merged pull request is categorized into one of the following groups:
| Category | Description |
|---|---|
| Features | Work that introduces new capabilities, product enhancements, or user-facing changes. |
| Maintenance | Work that maintains existing systems, such as security upgrades, tech debt, refactoring, or documentation. |
| Fixes | Work that addresses bugs, production issues, or incidents. |
| Other | PRs with insufficient or ambiguous information to be confidently classified. |
These categories align with those used in self-reported allocation data collected in DX Snapshots, where work is broadly grouped into New capabilities and KTLO and maintenance. In the Allocation report, KTLO/maintenance work is further divided into Maintenance and Fixes to provide more granularity.
2. Rule-based heuristics
If a pull request’s title or branch name starts with certain keywords, DX will auto-categorize it using simple, transparent rules:
- Features: title or branch starts with
"feature"or"feat" - Maintenance: title or branch starts with
"maintenance","maint","chore","refactor", or"docs" - Fixes: title or branch starts with
"fix","bug","bugfix", or"hotfix"
Note: In the case of a conflict, the category based on the pull request’s title will be prioritized.
These rules provide a strong, interpretable signal when teams have consistent naming conventions.
3. AI classification
If no keyword rule applies, DX AI classifies the PR based on its content. The model considers signals such as:
- The branch name and PR description
- Linked ticket metadata (when available), including:
- Ticket title or summary
- Labels
- Type (e.g., for Jira
Task,Bug, etc.) - Custom field values (e.g., for Jira
categoryortype)
- Structural characteristics of the PR (e.g., size of the diff)
The output is one of the four categories above, stored as Feature, Maintenance, Bug, or Other. In the UI, Bug is displayed as “Fix/Fixes” for readability, but the underlying category is the same.
Finally, to estimate engineering effort more accurately, allocation percentages are adjusted using DX’s TrueThroughput® model, which accounts for the complexity of each pull request.