I wrote a while ago about Billings and how it’s pretty okay but it’s missing a few key features that make it a half baked solution. The biggest selling point of Billings was that it doesn’t incur a monthly fee. One of the biggest issues with Billings is the crappy reporting features and I’m certainly starting to want better reporting for my business financials so I’ve started to look around at both desktop and web applications.

Today we’ll look at Harvest.

What is it?

Harvest is a web app that provides invoicing, estimating, online payments and time tracking. I’ve heard of it many times before and for no real reason decided that this would be the first application I tried out. Harvest didn’t provide an account or give me anything but the 30 day trial all new customers can get.

The Plans

One of the things I’ve always had a hard time working with for online invoicing applications has been their pricing plans. They’ve always had decent options if you’ve got 2 or 3 employees but few seem to offer anything useful for a cheap and busy solo freelancer. Luckily Harvest does have a plan I consider pretty reasonable.

For $12 USD a month you get unlimited clients, projects, invoices, online payments, and estimates. If you want to add a second user then it’s $10/month and you can add 3 users before they require you to upgrade to the next plan at $40/month, which includes 5 users. Adding a few extra people is a great thing since I’m starting to have the need to add a few people off an on for projects but don’t really need to keep them in my system all the time.


A sticking point in a few of the other systems I looked as was the lack of a workflow for the business. Sure you could track time and generate an invoice but online payment and estimating was left out. Missing those items meant that I’d have to have one solution for time tracking and another for estimates, or online payments depending on what feature was left out.

Creating and estimate with Harvest is really easy. Simply click the estimate tab and then create an estimate. Harvest estimates are free form, allowing a mix of products and services. It will look through your already entered clients so you don’t have to look up addresses multiple times. Harvest can automatically apply tax (user configured) to the invoices that require them and can invoice in multiple currencies. You can even apply a discount to the invoice if you’ve let a client talk you in to one.

Building a new estimate
Building a new estimate

Once you’ve sent an estimate to a client they can also accept the estimate or if you sent it to them as a PDF from your email you can mark it as accepted on the site yourself. If you keep track of the accepted and rejected estimates Harvest can give you a decent report about the totals accepted/rejected.

On top of the stock estimate options Harvest provides a bunch of customization. If the default categories of product and service don’t fit add a few more that do fit your scenario. If you don’t like the stock email they send to client then you can change it. Want to send estimates from a different email, you can set that up in too. Ultimately Harvest has a lot of flexibility with your estimate options so you’re not stuck with what the original app designers thought was the best option for you.

Once an estimate has been accepted you obviously have to start working on the project. Unfortunately Harvest doesn’t have a way to just ‘flip’ the estimate in to line items that you can track time against. As such you’ve got to create a new project and then new tasks so you can track time against them. While creating a project, Harvest allows you to pick a client then name the project, since most businesses do multiple projects for a single client this seems like a good move. You can choose to bill by task hourly rate, person hourly rate, project hourly rate or don’t apply an hourly rate. If it’s an internal or personal project you can also mark it as a non-billable project. Marking things non-billable is needed so you can really dig in to the reports later.

Harvest also supplies multiple ‘budget’ options. You can set the number of hours per task, total project hours, hours per person, or total project fees and get emails when you are getting within 80% (user defined) of the budget.

creating a new Harvest project
creating a new Harvest project

Once you’ve set the basic project up you can set tasks for the project. By default Harvest has two non-billable tasks per project and after that you can add as many other tasks as you want. You can also set which people will be working on a project and what their hourly rate it. Once you’re done this your on to tracking time against the project.

When it’s time to actually track your time Harvest provides a number of options like an OS X/Windows widget, the website, an iPhone and Android application. There is even a third party Windows Phone 7 application that works with the Harvest api. One thing that piqued my interest was the integration with Beanstalk(aff link) of which I am a user. On a commit you can define the task and time for a project and it will get sent to Harvest.

