APLawrence.com -  Resources for Unix and Linux Systems, Bloggers and the self-employed

Time and Billing

© May 2019 Anthony Lawrence
money photo
    Photo by Refracted Moments

Tracking time and getting paid for that time is often a problem for consultants. It's easy enough to keep track of time when you are physically at some customer's site, but when you are working in your office and switching from one thing to another, that may not be so easy. And then you have to actually get paid, and that's not always easy either.

Tracking Time

The easiest way to track time is not to track it at all. Automobile repair shops typically do that: there's a "flat rate" for common procedures. Each task is estimated at a certain amount of time, and that's what you pay for, no matter whether it actually took more or less. A computer consultant might offer a flat rate for an OS upgrade or for doing certain types of maintenance. Of course you need to be doing a lot of whatever it is to have this all even out to good income for you, so be careful setting such rates.

Another way not to track time is to have a yearly or monthly retainer that covers any and all work. I do that for many of my clients: they pay a yearly or monthly fee and can ask for help with anything they need during that period. I don't need to track the time I spend on them and they don't need to worry about how much a particular issue might cost them. That may sound like a recipe for disaster, but it actually works out very well for me and the customers. For me, it's often "money for nothing"; for the customer it's an insurance policy that says I'm standing by ready to help when needed.

But sometimes you really do need to track time, and that can be hard if you are doing small amounts of work here and there. I really recommend that you consider trying some sort of all inclusive fee for these situations, but if you can't, you'll just have to buckle down and track the time.

In some situations, it's not so bad. If I'm doing remote work on a Unix or Linux system, the "last" command can show me how long I've been logged in (assuming I haven't forgotten to log out, of course). If I'm working on my own systems and am doing command line work, I can start a new terminal session for that work and "last" again will tell me how long I've been at it. For other work, I can just use "date" to record when I started and stopped. There are plenty of commercial time tracking programs designed to make this easier; I've never found any need for them myself (though that's probably because a lot of my business is through the retainers mentioned above). You can even find Linux and Mac tracking tools.

It wouldn't be hard to roll your own tracking system. This little Perl script could get you started:

