Time estimation and tracking


This plugin supports time estimation and tracking on tasks. Tasks are defined within the plugin and can be associated with existing tickets of the Trac project.

This plugin adds the following screens to Trac:

  • A Tasks admin panel, where tasks can be created and assigned a time estimate.
  • A Log admin panel, where users can log the time they spend on these tasks.
  • Visually display the amount of hours burned.

This plugin adds new permissions TIME_TRACKING that is required to use these panels and TIME_TRACKING_ADMIN to configure the plugin. Also two new database tables are added to store the tasks and log entries.

Screenshot: Tasks and estimation panel

Example screenshot of the ''Tasks'' panel

The rows link to Edit Task mode

Screenshot: Time logging panel

Example screenshot of the ''Log'' panel

The rows link to Edit Log Entry mode

Trac's reporting module can be used to define various reports that summarize these tasks and log entries. For reporting purposes tasks can be grouped into projects and categories, and log entries can record a location.

Screenshot: One of many possible reports

Example screenshot of a report

Tasks are created and estimated per year.

There is no formal connection between tasks and tickets. Informally links to tickets can be entered in the task or log descriptions.



Example: [[TimeTrackingChart(year=2014,user=pinky|brain)]]


  • width: Width of the chart. Defaults to 1200.
  • height: Height of the chart. Defaults to 600.
  • user: |-separated list of users. Defaults to all users.
  • category: |-separated list of categories. Defaults to all categories.
  • project: |-separated list of projects. Defaults to all projects.
  • task: |-separated list of tasks. Defaults to all tasks.
  • year: |-separated list of years. Defaults to all years.
  • mode: cumulative or activity. Defaults to cumulative.

Screenshot: Charts macro

Example sceenshot of the chart macro


Enable and register the TimeTrackingWeekPlanEventProvider in your trac.ini file under [weekplan] event_providers, and use the WeekPlanPlugin to display log entries. Specify the plan as log:username.

Example: [[WeekPlan(plan=log:pinky|log:brain)]]

Bugs/Feature Requests

Existing bugs and feature requests for TimeTrackingPlugin are here.

If you have any issues, create a new ticket.


4 / 5


3 / 4


Download the zipped source from here.


You can check out TimeTrackingPlugin from here using Subversion, or browse the source with Trac.


Installation of the plugin requires the usual step with easy_install:

  • Trac 1.4: easy_install
  • Trac 1.2: easy_install
  • Trac 1.0: easy_install

Then enable it in Trac's plugin admin page or in your trac.ini file:

timetracking.* = enabled

A database upgrade will be required as usual:

$ trac-admin path-to-your-trac-environment upgrade


Assign the new TIME_TRACKING and TIME_TRACKING_ADMIN permissions to the appropriate Trac groups / users, for example in Trac's permission admin page.

Create reports under View Tickets. You can copy from the example reports.

Optionally you can change some configuration options in your trac.ini file to hide or rename certain fields. The defaults are:

year = True
location = True
location.label = Location
category.label = Category
project.label = Project
spent_hours.default = 8
weekends = False

Recent Changes

17749 by lucid on 2020-05-17 10:19:40
TimeTrackingPlugin: Require Trac 1.4
(see #13820)
17662 by lucid on 2020-01-26 12:33:38
TimeTrackingPlugin: Don't use genshi.builder.tag
(see #13595)
17485 by lucid on 2019-09-03 20:39:50
TimeTrackingPlugin: Fix selected options.
Jinja does not remove attributes with value None anymore.
(see #13595)


Author: lucid
Maintainer: lucid

Last modified 2 years ago Last modified on Apr 27, 2022, 7:31:18 AM

Attachments (4)

Download all attachments as: .zip