One things that’s pretty decent with Harvest is the ability to track billable vs non-billable time. To really get good numbers on this you need to be faithful. I should be recording the time I’m using to write this blog post as non-billable business development time (since it’s advertising me in some fashion) but I’m not, so I’ll admit I’m not getting the full power out of this that I could be getting. If you’re more diligent than I you could get some seriously good (or sad) numbers on how much of your working time is actually billable.

Weekly time reports show how much you actually billed
Weekly time reports show how much you actually billed

Many types of reports are easily generated. The standard view shows you how much of your time this week was spent on billable vs non-billable time as well as the total billable dollar value for the week. There are prebuilt options for monthly, semi-monthly, quater and year as well as the option to custom define the reporting cycle. You can also break down each report by clients, projects, tasks or staff, all of which can provide great metrics if everyone is on board recording the time.

For you monthly fee Harvest also includes invoicing. When you’re done with a project simply go to the ‘Invoice’ tab and then create a new invoice. Creating a new invoice is simply a matter of selecting the project you want to invoice for and then whether you want to base it on hours and expenses or start with a free form invoice.

Once the invoice is created you can send it to the client via the web interface, download it as a PDF, print it, duplicate it, or even create a recurring invoice which is awesome if you’ve got a client on retainer. Viewing the main invoice page also give you a report on which invoices are paid or not paid.

Harvest invoice report
Harvest invoice report

Typically with a project I take a 50% deposit to ensure the client is invested and to finance the up front time costs associated with the project. Harvest provides an interface to keep track of your retainers on projects. When you’re invoicing just remember to deduct the retainer amount from the invoice by entering a negative number and you’re off to the races.

The final stop in a full workflow is getting paid. Harvest allows online payment through PayPal by default but there is the option of a few other gateways like TrustCommerce, Authorize.net, and LinkPoint. Payments made online are automatically recorded in to your account which save you manual entry and mistakes.


There is a lot to like about Harvest, like it’s budgeting features. Even if there are hourly items in an estimate I don’t like to go over budget on clients, and they don’t like it either. Harvest lets you set a budget for a project and will email you when you get within a user define percentage of that number. Even if you’re not 100% on top of how much time is being spent on items in the project the budget email is a good reminder.

I’ve said in previous posts that web apps are great for their ‘accessible everywhere’ features and desktop apps are great for the full keyboard control you can have by running a native application. Harvest tries to make the desktop experience better by providing a desktop widget for OS X and Windows. This widget allows you to add time (and run a timer) without needing access to the website. It just sits in your dashboard doing it’s thing ready to record your time. Then add the iPhone, Andriod and Windows Phone 7 tracking options and you’ve got any option for tracking you could want.

It’s awesome that you can set the hourly rate for a project by the employee or the task. Again this flexibility means Harvest will fit almost any company and how they bill for projects.

The robust API provided by Harvest is also something to rave about. Since the API is great many of your favourite services already interface with Harvest. You can see a full list of services/application on their site. If you’re finding some of the reports limiting you can just write something to hit the API and get the reports you want. The big thing is that they don’t throw data away so you can get at it later.

Not So Good

Like pretty much any freelancer I know my work is a mix of flat rate items and hourly work. In any given project there are line items that are flat rate (design typically) and things that are hourly (troubleshooting servers or training). Unfortunately Harvest doesn’t really deal with flat rate line items at all. What I really need is the option to charge flat rate for an item and then track time against it at my hourly rate to see if it’s really the proper amount for me to charge. Any freelancer I know has the same need.

After emailing Harvest with the flat rate item question they suggested that I set budget by billable hour per task. So I could set a task to have 12 hours and when I’m getting within 80% of that number Harvest will email me. Then when it comes to invoice time I’d simply add an item with the flat rate and remove the item that was hourly. Sure this is an okay work around but what it’s missing is any type of reporting. Over the course of a year, month…I want to see if my flat rate billing is actually working out. Unless you’re able to actually track time against a flat rate item this is still a missing feature, and one of the features I’d love to see in Billings (which has a similar work around that means no reporting).

