Software Development

Tracking and reporting your IT consulting hours

Keeping a detailed account of the work you do for clients doesn't have to be time intensive. Chip Camden shares two applications he created that make activity tracking a breeze.

 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!

About

Chip Camden has been programming since 1978, and he's still not done. An independent consultant since 1991, Chip specializes in software development tools, languages, and migration to new technology. Besides writing for TechRepublic's IT Consultant b...

27 comments
John Victor
John Victor

Compared to the other software available in the market, I would personally recommend Replicon's time card software ( http://www.replicon.com/olp/timecard-software.aspx ) for any type of business. This software is really the best that helps in preparing daily reports, maintaining invoices, keeping track of working hours of employees and organizing the various tasks and projects. It has best features and its functionality of creating consolidated reports with all the necessary information in just a few minutes.

avc
avc

Several things help me grab every minute of billable time. The first, implemented years ago, was an on-line time-and-billing system. Now I use Quickbooks Online Edition. Originally I used another service that had to be manually reconciled with my Quickbooks. The ability to record time wherever I am has helped me capture at least $1,000 I used to miss each month. More recently, I've added the voice recorder on my cell phone (now Blackberry.) This allows me to immediately note billable time even when I am not at a computer, such as billing for phone calls made while driving. Slip the memory chip out and pass it to my wife who transcribes the voice notes monthly. Finally, everyone for whom time is money needs to remember that little chunks of time add up. A dozen of those five-minute emails or telephone calls make up an hour.

DavidH68
DavidH68

I'm a bit late to the discussion, but there is a free product for your BlackBerry called BlackTrack www.blacktracklog.com that helps with the tracking of what you on that device. It sends you a daily or weekly log of our phone and email activity so that you can get that detail worked into your time tracking and billing.

Bryan F
Bryan F

I use a simple application called AllNetic Working Time Tracker (http://www.allnetic.com). It sits in your system tray and tracks your tasks. It can even prompt you to start or stop tracking your time based on whether or not you are actively using the computer. You set up a project with any number of nested subtasks, select the task to track, edit the time if necessary or manually add periods, and then print out reports with as much detail as you want using built-in or custom report templates. Very simple. It does cost $30, but the time it has saved me from manually compiling billable hours (and forgetting to note down start and stop times) has paid for it many times over.

MacLarenIT
MacLarenIT

Chip, you are a prince! Thank you!

zehawk
zehawk

I use Timesnapper (http://www.timesnapper.com/). Its a simple app that takes snapshots of the screen (active app) every configurable number of seconds/mins whatever works for you. Stores it in highly compressed pngs arranged by date. At the end of the week, I just play it like a movie, and I know exactly how long I worked on each project. Cant live without this little app now.

martink
martink

Thanks. Simple and neat if I want to do it that way.

PMPsicle
PMPsicle

My clients are all over the board. I've had clients who wanted to know the details, and others who wanted to know that you were in that day. So I use a multi-part spreadsheet. The first sheet is a simple timesheet showing the date, client, project, task, RST code (we have tax on some work), a charge-code if there is one, start and end times, and a comments area. The spreadsheet then calculates out the actual time spent (rounded to 15 minutes). The other sheets are used to prepare standard analysis of my time. The key is that I also have a standard sheet for each client which selects from the main sheet. Run the macro and I have a sheet of their work in their format which I can then have signed. If there's ever any question, I have the original sheet in greater detail than they normally ask for. I don't usually get questioned more than once! The only problem I've ever run in to are those clients who want the time entered into their own system (either a package like MS Project or a proprietary system). And typically, I fill in their sheet as a summary of mine. I've been meaning to write the sheet up as a program but there always seems to be something else to do. Of course, the advantage of the spreadsheet is that if someone comes up with something new I can always add a column (or tweak an existing one). Something I can't do with a program. Glen Ford http://www.TrainingNOW.ca

Tig2
Tig2

I worked for a client that wanted your time on each project broken down in 15 minute increments. The solution was simple. I created a five day workday worksheet and printed it. A LOT If I was doing administrative tasks, I had a code for that. Active work on a project came with a project number. If you used over eight minutes of my time, you were billed for a quarter hour. Between that and my email, I knew how to allocate my time over projects. A caveat- I had over 60 projects working at the same time.

ssharkins
ssharkins

Chip, your tracking software sounds great, and thank you for sharing it!

currell
currell

I have started to bill fee for service instead of by the hour. When you think about it billing by the hour is not really fair. There is no incentive for you to finish the job quickly in fact it pays you more to drag the job out a bit. If you quote a specific price for perform a specific job then the fast you complete the job the more money you make. Some bigger jobs may require multiple ?jobs? and as such multiple fixed priced contracts. You do have to be very specific in the scope of the work. Sometimes I charge a flat fee just to scope out the job if it?s a large project. I have found that clients love this. There are no surprises when they get bill and both parties now exactly what work is to be done.

Sterling chip Camden
Sterling chip Camden

You just have to decide how much information you want to trust to an online service.

Sterling chip Camden
Sterling chip Camden

... but it seems like it only runs on Windows. My JavaScript version doesn't have that restriction (though it also has no reporting).

apotheon
apotheon

"[i]I've been meaning to write the sheet up as a program but there always seems to be something else to do. Of course, the advantage of the spreadsheet is that if someone comes up with something new I can always add a column (or tweak an existing one). Something I can't do with a program.[/i]" That depends on how you write the program. Remember -- a spreadsheet application is a program, too.

Sterling chip Camden
Sterling chip Camden

... who has been using a spreadsheet for this. I agree, it's much more flexible. Of course, you pay for that flexibility with having to make sure you do things right.

Sterling chip Camden
Sterling chip Camden

No matter how good my time-keeping strategy, there is no way I could handle 60 projects at once. My heat shields start to burn up at about 10.

zehawk
zehawk

Ah, I dont.... I'd guess u wud ve to run a movie on each one.

cmiller5400
cmiller5400

Easy to do with some knowledge. .Net and xml are wonderful tools. I wrote a dynamic router configuration program that "learns" from the template file and automatically generates a tab that you populate with hostname, ip address etc. Saved the WAN guy hours of "cut and paste", and "find and replace".

Sterling chip Camden
Sterling chip Camden

which means that you get greater flexibility and fewer constraints -- which work for you or against you.

Tig2
Tig2

Toss in the PDA and you know how I did it. What can I say? It was the late 90's and all about Y2K. I spent so much time in the airport I probably could have had my mail delivered there. Only time in my life that ADHD came in handy!

santeewelding
santeewelding

I engage a consultant now. You let me look through him, in a manner of speaking.

apotheon
apotheon

The scope of a program can be greatly narrowed without giving up extensibility.

Editor's Picks