[Blog](https://billnotch.com/blog) / Freelance Timesheet: How to Build One That Actually Pays You

# Freelance Timesheet: How to Build One That Actually Pays You

> A freelance timesheet needs date, client, description, duration and a billable flag, filled as you work. What to include and how to stop losing hours.

[Adam A.](https://billnotch.com/about) June 14, 2026 7 min read Updated September 6, 2026

To build a **freelance timesheet** that actually pays you, it needs four columns: date, client/project, a description, and duration, plus a billable flag, and it has to be filled while you work, not reconstructed on invoice day. The format is easy. The money is won or lost in whether every hour makes it onto the sheet in the first place.

A timesheet isn't paperwork for its own sake. It's the evidence behind every line on your invoice, the answer when a client asks "what was this for?", and the only honest record of where your week actually went. Get it right and it pays for itself many times over.

## What a freelance timesheet needs

Strip away the templates and a timesheet that holds up has five things:

| Field | What to record | Example |
| --- | --- | --- |
| **Date** | The day the work happened, so entries sort and scope to a billing period | Mon, Apr 6 |
| **Client / project** | Who the time bills to, one label per entry, never a pile of loose minutes | Acme, checkout redesign |
| **Description** | One concrete line that justifies the charge later | Revised the checkout error state |
| **Duration** | The actual time spent, captured as it happened | 1h 20m |
| **Billable** | A yes or no per entry, because not everything for a client is chargeable | Yes |
| **Rate** (optional) | The hourly rate for this client, if it varies across your book | $85/h |

That billable flag is the column most freelancers skip, and it's the one that decides whether the sheet is useful. Without it you either over-bill and erode trust, or under-bill and quietly lose income. If you're unsure where the line sits, [billable vs non-billable hours](https://billnotch.com/blog/billable-vs-non-billable-hours) covers it properly: calls, research, and revisions usually count; internal admin and pitching new leads usually don't.

Here's what one client's week looks like on a sheet that's doing its job:

| Date | Project | Description | Duration | Billable |
| --- | --- | --- | --- | --- |
| Mon | Acme, site | Design revisions | 3h 15m | Yes |
| Mon | Acme, site | Standup call | 30m | Yes |
| Tue | Acme, site | Reading the new brief | 40m | Yes |
| Wed | Internal | Invoicing & email | 50m | No |
| Thu | Acme, site | Deploy + QA | 1h 20m | Yes |
| **Billable total** |  |  | **5h 45m** |  |

The 50 minutes of admin is real work. It just doesn't belong on Acme's invoice.

A single client is the easy case. Here is a fuller week across two clients plus internal time, which is where the billable flag earns its place:

| Date | Client / project | Description | Duration | Billable |
| --- | --- | --- | --- | --- |
| Mon | Acme, checkout | Design revisions | 3h 15m | Yes |
| Mon | Internal | Invoicing and email | 45m | No |
| Tue | Bell Co, brand | Logo concepts | 2h 30m | Yes |
| Tue | Acme, checkout | Standup call | 30m | Yes |
| Wed | Bell Co, brand | Revision round | 1h 45m | Yes |
| Wed | Internal | Proposal for a new lead | 1h 10m | No |
| Thu | Acme, checkout | Deploy and QA | 1h 20m | Yes |
| Fri | Bell Co, brand | Handoff call | 25m | Yes |
| **Acme billable** |  |  | **5h 05m** |  |
| **Bell Co billable** |  |  | **4h 40m** |  |

Two clients, one internal bucket, and the billable totals split cleanly by who pays. The 1h 55m of internal work is real, but it belongs on no client's invoice, which is exactly what the flag is for.

## How to fill it without losing hours

The format is the easy part. The hard part is capture, and it's where almost all the leakage happens. Three rules keep the sheet honest:

1.  **Record at the moment, not from memory.** The single biggest source of lost income is reconstructing your week on invoice day, when you only remember the big blocks. The five-minute reply, the ten-minute review, the quick call between two other tasks. Those are exactly the entries that get dropped, and they sum to real money across a month.
2.  **Log the small stuff first.** Counterintuitively, the tiny tasks are the ones worth the most discipline, precisely because they're the easiest to forget. A heads-down three-hour block will never go missing. A scattered hour of fifteen short interruptions will, every time.
3.  **Decide billable once, per project.** Don't re-litigate every entry. Set the rule at the project level: "everything on Acme is billable except internal admin", so filling the flag is mechanical, not a judgment call you make forty times a week.

For the mechanics of capturing time accurately and what to do with it, [how to track billable hours](https://billnotch.com/blog/how-to-track-billable-hours) goes deeper. And when it's time to turn the sheet into a number, [how to calculate billable hours](https://billnotch.com/blog/how-to-calculate-billable-hours) walks through converting minutes to decimal hours and applying your rate. The [hours to decimal calculator](https://billnotch.com/tools/hours-to-decimal) does that conversion both ways, a whole column at a time.

## Timesheet vs time tracker: not the same thing

A timesheet is the record: the rows of date, client, description, duration, and billable flag that back your invoice. A time tracker is the tool that produces those rows. You can keep a timesheet with no tracker at all, typing entries into a spreadsheet, and you can run a tracker that never hands you a clean timesheet, only a raw activity log. What you want is a tracker that writes the timesheet for you, capturing the hours automatically and returning sortable, billable-flagged rows instead of a wall of app names to sort by hand.

## Why an auto-generated timesheet beats a spreadsheet

A manual spreadsheet has one fatal flaw: it depends on you remembering to fill it. Every entry is a small act of discipline, and discipline fails under a deadline, which is exactly when you're working the most billable hours. The sheet is most incomplete precisely when it matters most.

A start/stop timer is barely better. You forget to start it (the first hour vanishes), you forget to stop it (now you're guessing, and guessing low to be safe gives away time), and context-switching hides the short tasks the timer was supposed to catch. Every one of these failures rounds in the client's favour, never yours.

An automatically generated timesheet removes the discipline tax entirely. Instead of asking you to log time, it watches what you actually work on and writes the entries for you: the forgotten call and the after-hours fix are already on the sheet by the time you sit down to invoice.

That's the approach behind [BillNotch](https://billnotch.com/): the desktop app records the active window in the background, sorts your activity into client projects with keyword rules (plus optional AI categorization for the fuzzy cases), and inherits the billable flag from the project. The timesheet builds itself, the billable total is live for any client and date range, and the Revenue Leak Finder flags billable work that never made it onto an invoice. If you bill by the hour, see [BillNotch for freelancers](https://billnotch.com/for/freelancers).

## The short checklist

-   Give every entry a date, client/project, description, duration, and billable flag.
-   Capture as it happens: never reconstruct the week on invoice day.
-   Log the small, frequent tasks first; they leak the most.
-   Set billable status once per project, not per entry.
-   Automate capture so a forgotten timer never costs you an hour again.

## Frequently asked questions

### What should a freelance timesheet include?

At minimum: the date, the client or project, a short description of the work, the duration, and a billable yes or no per entry. The date lets you scope an invoice to a period, the description justifies the charge later, and the billable flag keeps non-chargeable work off the client's bill. A rate column helps when your rate varies by client.

### How do I fill a timesheet without losing hours?

Record as the work happens, not from memory on invoice day, and log the small tasks first because those are the ones that vanish. Set billable status once per project so the flag is mechanical, not a decision you make forty times a week. The most reliable version lets a tracker capture the hours so nothing depends on you remembering.

### What is the difference between a timesheet and a time tracker?

A timesheet is the record, the rows that back your invoice; a time tracker is the tool that captures the hours. You can keep a timesheet by hand with no tracker, and a tracker can produce a raw log that is not yet a usable timesheet. The best setup is a tracker that writes the timesheet for you.

### Is a spreadsheet enough for a freelance timesheet?

For one client billed occasionally, yes. Across several clients billed monthly, a spreadsheet leaks, because every entry depends on you remembering to type it, and discipline fails under a deadline. That is when automatic capture pays off: it records the hours whether or not you remembered, so the timesheet is complete when you sit down to invoice.

## Keep reading

-   [How to track billable hours accurately](https://billnotch.com/blog/how-to-track-billable-hours)
-   [Billable vs non-billable hours: what actually counts](https://billnotch.com/blog/billable-vs-non-billable-hours)
-   [How to calculate billable hours](https://billnotch.com/blog/how-to-calculate-billable-hours)
-   [Free freelance timesheet template (CSV)](https://billnotch.com/timesheet-templates)

Canonical: https://billnotch.com/blog/freelance-timesheet
