Like many consultants, I usually bill by the hour; this means, strangely enough, that I need to keep track of how many hours I actually work for each client. When I’m on a client’s site, that’s a pretty simple equation: departure time minus arrival, minus any time spent on other matters (calls from other clients, blogging, hitting on the Administrative Assistant [just kidding — never go there… anymore]). But I’m rarely on site — I perform most of my work remotely. While this allows me to easily shift my attention between projects, it also requires me to apply more energy to tracking my time.

I’m glad that I don’t have any clients that require a level of detail that includes actual start and stop times. All of my clients are satisfied with a total number of hours per day, though some of them want that broken down by project. So I find it useful to keep a stopwatch for each separately reported activity. As I switch between projects, I stop one and start another. At the end of the day, I record the totals for each activity.

Now, I bet you’re thinking, how many stopwatches does Chip own? How does he keep track of which stopwatch belongs to which project? Where does he find the desk space for all of them? What if his mouse hand knocks one off the desk and into his foot bath? (That last one is easy: I don’t use the mouse).

Seriously, I’m not talking about physical stopwatches here. Welcome to the 21st century — I keep all my stopwatches on a tab in my browser, using a little JavaScript application I whipped up. You can use it, too — or you can download it and host it yourself. If you’d rather run it on your Windows desktop, I created a C# version a few years ago. The JavaScript version lets you add stopwatches to the page; for the C# version, you just launch the application once for each stopwatch. Both versions include an edit field for a description, so you can keep them straight.

In a perfect world, these stopwatches would include the ability to submit the data to a server application to record time directly to your books, but I haven’t taken it that far yet. What I do now is manually transfer the totals, rounded to the nearest quarter hour, into a spreadsheet that I maintain for each client. No, I don’t use any pre-packaged accounting software; I’m pretty low-tech in that department. But I rarely have more than five active clients in any given month, so my mostly manual invoicing procedure still takes only about half an hour.

All of my current clients are happy to receive their invoices via e-mail as a PDF attachment. Typically, I divide the invoice into two pages. The first page summarizes current activity, prior balance, payments received, and total balance due. The second page provides the detail for the current period. The reason for this division is that most clients have a separate Accounts Payable department that doesn’t want to be confused by too much detail. They’ll end up with the summary page. Whomever I report to for project status is more interested in the hourly detail. They’ll use that information to track the cost of specific projects and to confirm that I’m actually working on what they want me to be doing.

How do you keep track of your hours? What level of detail do your clients require?

(This post was inspired by part of a discussion thread on my last post, Customizable IT consultant sample contract — with a nudge from Chad Perrin.)

Get weekly consulting tips in your inbox
TechRepublic’s IT Consultant newsletter, delivered each Monday, offers tips on how to attract customers, build your business, and increase your technical skills in order to get the job done.
Automatically sign up today!