Estimation and Time Tracking

Demo Site | User Manual | Open Tickets | New ticket


This plugin adds estimation and time tracking to Trac. It basically adds CustomFields and CustomReports and an interface for filling the dynamic variables for the report. This plugin requires Javascript to be enabled.

Supported Versions

This plugin has been tested on:

  • Python >= 2.5 and perhaps more recent versions of Pythons will work on older Trac versions.
  • Trac >= 0.10: because we are using ITicketChangeListener this plugin is only compatible with Trac >= 0.10.
  • Database, should support all three major open source databases:
    • SQLite3 >= 3.6.8, required for SAVEPOINT calls to work
    • MySQL
    • PostgreSQL
  • Genshi:
    • for Trac 0.11 you need Genshi >= v5
    • for Trac 0.12 you need Genshi >= v6 (Trac installs this automatically)


Bugs/Feature Requests

Existing bugs and feature requests for TimingAndEstimationPlugin are here.

If you have any issues, create a new ticket.


237 / 244


68 / 79


5 / 5

Download and Source

When downloading these files then either the extension is lost or the filename corrupted. A simple rename to seems to resolve it and the contents remain intact.

Note: Email Notifications are currently unaffected by permissions, see #10318.

Browse the source

Older Versions

Download the source using Svn:

Download the zipped source:

Browse the source using Trac:

In the repository there is a script folder 0.12/0.11 that contains some Python files to perform billing queries across an entire directory of Tracs and email the results to a specified address. As these work in my setup, some paths at the top of each file may need to be changed. These are mostly included because I wrote them for myself and thought others might want to perform similar tasks.


To install this plugin follow these steps:

  1. The plugin can be installed either for a single project or globally. See the details on how to install a Trac plugin at TracPlugins.
  2. Enable the plugin in your trac.ini file as follows:
    timingandestimationplugin.* = enabled
    • Alternatively, this can be enabled in the Web Admin section of the website as well.
  3. Run trac-admin /path/to/projenv upgrade and you should get a message like this:
    Timing and Estimation needs an upgrade
    Upgrading Database
    Creating bill_date table
    Upgrading fields
    Upgrading reports
    Upgrading usermanual
    Done Upgrading
    Upgrade done.
  4. Restart your webserver.



By default, the TimingAndEstimationPlugin's four components will all be active. However, you can disable some of the components if you want to. The easiest way to do this is to ensure you have the trac:WebAdmin plugin installed.

The plugin's components are:

  1. TimeTrackingSetupParticipant: required component.
  2. TimeTrackingTicketObserver: ensures that the "Total Hours" values are updated when a user edits a ticket's "Add Hours to Ticket" field. You would not normally want to disable this component.
  3. TicketWebUiAddon
  4. TimingEstimationAndBillingPage

Permissions (Trac >= 0.11 only)

Email Notifications are currently unaffected by permissions

Post Commit Hooks

The scripts folder contains various post-commit scripts. The svn and git post receive/commit hooks call the script with the correct command line arguments (see #8737 for more information and an alternative single file git-post-receive). There are a simple, a simple git-post-receive, and a more complex that tries to ensure that each commit is sent to Trac only once (by default moving a commit from one branch to another will cause the comment (and time) to be reposted to Trac, resulting in unintentional extra time on tickets.


  • There is an uninstall script in the scripts folder that tries to make uninstall easy. It is not guaranteed to uninstall everything, but it should get you most of the way there.
  • See #995, an old uninstall ticket, which might provide some insight.


Related Plugins

Interacting with T&E

If you want a plugin that you are writing to add reports to the management page, there is a file,, that should make interacting with its reports easier.

Recent Changes

17249 by bobbysmith007 on 2018-07-30 16:26:11
Change db backend import stuff to allow running without all backends installed re #13462
17107 by bobbysmith007 on 2018-04-09 17:22:27
1.5.9(b) - fixed Decimal cast in ticket_daemon re #13405
17096 by bobbysmith007 on 2018-04-05 15:41:39
Fix hour summing in reports to not round partial hours

version 1.5.8(b)

re #13405



Author: bobbysmith007
Maintainer: Russ Tyndall

  • Aquafold has provided a license to their excellent Aqua Data Studio application to help further development

aquafold logo (sponsor of plugin)

logo of sponsor: Obsidian Software

  • Alessio Massaro: wiki:masariello
    • Helped Get Reports working in postgres and started moving toward generic work rather than hours
  • kkurzweil@…
    • helped postgresql database backend compatibility
  • Jonas Borgstrom : t:wiki:JonasBorgstrom
    • made it so that base_url was unnecessary
  • Colin Guthrie
    • Refactored custom reports stuff into a single class/module that can be copied to other plugins, to make interaction with T&E easier.
  • David Abrahams
    • Trac.11 - Stream filters to prettify the Reports Screen and make TotalHours not editable
  • Tay Ray Chuan
    • Added a stopwatch to the ticket pages
  • Josh Godsiff, for Oxide Interactive
    • added props table client reformatting to remove extra whitespace
Last modified 2 years ago Last modified on Apr 21, 2022, 2:36:44 PM