- Billable Hours and Budgets Tracking
- Metrics for Billable and Non-Billable Time Spent Totals
- 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:
With Time Tracking practice enabled, Targetprocess users post actually spent time against various entities. Detailed time reports are used to build lists of submitted records, group them per work items, work scopes, users, roles, and date ranges, and calculate totals per each group. It is possible to calculate total budget spent on your projects using time tracking data and custom personal hourly rates.
The report described below is a Detailed Time Report with custom calculations applied. The report uses Times entities as data source. Spent hours values are multiplied by personal hourly rates, then totals are calculated.
Personal hourly rates are set per individual user. In the basic use case rates for a user are same for all the projects he or she is a member of.
All users in the system can view personal rates of each other. There is no robust solution that could hide rates set to personal custom fields, per role. Alternate option is to introduce flexible hidden role-based or skills-based rates instead of personal rates. The formulas are described below.
Custom calculations are performed in Visual Reports. Results are displayed in reports only. Calculations can be configured and modified by any Targetprocess user (report owner). The reports can be exported for external audit and further processing by third-party software in the form of tabular and graphical files.
To get calculated totals displayed in detailed views, enable filtering and grouping in Targetprocess views and legacy tabular reports, add custom calculations for work items and high-level planning entities. The custom calculations are done by Custom Formula Metrics. They can be configured and modified by Administrators only.
Improperly configured calculations may be not accurate enough. Verify the reports before using them for billing and invoicing purposes. Use non-verified reports on your own risk.
Prerequisites
Configure Rates
Changes described below are performed by Administrators.
To track personal rates per user, add a custom field of Number or Money type to a User entity.
To track personal rates per role per project, add a custom field of Number or Money type to a Project entity. Add as many fields as number of billable roles you want to track separately.
To track personal rates per skill level per project, add a custom field of Number or Money type to a Project entity. Add as many fields as number of skills you want to track separately. Add a custom field of Drop Down List type to a User entity to represent skill level.
More information: How to set up Custom Fields?
Fill in custom field values.
In this use case, all time spent entries are billable by default. If it is required to allow your users to submit both billable and non-billable time entities and filter out non-billable ones in invoicing reports, you may introduce additional solution: Tracking Billable and Non-Billable Time Records.
Visual Report for Time Cost
Create the report as a blank Entity Report based on Times data source.
New to Visual Reports? Learn how Visual Reports editor works.
- Set the Projects and Teams Selection for the report
- Apply a filter (if desired) to review only times from a select time period. More on filters: Filters for Time List views and visual reports
- Create the report
- Add field or formula > Formula
- Name: Cost
- Formula: Spent*User.CustomValues.Number("Rate")
- Use a bar chart as the Chart Type
- Set Project Name for the X-axis (or use the name of the work entity you want to display, such as a User Story Name)
- Use ‘Cost’ for the Y-axis and then Sum this field.
How to create the ‘Cost’ formula:
Here's how to add custom calculations to charts in the Visual Reports Editor: Add Fields or Custom Formulas to Data Fields.
Name: Cost
Formula:
Spent*User.CustomValues.Number("Rate")
Report Output:
Grouping
In order to setup date filters and grouping, or to see the total amount for each user or work item in a given project, it is possible to configure filtering and grouping.
Cost per User / User Story / Bug / Task / Project / Date Range
Put one of the supported Data Fields to X and/or Color axes to get Time records grouped per corresponding field. Total Costs are calculated per each group.
Cost per Feature, Epic
There are no prefefined fields displaying references of Time records to high-level planning entities. To build time reports with distribution per these entities use custom calculations based on custom formula metrics or Visual Reports calculations. Examples:
Flexible Hidden Rates
Hidden role-based or skills-based rates are useful as with them it is not needed to specify personal rates in user profiles.
All the custom formulas below are valid for reports based on Times data source.
To use the calculations, replace origin rate references in custom formulas such as:
User.CustomValues.Number("Rate")
with advanced custom calculations, for example:
(CASE WHEN Role.Name = 'Developer' THEN 130 WHEN Role.Name = 'QA Engineer' THEN 110 ELSE 80 END)
Rates based on Time Role
The rates are calculated with Time Role Rate custom formula.
Roles are specified per time spent record. In most cases the system selects proper role automatically: based on the role the user is assigned to a work item and the one which is responsible for current work item state. To retrieve names of Roles use the following custom formula:
Role.Name
Fixed rates per Role
Rates per role are common for all projects. Rates are specified as constant values in calculation formulas.
CASE WHEN Role.Name = 'Developer' THEN 130 WHEN Role.Name = 'QA Engineer' THEN 110 ELSE 80 END
Rates vary per Project
Rates per role are specified per project. Numeric custom fields for each supported role are added to project detailed views in advance.
CASE WHEN Role.Name = 'Developer' THEN Project.CustomValues.Number("Developer Rate") WHEN Role.Name = 'QA Engineer' THEN Project.CustomValues.Number("QA Rate") ELSE Project.CustomValues.Number("Other Rate") END
Rates based on User Function
The rates are calculated with User Function Rate custom formula.
Personal skills level is specified per user. Drop down list custom field named Skills Level are added to user detailed views and filled in in advance. To retrieve values of user skill levels use the following custom formula:
User.CustomValues.Text("Skills Level")
Fixed rates per Role
Rates per skill are common for all projects. Rates are specified as constant values in calculation formulas.
CASE WHEN User.CustomValues.Text("Skills Level") = 'Senior' THEN 130 WHEN User.CustomValues.Text("Skills Level") = 'Middle' THEN 110 ELSE 80 END
Rates vary per Project
Rates per skill are specified per project. Numeric custom fields for each supported skill are added to project detailed views and filled in in advance.
CASE WHEN User.CustomValues.Text("Skills Level") = 'Senior' THEN Project.CustomValues.Number("Senior Rate") WHEN User.CustomValues.Text("Skills Level") = 'Middle' THEN Project.CustomValues.Number("Middle Rate") ELSE Project.CustomValues.Number("Other Rate") END
Still have a question?
We're here to help! Just contact our friendly support team.