As I said in the beginning I’m looking for better reporting features and while Harvest does provide reports on time tracked that’s billable and non-billable you can’t save any custom reports. One report I use often is to see how much time I’ve billed in the current day and Harvest doesn’t provide that one in it’s standard reports. Yes you can use the custom report to see the numbers but you can’t save it so get ready for continuous clicking to generate it any time you want to see it.

The way Harvest handles tasks also seems to be less than desirable. As far as I can tell as you add tasks Harvest just keeps adding them to the overall task list. While I certainly see the need to store often used tasks like ‘Theme Development’ I’m not sure that I’ll need to use tasks like ‘Troubleshooting Podcast’ regularly enough to offset the task list clutter. I think it would be a much better implementation to have the ability to ‘save’ tasks that are used often then the list wouldn’t get overwhelming and you’d still have some time saved on the tasks that you use all the time.

long list of Harvest tasks
long list of Harvest tasks

On top of the really long list of tasks Harvest has no way of setting a ‘blueprint’ task. For me designing a WordPress site costs the same amount 99% of the time so it’s silly for me to have to enter the same text for it on an estimate then transfer the same line item to a project. While it’s not a deal breaker repeating work is a waste of time, and wasting time means I’m not billing it to clients.

While Harvest has retainers it seems to me that it’s a half done feature. Sure you can record them buy you’ve got to remember to apply them to a project. Unlike Billings where you’re prompted about retainers Harvest just leaves it to your memory. While I’m sure most clients would notice that the retainer wasn’t deducted from the invoice it certainly doesn’t look professional to send them an invoice and have to correct it. If Harvest prompted you about the retainer it would go a long way to improving the chances you won’t forget.

Is Harvest Right?

After reading the last 3000 words the real question is whether Harvest fits your business or not. I’m a bit on the fence still. The big things I’m looking for is tracking of flat rate items against the hours I spend on them. In that respect Harvest doesn’t really have a solution. In all honestly though that’s my only issue with it. I love the reporting of billable vs non-billable items, there are lots of options about how you’re going to track your time. I’m not sure that it provides enough for me to justify the monthly expense. I’ll admit I don’t like paying for things monthly, even though Harvest has a great pricing structure. At this point it’s certainly the front runner for my business but it’s not good enough to stop my search.

At the end give Harvest a try at least for the 30 day trial and see if it suits your needs.

5 responses to “Harvest Online Invoicing & Time Tracking”

  1. Sri Vemuri Avatar

    Hi Curtis!

    This is Sri from Harvest. Thanks for writing a detailed overview of Harvest! Invoice customization is definitely on our radar.

    Re: reports, have you tried using Scythe with Harvest? Scythe is a menulet app for Harvest that lets you keep an eye on what you’ll be billing at the end of the month. No continuous clicking necessary. You can check it out here: http://falesafeconsulting.com/scythe/

    And do let us know if you have any questions during your search!

    1. curtismchale Avatar

      No I didn’t see that add on at the time and it looks decent. I’ll have to take a look and update the review.

      If there is anything else I missed that may make my mind change please let me know.

  2. Mario Avatar

    Hi Curtis,

    I’ve been using curdbee for my invoicing all this time and they launched time/expense tracking recently, where I took part in their beta phase. After reading your review and the main problems you have outlined, I do agree they are quite useful for any freelancer.

    Though I am not sure whether curdbee fits your workflow exactly as you wish, I have been using it for similar cases in my day to day work and it has worked pretty well for me all this time.

    You may give it ago and see for yourself whether it meets your demands. 🙂

    • mp
    1. curtismchale Avatar

      I did use Curdbee for about 6 months and while it was a pretty good solution I’m not using it now. I don’t actually remember why I stopped using it outside of the cost maybe since I was using it just as I was launching my business on my own. It’s on my list to look at again.

    2. curtismchale Avatar

      I did just take another look but unfortunately you can’t actually try the whole workflow estimate->invoicing without paying. Not sure I really want to fork out a bunch of $$ for something that may not actually suit my needs. I got in contact with them to see if there is a way to trial it more than the demo since you don’t really know how anything truly fits till you’ve been at it for at least a week.