I've been asked to produce a report for clients that shows that I was working on their project for the number of hours that I bill them for. How could that be achieved? The client is familiar with oDesk and asked that I create a similar report.

The system at oDesk has the following features:

  • Recording of keystrokes per time increment.
  • Screenshots taken at set intervals.

How can I create such a report using data that wasn't generated or altered by me?

I'm not asking if you would work under such conditions. I'm asking if there is a way to achieve this functionality?

  • 1
    Are you sure that you have understood the requirement well? Maybe the client just wants to have a report how many hours you have worked what day, and not the proof of it. AFAIK screenshots aren't hard to fake. Commented May 31, 2013 at 16:48
  • @ŁukaszLech The requirement is pretty explicit, that they want proof, because of what they've seen at oDesk.
    – codewaggle
    Commented May 31, 2013 at 17:04
  • 2
    I just want to add (fleshed out in my answer below), this is a really really bad idea. You have to figure that if you do this, anything you do at your computer at any time may be accidently relayed to the customer and that could include financial info, confidential info of other customers, trade secrets, etc. If you have any choice do not do this! Commented Jun 1, 2013 at 5:54
  • I'd put this in as an answer, but the question is closed. Why not just use oDesk's tools? If it's that you don't want them taking the 10%, I'm pretty sure you don't actually have to bill the time through the platform to use their tools.
    – Tim Lytle
    Commented Sep 18, 2013 at 4:53

3 Answers 3



If anyone asked me to use such a framework, I would give the lead some serious second thoughts.

  1. If the customer has the time to micromanage me or look through such footage, they have focused on the wrong things (huge red flag project-wise). I have experience with this as an employee (call center environment) and it never ends well.

  2. What is ostensibly intended to provide for good things inevitably leads to bad including possible disclosure of sensitive information (checking your bank account after forgetting to log out), or giving a belligerent customer things they can rip out of context to try to say they shouldn't pay.

Really, if you have any other choice do not do this.

If you do this, you have to figure that any activity on your computer at any time could be accidently disclosed to your customer. This could include without limitation trade secrets of other customers, confidential information you have agreed to protect, your own financial information (including but not limited to credit card information sufficient to make purchases online), and much, much more.

Note additionally my experience was in the formal employment context. Those risks go up quite a bit for consultants and contractors since typically you own your own computer and use it for other things too.


This being said, very often it is very helpful to give customers a detailed breakdown of what you did for them, how long. LedgerSMB (disclaimer: I run a LedgerSMB hosting service with a business partner too, as well as do development and consulting on that platform) has a timecard interface where you can assign timecards with projects, add detailed notes, and include those notes, optionally on invoices you send your customer. It is fairly simple: you enter a time in and time out, it calculates an interval at the rate associated with the service and customer. You indicate how many of those hours were non-billable and give both description and notes.

Then you can generate sales orders from a set of timecards, and sales invoices from the orders.

I would hope that many other applications have similar functionality.

If you absolutely must

From my perspective the only reasonably safe way to address this is to create a screencast of your work, and at least check the ends (make sure you didn't leave it running when you were done and went to check, for example, your bank account).

Specific recommendations for software to accomplish this is probably outside the scope of Q&A because such a list will likely go out of date relatively quickly but Wikipedia does maintain a list of such software which may be of help.

A final alternative might be to require that a customer with such a requirement provides you a computer for sole use for you to use in working on their project configured to their specifications. This way you have an air gap between anything your business might consider sensitive and anything the customer gets to see.

However this is a business security nightmare. If you have any confidential information on your computer at all, it is not safe, and if you inadvertently violate another client's NDA, you might be held liable.

Finally, if you absolutely must do this, please discuss the relative impact of accidental disclosure of any NDAs currently in effect with a licensed attorney.

  • 2
    Actually, I was approached about working under these conditions in the past and flat out refused. The question doesn't ask whether you would work under these conditions or what approach you take to showing clients the amount of time you spend on a project. I'm trying to think of questions that people might have and ask them. Please do everyone the courtesy of answering the question asked rather than giving an off topic answer.
    – codewaggle
    Commented May 31, 2013 at 7:57
  • 3
    -1 - This doesn't answer the question. You are also describing a tool that your can use to record time after the work has been done, which is not what the OP is looking for.
    – Oded
    Commented May 31, 2013 at 9:39
  • 3
    This question is being discussed in meta: meta.freelancing.stackexchange.com/questions/69/…. Actually, the op asked for apps, and Chris T responded with an app, but he also went a bit deeper with an alternative suggestion, which according to How to Answer is acceptable: "The answer can be “don’t do that”, but it should also include “try this instead”.
    – jmort253
    Commented Jun 1, 2013 at 2:27
  • 2
    @CamilStaps, I added an additional alternative which is closer to the original question, more discussion of specific risks. I don't want to go into too much detail as to my specific experience and employer, but I will say this sort of thing never ends well. Commented Jun 1, 2013 at 2:59
  • 1
    @Oded, edited to include solutions if you absolutely must but also a lot more in terms of the actual risks involved. I stand by my assessment that this should never be done unless you are so desperate for work that you are willing to accept the risk that any of your business data might be sent to the customer as well. Commented Jun 1, 2013 at 5:45

Timesnapper is a commercial windows application that does much of what you are looking for.

It includes reporting with breakdown of applications being used and automatically takes screenshots on a time basis.

I believe the data is recorded locally, so in some form it is in your control.

Whether this is enough for your clients, I don't know.


Toggl looks like it could do what you're after. It has the ability to start and stop a timer while your working on specific tasks but also has a manual mode if you forget to start the timer when working on a task. This does mean that you can add time retrospectively, which may not be what the client wants. Plus you have to manually start and stop the timer yourself. That said, if the client is looking for a system that definitively captures actual time spent on a project, it won't capture non-typing time (e.g. planning and analysis) anyway so it depends on how much trust you have with the client.

  • Does Toggl track 'activity' levels (based on keystrokes) or screen shots. Those were the two things needed to match what oDesk provides.
    – Tim Lytle
    Commented Sep 18, 2013 at 4:51

Not the answer you're looking for? Browse other questions tagged or ask your own question.