For the next iteration of the TrackRecord system, I would like to see the addition of a concept of "Purchase Orders". These will be registered in the system and managed in a similar way to projects, tasks and users at present. This is how I'd want it to work...
A manager creates a PO, which has an unique ID and an associated customer. It also has some descriptive textual string (e.g. "FooCorp Porting Project - May 2009"). Finally, a PO has a number of hours associated with it.
When creating a task, it can optionally be associated with one or more POs (actually, with zero, one or two POs, to be precise).
In the reporting code, there would be a new report type which allows a PO to be selected. This report would give the following headline figures:
Total PO cover: [PO hours]
Total work: [Number of committed + uncommitted hours in
tasks associated with the PO]
PO remaining: [first number minus second number]
It could also break down the PO in a table below the headline figures, showing which users have logged hours against the PO, along with the number of hours they have logged on those tasks.
The reason why you'd want to have a task associated with two POs is because one would be the PO cover for a project (phase) from the client and the other would be the PO cover we have with a contractor to do their part of the project (phase).
Thus, you can see either how a contractor is doing against their individual PO cover, or you can see how the project as a whole is doing against its PO cover.
Doing this via exporting reports from TrackRecord is the current state of play, but it's fiddly and error-prone plus quite a lot of negative work. To put some up-front work into TrackRecord to do the above would provide significant savings of effort over time.