Ask HN: How do you keep track of billable hours?

27 points by britknight ↗ HN
I'm starting next week at a software consulting firm, and I wanted to know your thoughts on strategies is for keeping track of time spent on various clients' projects. A text document? An Excel spreadsheet? An app? What, in your experience, works best for you?

Cheers, and thanks in advance for your advice.

52 comments

[ 0.26 ms ] story [ 115 ms ] thread
Freckle ftw, it is great.

However now I just bill all my time as manual hours through oDesk, because it automates the accounting and payment side of things.

Yes! In particular, Harvest for Mac: http://www.getharvest.com/mac.

Killer features: - Start/stop timing in one-click or keyboard shortcut - See exact time in menu bar: https://www.dropbox.com/s/d56zb9ryffik7ey/Screenshot%202014-... - Idle time detection - leave your computer with timer running. When you're back, Harvest asks "You've been gone 15 minutes, should that time be counted?"

Still hoping for: - better offline support (can't stop timer w/o internet access, which means a bit of mental work when working offline on the Caltrain).

Harvest is free for up to 2 clients. I used them for 6 months free before I upgraded to add on a third client. Definitely worth it for me.
I'm a fan of Toggl http://toggl.com We use it at our consultancy and it works well for our needs (freelancers, employees, different projects, reporting, invoicing)
If you are joining an existing consulting firm and they don't already have a really good system in place you should probably run screaming in the other direction because that means it's probably a very poorly run firm and not long for this world. Tracking hours and billing efficiently is how you stay in business.

That said, I like the harvest timers (server side state, configurable idle timeout) for the granularity and the fact there is an add-on for the Xero accounting system.

Get yourself a copy of Telestream's Screenflow and record your screen when working. At the end of the billing period, simply scrub through your recordings to build your invoice. Don't mention this to your client as they may request to see them! But if they ever dispute an invoice you'll have no problem winning that battle :-).
Scrubbing through 60 hours of text editor footage every week -- are you serious?
pen and paper. that I then I enter into my billing software.

I feel you judging me. stop.

Tough to beat pen & paper as an easy to use UI.
Pen and paper requires manual subtraction: time finished - time started. An easier UI would be a button to press at start and at finish; the subtraction being done automatically.
The UI needs to be more complicated than that. I've forgotten to note the finish time, and have needed to update things after the fact. Suppose, for example, that I've forgotten to exclude lunch from the timing system. With a pen&paper system I can mark "(lunch, 45 minutes)" after the fact. There are plenty of computer-based systems which can do the same, but their UIs are more complicated than the one you just outlined.

Also, with pen&paper billing is usually quantized to 10 or 15 minute intervals, which makes it easier to do the arithmetic.

http://paydirtapp.com has a convenient Chrome extension that reminds you to clock in, based on a page matching filters you define. It also has uses server-side state, which can be handy across multiple devices or VMs.
It's probably not important to track down to the second. So no real need to use a timer app. Most important thing is to track it every day. Don't fool yourself into thinking you'll take care of it at the end of the week. You'll never remember what you worked on, then end of the week turns into end of the month.

Just be diligent. And it's tough to beat pen & paper as a good UI.

Google docs. If I forget to record it I reconstruct the history from Git logs and Moves app.
I feel almost ashamed to admit it being a SharePoint consultant and all but I use Emacs Org Mode. I keep my org files on Dropbox so I can switch between devices.
Freshbooks - https://chrissturm.freshbooks.com/refer/www with the ChronoMate add-on. Run multiple timers, add notes, track based on client, project, and task, you tell it how to round time up or down, and in my experience, it even keeps time through a system crash and un-expected restart. When it comes time to bill, 1 click to generate an invoice with the option to include any related expenses. You also get to see when the client views your invoice, so you know they saw it, plus it has customizable reminders if they haven't paid in XX days. Easy to add in Stripe support to get paid with a credit card. It's one service I'm happy to give my money to.
I've been looking at the same thing lately - recently switched jobs trying to make a few things a little more efficient for the team. One tool which has peaked me interest is http://www.timelyapp.com. Start and stop times don't matter, only the amount of time spent on a project, which is nice. It also allows to preschedule time and track estimated vs done and how you are sitting on time / finance budgets.
I use a custom Emacs mode [1] that a friend of mine originally wrote. I generally have 1 file per client, and the mode allows for tagging of different time sheet entries, which it can then use to calculate line items on invoices.

A lot of Emacs users I know use org-mode instead, but I've always felt that was "inside out". Hours mode is more like a work diary and that makes more sense to me.

[1] https://github.com/galvanix/hours-mode

I use Project Hamster from the gnome project (I'm a linux user). It's free, integrates nicely with my desktop and is always available (unlike web based time trackers). It uses a sqlite database which is a nice plus (I also synchronize the database file over dropbox so I can share the time tracking on my other machines).

At the start of a new month I export the time reports for the previous month from hamster as XML which I then import to my custom billing engine (I tag each task in Hamster by client name). This then gets converted to a time breakdown on each client invoice. Clients can then view a detailed breakdown of the billed work at per minute granularity along with descriptions of each subtask.

I created a custom spreadsheet[1] that performs various calculations[2].

Download: http://www.mediafire.com/download/i30sbhkeqacci42/timesheet....

To use it:

    1. Configure the CONST worksheet values per client.
    2. Tweak the HOURS worksheet values as necessary.
    3. Switch to the worksheet corresponding to the current month.
    4. Enter a start time (in 24-hour format) in the Start column for the work day.
    5. When finished working, enter the stop time in the End column.
    6. Add activity notes; use column I for task numbers.
    7. Switch to the Invoice worksheet at month end.
    8. Type CTRL+a to select the Invoice worksheet contents.
    9. Export as PDF.
    10. Email PDF to client.
    11. ???
    12. Profit.
Create a directory structure with the current tax year and create one spreadsheet per client within that directory (e.g., "2014").

[1]The spreadsheet uses LibreOffice Calc--it will not work in Excel without modifications to the cross-references.

[2]There are only five time-slots per day; if the day is broken up further, perform some time math to use only five segments.