while (<>) {
  finish() if $project ne $_ and $project;
  exit if not $_;
  $project = $_;
sub finish {
  $total=time() - $start;
  printf "$project used $total seconds, %5.2f hours, %5.2f minutes\n",$hour,$min;


We do need to get paid, don't we? It always surprises me that so many consultants screw up this part of the job.

First rule of billing: bill early. The sooner your invoice is in your customer's hands, the sooner you get paid (all else being equal). Moreover, the earlier you submit your charges, the less chance of misunderstanding and argument ("No, you weren't here for six hours on the 25th!").

Don't wait months to send your invoices. I really suggest invoicing upon the day the work is done - no later than the end of the week. Why? Because if you let this stuff pile up, you'll have a lot to do. You won't want to create 30 invoices at the end of the month; you'll rush through it and you'll make mistakes. Do it as it happens. Many of my clients joke that my invoice arrives before I could get back to my office - that's pretty close to true.

Next rule: state everything clearly. Right off the bat, the bill should say INVOICE in big letters right at the top. It needs a date, and it needs terms. My terms are always Net 10 - that means I expect to get paid in ten days. Most clients will ignore that and pay within thirty, but some will pay attention. The sooner I get paid, the sooner I have money - that's a pretty simple concept, isn't it? I like money, you like money: get it in your hands as quickly as you possibly can.

If you were given a purchase order, make sure you reference that. If not, reference the person for whom you did the work or the person who explained what needed to be done. Very often invoices go straight to Accounting and if they know nothing about you, your invoice can get kicked around for weeks while someone tries to figure out whether to pay it. Make it easy for them to find the person who can approve it.

Include information about you, also. Contact telephone, fax (get a fax to email account if you don't get faxes frequently - or even if you do), email, and of course postal address (you want your check mailed, right?). If this is the first time you've invoiced this customer or if you haven't done business with them in a few years, include any government forms that might be needed. For example, if you aren't incorporated, U.S. companies will need a W-9 form. If they have to chase you for it, that just delays your payment, so include it with the invoice. I always throw in a few business cards too - it can't hurt, and may help.

Make sure they can understand what you are billing for. The level of detail may vary from client to client; for example I have people for whom I've done on-site support for many years - a simple "12/15/2007 4 hours at Boston office" is fine for them. But with other customers, and especially new customers, you need to be specific. I like to have a generic line that might not be much more than that "4 hours at Boston office" but then follow it with a more detailed paragraph. That lets the person who already knows what you did skip the detail, but it's there if someone else questions it. In some cases, I may even attach another document that fully describes a complex project; in that case the invoice references that document.

Look Professional

Don't send hand written invoices. Do use a logo on your invoices. Use envelopes with your return address on them. I use a postage meter - not because I send so many bills that I need it, but because it looks neat and professional. It's cheap enough - I think I pay around $15.00 a month to rent it (maybe less). You can download postage too - that looks better than stamps and can also expedite your mail delivery..

I have a customer who sends me handwritten checks in second hand envelopes - envelopes that he received mail in and is now reusing to send me a check! I hope he doesn't do that when he's sending invoices..

Follow Up

As I mentioned above, I ask to be paid within ten days. I don't start chasing people until the invoice is over 30 days, but I definitely don't wait any longer. After 30 days, a statement goes out showing that the payment is over due. I use QuickBooks to create the invoices and the statements, so that's very easy to do. After 45 days, I send email to my contact asking them to help expedite my check, and if it gets to 60 days, I'm on the phone tracking down the problem. That rarely happens, and when it does, it's usually because the Post Office has lost either my invoice or the check, but either way you have to get involved. Don't ignore late payments, jump on them immediately.

Once in a great while you will have a problem where somebody won't pay you. If it's your fault, take it for what it is: you screwed up and really you don't deserve to get paid. More likely, it's a misunderstanding: do what you can to clear up whatever that is and maybe you will get paid. And then sometimes you'll just get somebody who is going to stiff you no matter what. I wouldn't lose a lot of sleep over that: I've billed literally millions of dollars in the past twenty five years and have lost less than a thousand dollars to people who refused to pay. That's completely unimportant and honestly I don't even remember who they were. I certainly don't mean to imply that you should just roll over and let people take advantage of you, but if you've done all that you can do, just let it go. Life is too short, isn't it?

In summation, make it as easy as possible to get paid quickly and you usually will, but when something goes wrong, attend to it quickly. The longer things drag out, the more confusing and difficult they become.

Best of luck to you and go get those invoices in the mail!

Got something to add? Send me email.

(OLDER)    <- More Stuff -> (NEWER)    (NEWEST)   

Printer Friendly Version

-> Tracking time and getting paid


Inexpensive and informative Apple related e-books:

Take Control of OS X Server

Sierra: A Take Control Crash Course

El Capitan: A Take Control Crash Course

Take Control of Preview

Photos: A Take Control Crash Course

More Articles by © Anthony Lawrence

Wed Mar 5 03:14:51 2008: 3782   jtimberman

I work for a company, but I do work on several different projects, and need to track my time accordingly for weekly and quarterly reporting reasons. I use a program called TimeTool for this, which is Windows based, but will run on Linux in WINE.


Wed Mar 5 12:10:53 2008: 3783   TonyLawrence

Thanks - I know there are hundreds of them, but it's always good to hear personal experience.

Thu Mar 6 15:11:07 2008: 3788   Donal

My problem so far is that every time tracking tool I have found will NOT allow double booking of time. I know it's against all accounting procedures but hay those things were not written for people with large screens and monitoring installs etc. I am often doing 2 or 3 jobs for separate customers at the same time and need to bill full time against each. So far the only good tool for that is Excel!

It was very good advice on billing and following up on unpaid bills. I always find that if a finance dept is dragging it's heals to go back to a friendly engineer in the company and tell them your story of none payment. They generally really appreciate your effort to provide service and will seriously kick someone's ass to get the $$ moving. The worst offenders I have found are the the big companies. I now have a policy with them.. No P.O. No config. People are much more willing to follow up on the admin stuff if it's in the critical path.

After over 2 years of consulting I'm still in search of a good time tracking / invoicing program with multiple currencies that doesn't cost the earth and allows duplicate booking of time. I've got to get ride of Excel!

Any suggestions (for Mac) ???

Sun May 11 03:30:28 2008: 4185   Matt

Hi Donal, I've been using Billings2 to track time on my Mac. I haven't tested it for multiple currencies, but it does allow for more than one timer to run at a time, and generates some nice looking invoices.


Printer Friendly Version

Have you tried Searching this site?

This is a Unix/Linux resource website. It contains technical articles about Unix, Linux and general computing related subjects, opinion, news, help files, how-to's, tutorials and more.

Contact us

Printer Friendly Version

I said that 30 years ago! Why does no one ever listen to me ? (Alan Kay)

Linux posts

Troubleshooting posts

This post tagged:


Unix/Linux Consultants

Skills Tests

Unix/Linux Book Reviews

My Unix/Linux Troubleshooting Book

This site runs on Linode