Time tracking for freelancers on a Mac, without projects or tags

· 6 min read

Freelancers tend to assume time tracking means a project picker, a running timer and a tags field, because that is what timesheet software looks like. For a solo business the daily question is usually simpler: how long did I actually work today, and how much of it was the paying kind. A passive tracker that records the day by app, with no projects or tags, answers the first question by itself and gets you most of the way to the second. This post is about when that is enough and when it is not.

What a freelancer actually needs to know

Strip away the software and there are three questions.

  1. How many hours did I work this week? (For sanity, for rates, for knowing whether the business is sustainable.)
  2. How many of those hours were billable, and to whom? (For invoices.)
  3. Where did the non-billable hours go? (For deciding what to stop doing.)

A per-project timer is built to answer question two and is poor at one and three, because it only counts what you remembered to start. A passive tracker is built for one and three and cannot answer two on its own. Most freelancers have been using the first kind of tool to answer all three and wondering why the numbers feel wrong.

Hours open versus hours billed digs into the gap between those first two numbers, which is usually bigger than people expect.

The case against projects and tags, for one person

Projects and tags exist so that a team’s time can be reported against a budget. For one person, they add a decision at the start of every block of work (“which project is this?”) and a correction at the end (“I forgot to switch”). The decision is the cost, and it is paid dozens of times a day.

Meanwhile the information you are trying to capture with the project picker is mostly already in your head at the end of the day. If the receipt says six hours in the design app, you know that four were the agency job and two were the bakery’s menu. What you did not know, and could not have guessed, was that the design app got six hours and email got ninety minutes. That is the number a tracker earns its keep by telling you, and it needs no picker to do it. Do you need a project picker makes this argument at length.

A daily routine without projects

Here is a way to run it that takes about three minutes a day.

  1. Let a passive tracker record the day by app. Punchcard does this from the menu bar with zero macOS permissions, recording app names only, and prints a receipt at the closing time you set: each app on its own line with its time, a day total, a stamp.
  2. When the receipt prints, read the lines and do the split in your head. “Six hours design: four Henderson, two bakery. Ninety minutes mail: mostly Henderson.” Write the billable portions in whatever you invoice from, even if that is a text file.
  3. Keep the receipt. Export the PNG or copy the text if you want it somewhere else.
  4. On Sunday, the week roll prints. Compare the week total with what you wrote down as billable. The difference is your overhead, and it is the most useful number a freelancer can know.

The split in step two is the part that feels like it should be automated, and it is the part that should not be. It takes thirty seconds when the day’s app totals are in front of you, and it is more accurate than a timer you forgot to switch, because you are doing it with evidence rather than from a blank page.

What Punchcard will not do for a freelancer

Be clear about the edges before adopting it.

  • No per-project or per-client tracking. The receipt is by app. If the client breakdown must be automatic, this is the wrong tool.
  • No billable rates and no invoicing. It does not know what an hour is worth.
  • No manual timer for the times you want to clock a specific call.
  • No team features, no iPhone app, no integrations with invoicing or accounting software.

If your contracts require a timesheet with per-task entries, you will need a timer-based tool for the billing and can still run Punchcard alongside for the honest total. The two numbers disagree, and the disagreement is the point.

Quoting the next job from the last one

The most expensive thing a freelancer does is estimate. An estimate made from memory is a guess dressed up. A month of receipts changes that. When the next bakery asks for a menu, you can look at the week the last menu happened and see what the design app actually got, including the revisions that felt like nothing at the time. How to estimate hours for a quote walks through doing this from receipts.

This works because the record exists for every day, not just the days you remembered to track. The month roll is the same thing at a larger scale: a total for the month and the apps that made it up, which is the real shape of the business.

Rates, and the number nobody wants to see

Freelancers raise rates reluctantly, usually because they do not know their real hourly figure. The calculation needs the total hours, not the billed ones. If the week roll says forty-six hours and the invoices say twenty-eight, your effective rate is the invoice total divided by forty-six, and it is probably lower than the number on your website. That is uncomfortable and useful. The time audit to do before raising your rates is the walkthrough.

Questions

How do I split a day between two clients if the tracker only shows apps? From memory, at the end of the day, with the receipt in front of you. It sounds unreliable and is not, because app totals anchor the memory. “Six hours in the design app” is easy to split; “how long did I work today” from a blank page is not.

Can I get the data into a spreadsheet for invoicing? Punchcard exports CSV, and keeps everything in one SQLite file at ~/Library/Application Support/Punchcard/punchcard.sqlite. The export has days and apps, not clients, so the client column is still yours to add.

What does it cost? Tracking never expires and the first seven receipts are free. After that, nine dollars once, for two Macs, with every future update and a 30-day refund. No subscription.

Is a receipt enough to show a client where the time went? Often, yes, for a day rate or a retainer where the question is “was the day real.” It shows apps and hours with a date, not tasks. How to show a client where the time went covers when that is enough.