Reporting

Time tracking would not be particularly useful without some way to report on the time you are tracking. The rtimelog program has a number of reports, each serving a different purpose.

Detail Report

The report I use the most looks like the following:

  $ rtimelog report detail yesterday

This report shows the data for the given date grouped by project. Although the actual times are missing and the data is re-ordered, you can get a really good sense of where your time went with this report.

2013-07-01  8:08
  Admin          0:19
    Email                0:19
  Bar            0:05
    Help                 0:05 (Emma questions)
  Foo            7:45
    Code                 2:20 (database module)
    Code                 2:50 (processing module)
    ConfCall             1:02 (Team Meeting)
    Docs                 1:03 (working on manual)
    PerfTest             0:30 (processing module)

From this report, we can see that the part of the day we tracked was 8 hours and 8 minutes. Almost all of that was spent on the Foo project, on five separate tasks:

  • Code work on the database module
  • Code work on the processing module
  • Performance testing on the processing module
  • Documentation on the manual
  • Team conference call

We also spent some incidental time on email and answering questions.

Summary

Where this report really shines are those days that seems to be one interrupt after another. That was really the origin of the program for me. I found that there were days when I left work tired, but didn’t feel like I had accomplished anything. Looking back at this report showed the day taken up by dozens of interruptions.

Summary Report

Sometimes, the normal report is still too much data. Let’s say I only care about the aggregate amount of time spent on each project. I would then use the following command:

  $ rtimelog report summary yesterday

This report has no task information, it just reports the time on each project for the day.

2013-07-01  8:08
  Admin          0:19
  Bar            0:05
  Foo            7:45

If you only work on one project at a time, this report will not be very useful. However, I have found this report handy for as few as two projects. For example, handing off one project to another team, while beginning a new project. During the beginning of the hand-off, there are usually a number of meetings and interruptions helping the other team take over. It’s not always easy to realize how much time is spent on this kind of activity.

Summary

This report is most useful for people who need to track multiple projects every day. If you use the Admin pseudo-project described earlier, this can still be useful for recognizing how much time you are spending on non-project tasks. Those kinds of time-stealers are easy to lose track of.

Hours Report

Finally, you may only want the amount of time you spent for the whole day. That report is generated by the following command:

  $ rtimelog report hours yesterday

This just tells how long you were working. Sometimes, it is all you need.

2013-07-01  8:08

Summary

This report is particularly useful when you are looking at multiple days. Sometime just a report of the amount of time you have spent each day of the week is useful.

Chart

The report chart command gives a graphical representation of the time spent during the day as an HTML page. The data is displayed as a pie chart breaking down the projects worked during the day. For each project, there is a smaller pie chart for the tasks applied to that project.

Finally, there is a hourly bar chart showing the time in each hour spent on the various projects. The chart report for the example shows the output of this command.

I created this report specifically as an exercise after seeing some of the output from other time tracking programs. Although I use it relatively rarely, someone who is more visually-oriented might find this version more useful.

Summary

This report was a result of someone showing really pretty charts from a fancy time-tracking app. I have usually resisted adding features that I don’t see myself using a lot. But, I built this mostly to show how much this simple tool could do. I still don’t use it much.

Task Listing

The most detailed report you might run is to list all of the entries for a given day. If you executed the following command the day after the example above, you would get a list of the entries for that day.

  $ rtimelog ls yesterday

The output of this command (assuming only the commands from Example Usage) would look like this:

2013-07-01 08:02:15 +Admin @Email
2013-07-01 08:10:31 +Foo @Code processing module
2013-07-01 09:30:42 +Foo @PerfTest processing module
2013-07-01 10:00:38 +Foo @Code processing module
2013-07-01 11:30:22 +Foo @Code database module
2013-07-01 12:00:11 stop
2013-07-01 12:50:02 +Admin @Email
2013-07-01 13:00:21 +Foo @ConfCall Team Meeting
2013-07-01 14:02:43 +Foo @Docs working on manual
2013-07-01 14:22:03 +Bar @Help Emma questions
2013-07-01 14:27:06 +Foo @Docs working on manual
2013-07-01 15:10:20 +Foo @Code database module
2013-07-01 17:00:24 stop

Summary

This is the most detailed report, but it isn’t really useful for much. Usually, you want some form of summarized information. The other reporting commands take care of that.

Event Reports

If you are using the zero duration events feature of rtimelog, you might want to generate reports for those.

The report events command lists your events and the time that they were added grouped by date.

  $ rtimelog report events -p dog yesterday today

If you used events to track letting the dog out, the command could give a report of

2022-12-15
  07:50  +dog Backyard
  14:22  +dog Backyard
  18:33  +dog Walk
2022-12-16
  08:10  +dog Backyard
  14:32  +dog Backyard
  18:27  +dog Walk

Summary

This report is much like the ls report for tasks. No summary or calculations, just a list of the events.

The report intervals command lists the interval between events. So if you track replacing a battery in an outdoor camera, knowing the time since the last change would be useful.

   $ rtimelog report intervals -p camera october today

The above command might report

2022-10-07 19:20 +camera Battery : 29d 12:03
2022-11-06 07:23 +camera Battery : 26d 11:03
2022-12-02 18:27 +camera Battery : 20d 23:51

This shows that we’ll want to check the battery about a week from now.

Summary

The intervals report gives the time interval between events. This actually gives some useful information.