Time Tracking Recipe: Creating a billing report Follow

One reason why we clock the time an agent spends on a ticket is to see how productive they are. Another is to see how much time your business should be paid for its time.

In this recipe, we’ll go over how to create a billing report.


  • Total Time Spent metric (found here )

The Total Time Spent metric measures how long your agents spend updating a ticket in minutes. Since most rates are hourly, rather than by-the-minute, we'll want to convert the Total Time Spent metric to display this value in hours. To do this, we'll use the following metric. Let's call it "Total Time Spent (Hrs):

After you create the metric above, we'll need to make the metric to calculate the amount due for each organization. We can accomplish this with the following metric, which we'll call Amount due from organization:

Please note that in the metric above, "####" is being used as a placeholder for a number that represents your hourly rate.

With the metrics built, we can then build the report. In this example, let's say that your billing rate is $35 USD/hr. So the metric we're using in this example will look like this:

When you build the report, it will have the following content.

  • Total Time Spent (hrs)
  • Amount due from organization


  • Ticket Organization
    • Make sure you use "Ticket Organization" rather than "Organization"
    • The "L" indicates that the orientation of the attribute will be to the left.

Once everything is set, you'll see something like this:

Since the amount due is a dollar amount, we can indicate this by editing the number formatting. To do this, click on the Show Configuration link on the right, and under the formatting section, click on Customer Number Formats .

Once in the menu, add the "$" symbol at the beginning of the text box for the Amount due from organization metric. You can also add a space and any other currency symbol at the end of the text box as well. Click Apply button to apply the changes. It'll look something like this:

If you want to see the ticket break down for each Ticket Organization, you can add the Ticket ID attribute in the "How" section of the report, and make sure it's set to "L." Once that's added, you should see something like this:

GoodData has some built-in report functions that are extremely useful here. One of them is the Sum function. Right-click each of the metrics and select Sum > by Ticket Organization .

This will give you an additional row for sum of the Total time Spent (Hrs) and Amount due from organization metrics for each organization, like in the example below:

Chances are you'll want to specify a reporting period on your report. In this situation, I would recommend using the Date (Ticket Solved) attribute, as you'll want to bill your clients when their issue is resolved. To do this, click on the Filter button and select the Select from a List of Values (including date ranges) option.

Once in the filter settings, we'll select the Month/Year (Ticket Solved) attribute for step 1. For step 2, we'll select last month from the Select floating range section on the right:

Click Apply to add the filter to the report. What this does is restrict the report to include only tickets that were solved in the previous month. You can always choose your own reporting period by changing the date attribute used in Step 1 of the filter settings.

Have more questions? Submit a request


  • 0

    Thanks this is great, what about if you want to bill on a monthly basis not just when a ticket is resolved. We would then need the time spent for that month to be billed not the total time.

  • 0

    @Chris - instead of using the "Month/Year (Ticket Solved)" attribute in the report's filter, you could use "Month/Year (Event)". That would filter the report to only include events that happened in the selected month, regardless of when the ticket was created or solved. Hope that helps!

  • 0

    @Brent, thanks that is what I am doing. It looks like there is only a total time spent value and that's all so there is no value for each month that we can use. If your ticket does not complete within a billing period it won't work. Looks like some XLS manipulation of data is required.

  • 0

    Wow this was just what I was looking for, thanks!

Please sign in to leave a comment.

Powered by Zendesk