- Billable Hours and Budgets Tracking
- Time Tracking
- Detailed Time Cost Report
- How to Track Billable and Non-Billable Work
- Project Costs report based on User Allocations and personal rates
- Metrics for Bugs in User Stories and Features
- Budget Spent Reports with different rates by activity type per Project
Brief summary of this article:
Targetprocess makes it possible to track billable and non-billable entities and time records. This article describes how to set up the tool to summarize billable and non-billable time spent values per work items (User Stories, Tasks, Bugs, Requests) and high-level planning entities (Features, Epics, Projects) when Time Tracking is used.
As result, Targetprocess starts to calculate billable hours totals on the fly. Calculated values appear in detailed views. They also can be included to cards on views and to any reports, including legacy tabular reports.
Learn more on the principles of billable and non-billable work tracking in Targetprocess: How to Track Billable and Non-Billable Work
Prerequisites
Set up the tool to distinguish billable and non-billable time spent records (Time entities). See how: Tracking Billable and Non-Billable Time Records.
Configure Custom Calculations
Changes described below are performed by Administrators.
Metrics for totals per User Story, Task, Bug, Request
Add custom calculations for work items to summarize billable and non-billable time spent totals. Add numeric system custom fields first. Then configure custom formula metrics to populate the fields.
Modify custom fields and metrics settings in the particular Process your Project follows.
Check Box custom field named Billable:
Entity | Field Label | Field Type | Custom Formula Metric |
Task, Bug, Request* | TimeSpentBillable | Number, System | Times.Where(CustomValues.Boolean("Billable") == True).SUM(Spent)
Times.Where(CustomValues["Billable"].ToString =="True").SUM(Spent) |
User Story**, *** | TimeSpentBillable | Number, System | Times.Where(CustomValues.Boolean("Billable") == True).SUM(Spent) + Tasks.SUM(CustomValues.Number("TimeSpentBillable"))
Times.Where(CustomValues["Billable"].ToString == "True").SUM(Spent) + Tasks.SUM(CustomValues.Number("TimeSpentBillable")) |
Drop Down List custom field named Bill Type:
Entity | Field Label | Field Type | Custom Formula Metric |
Task, Bug, Request* | TimeSpentBillable | Number, System | Times.Where(CustomValues.Text("Bill Type") == "Billable").SUM(Spent)
Times.Where(CustomValues["Bill Type"].ToString=="Billable").SUM(Spent) |
User Story**, *** | TimeSpentBillable | Number, System | Times.Where(CustomValues.Text("Bill Type") == "Billable").SUM(Spent) + Tasks.SUM(CustomValues.Number("TimeSpentBillable"))
Times.Where(CustomValues["Bill Type"].ToString=="Billable").SUM(Spent) + Tasks.SUM(CustomValues.Number("TimeSpentBillable")) |
* Add fields to Task, Bug, Request entity if your team reports time spent on tasks, bugs, and requests level.
** Include sum for Tasks to the custom formula if your team reports time spent on tasks level.
*** Time spent records can be also posted to Bugs. A Bug in Targetprocess can be related to a User Story, or to a Feature, or to both. These totals should be handled carefully to avoid duplications.
Non-billable time records are summarized using same kind of custom fields and custom formula metrics.
Metrics for totals per Feature, Epic, Project
Add custom calculations for high-level planning entities to summarize billable and non-billable time spent totals. Customize Cards to add calculated totals as columns to hierarchical list views.
Add numeric system custom fields first. Then configure custom formula metrics to populate the fields.
Modify custom fields and metrics settings in the particular Process your Project follows.
Check Box custom field named Billable:
Entity | Field Label | Field Type | Custom Formula Metric |
Feature*,
Project** |
TimeSpentBillable | Number, System | UserStories.SUM(CustomValues.Number("TimeSpentBillable")) |
Epic | TimeSpentBillable | Number, System | Features.SUM(CustomValues.Number("TimeSpentBillable")) |
Drop Down List custom field named Bill Type:
Entity | Field Label | Field Type | Custom Formula Metric |
Feature*,
Project** |
TimeSpentBillable | Number, System | UserStories.SUM(CustomValues.Number("TimeSpentBillable")) |
Epic | TimeSpentBillable | Number, System | Features.SUM(CustomValues.Number("TimeSpentBillable")) |
* Time spent records can be also posted to Bugs. A Bug in Targetprocess can be related to a User Story, or to a Feature, or to both. These totals should be handled carefully to avoid duplications.
** Time spent records can be also posted to Requests. On project level these totals should be handled additionally when required.
Reports
The reports are based on assignable items (such as User Stories, Tasks, Bugs etc.) as Data Source. Use SUM(TimeSpent) aggregation for your summary reports to compare calculated custom values with predefined totals.
These reports require custom formula metrics configured in advance. The reports described below are based on TimeSpentBillable numeric custom fields set up on User Story, Feature level.
Total Billable Time per User Story / Project
The visual report below compares billable vs total time spent on user stories, summarized per project.
Total Billable Time per Feature
The tabular report below compares billable vs total time spent summarized per feature.
Still have a question?
We're here to help! Just contact our friendly support team.