Billable hours tracking: what to use and how to do it
Billable hours tracking means recording every block of client work with four things attached: who did it, which client or project it belongs to, how long it took, and whether it can be charged for. A spreadsheet handles that for one person with a couple of clients and a single rate. It stops working the moment there are two people, two rates, or an invoice that only covers part of a month, because the sheet cannot tell you which hours have already been billed. At that point you want an app with a billable flag on every entry, rates per project or person, and a way to mark hours as invoiced, and for a freelancer or a small agency it does not need to cost anything. The sections below take each way people search for this, from spreadsheet to app to invoice, and give a straight answer on each.
What does billable hours tracking actually have to capture?
Five fields, and the fifth is the one most setups miss. Every entry needs the person, the client or project, the date and duration, a billable yes or no, and an invoiced yes or no. The hourly rate is a sixth piece of information, but it belongs on the project or the person rather than on each entry, otherwise you end up retyping it hundreds of times and changing it in the wrong place.
The billable flag has to be set when the work happens, not reconstructed later. A designer who spends 40 minutes on a client call and then 25 minutes redoing a layout because of their own mistake knows in the moment that the first block is billable and the second is not. Three weeks later, looking at a row that says "Acme, 1h 05m, layout", they do not, and the usual outcome is either to bill all of it and risk the relationship or to bill none of it and eat the hour.
The invoiced flag matters for a duller reason: it is the only thing that stops the same hour being billed twice, or never. Once an entry is on an invoice that has gone out, it should be locked out of the next one. That single rule is what separates a tracking setup you can trust at month end from one you have to re-check line by line.
Is a spreadsheet or Excel enough for billable hours tracking?
Yes, for one specific shape of business: one person, no more than a handful of active clients, a single hourly rate, invoices sent once a month for the whole month, and entries added the same day. If that is you, an Excel or Google Sheets file with the columns described in the next section will do the job, and a tool would mostly add login screens.
It breaks along predictable lines. The first is a second person: now there are two files or a shared one where rows get sorted, overwritten and quietly deleted. The second is a second rate, because a Rate column that is typed per row is a rate that gets typed wrong. The third is partial invoicing, when a client asks for an invoice on the 15th or wants one project billed separately, and you find yourself colouring rows to remember which ones went out. The fourth is backfilling: a sheet does not prompt you, so gaps appear and are filled a fortnight later from memory, which is where hours vanish.
The failure that actually costs money is the invoiced state. A sheet has no natural way to lock a row once it has been billed, so double billing and missed rows are both one filter away. If you want to see the pattern in more detail before deciding, the account of where spreadsheet tracking breaks once client work grows walks through it client by client. The honest verdict: keep the sheet while you are solo and simple, and move the day you hire, add a rate, or send an invoice that does not cover a full month.
What columns should a billable hours tracking template have?
Eleven columns, one row per block of work, never one row per day. There is no file to download here, because the layout is simple enough to build in a minute and a downloaded template usually carries someone else's assumptions about rates and rounding. Build it like this.
| Column | What goes in it | Why it is there |
|---|---|---|
| Date | The day the work was done | Filtering a billing period |
| Client | Client name, picked from a list | Grouping the invoice |
| Project | Project or engagement name | Billing projects separately |
| Description | What was done, in client language | Becomes the invoice line |
| Start | Start time | Evidence if a client asks |
| End | End time | Evidence if a client asks |
| Duration | Formula: End minus Start, in decimal hours | Never typed by hand |
| Billable | Yes or No, set when the row is added | Separates chargeable work |
| Rate | Looked up from a small client rate table | Stops rates being typed wrong |
| Amount | Formula: Duration times Rate, blank if not billable | Invoice subtotal |
| Invoiced | Invoice number once billed, blank until then | Prevents double or missed billing |
Two details make the difference between a sheet that works and one that does not. Duration and Amount must be formulas, because a typed duration is the most common source of arithmetic errors in a timesheet. And Invoiced must hold the invoice number rather than a tick, so that when a client queries invoice 2026-14 you can filter to exactly the rows behind it. A second tab with a SUMIFS by client and month, filtered to Billable = Yes and Invoiced = blank, gives you the unbilled total at a glance, which is the number most people never see until the sheet is replaced by software.
When do you need billable hours tracking software instead?
The moment any one of these is true: more than one person tracks time, rates differ by client, project or person, you invoice part of a period, or you need to know at a glance what has been billed and what has not. Each is a thing a sheet can be bent to do and a tool does by default.
What software actually adds is structural. The billable flag is a toggle on the entry with a sensible default, so nobody forgets the column. Rates live on the project or the person and are applied when the invoice is built, not retyped. A timer covers the moments you would otherwise estimate, and manual entry covers the timer you forgot to start. Reports filter by billable status, client and date range, so "how much unbilled work is sitting on Acme" is a two-click question. And once an entry is on a sent invoice, the tool keeps it off the next one.
What software does not fix is discipline. A team that backfills its timesheet on Friday afternoon will produce the same guesswork in an app as in a sheet, just with nicer charts. The tool removes the arithmetic and the bookkeeping; it does not remove the habit of recording work as it happens, which is why the tips further down matter more than the choice of app.
Which billable hours tracking app fits which kind of work?
Choose by where the hours end up. If tracked time becomes an invoice you send yourself, you want billing in the tracker. If it feeds an accountant or an accounting system, you want clean exports and a billable flag, and invoicing inside the tracker is optional. The six below cover the realistic range for freelancers, consultants and small firms. Prices were checked against each vendor's help centre or pricing page in September 2026, and they change often, so confirm before you commit.
Harvest: billing-first, with usage charges to watch
Best for: Consultants and small agencies that want hours, invoices and payments in one place and are happy to pay per seat for it.
- Free plan: One active person and two active projects. Invoices cannot be emailed or exported as PDF unless Stripe is connected.
- Paid plans: Teams from $9 per seat per month billed annually ($108 per seat per year), Enterprise from $14 ($168 per year). On Flex billing there are also usage charges for active projects, clients, tasks and invoices above a free allowance, charged from the second paid renewal.
Harvest is the most complete billing workflow of the group: billable rates by person or project, invoices generated from unbilled hours, online payment, and a clear view of what has been billed. The free plan is a real single-user option but its two-project cap makes it a trial in practice for anyone with more than two clients. The thing to read twice is the Flex billing model, where a second bill can be much higher than the first once usage charges kick in; Harvest's own help centre gives the example of a seats-only bill jumping once projects and invoices are counted. If you want a predictable number, its Unlimited billing option exists for that reason. For a small agency weighing it, whether Harvest is too much for a small team is worth reading first.
What users say about Harvest
Reviewers on G2 and Capterra consistently rate Harvest highly for how little friction there is between tracking an hour and invoicing it, and for reporting that non-finance people can read. The recurring complaints are price as the team grows, limited flexibility in reports once you want to slice data your own way, and occasional sync problems between the mobile app and the web.
Source: G2 reviews and Capterra reviews
Toggl Track: the best timer, with billing on the upper plans
Best for: People who will only track time if the timer is effortless, and who invoice from somewhere else.
- Free plan: Time tracking on web, desktop and mobile for a limited number of users, with no billable rates.
- Paid plans: Starter $9 per user per month billed annually ($12 monthly) adds billable rates. Premium $18 per user per month billed annually ($20 monthly) adds invoices and QuickBooks; the pricing page shows $14 for the first year before it renews at $18.
Toggl's billable rates are unusually granular once you pay for Starter: workspace, member, project, project member and task, with the most specific one winning. The catch for billing is that turning those rates into an invoice is a Premium feature, so a freelancer who wants a timer and an invoice in the same tool pays the top tier for it. If the invoice is generated in FreshBooks or by an accountant anyway, Toggl's exports and its billable flag are all you need, and the timer is the one most people stick with.
What users say about Toggl Track
G2 and Capterra reviewers praise the speed of the timer, the browser extension and the clean weekly reports, and many say it is the first tracker their whole team actually used. The repeated negatives are the cost of Premium relative to what a small team uses, editing many entries being tedious, and project organisation feeling shallow for larger client lists.
Source: G2 reviews and Capterra reviews
Timen: free, with billing built in and some things missing
Best for: Freelancers, consultants and small teams that want the whole path from timer to invoice without a per-seat bill.
- Free plan: The full product, with no tiers and no per-user pricing. Timer, calendar, reports, clients, projects, invoices and team access are all included.
- Paid plans: None. Teams can make a voluntary contribution from inside the app, and it unlocks nothing.
Here is exactly how billable work is modelled, because it is the reason the tool fits some setups and not others. Every time entry carries a billable flag that you set from the timer or the calendar panel, and your profile holds a default for new entries. Rates live in two places: on the project and on the person. When an invoice is built, the person's rate wins if one is set, then the project's rate, then zero, and every invoice line keeps its own rate so you can override it before sending. An invoice starts from a report: pick the client, date range, projects, tags or people, and the filtered entries become lines. Billable entries are included by default, non-billable and already-invoiced ones only if you tick them, and anything already sitting on a sent or paid invoice is left out automatically. From there you can download a PDF or CSV, or push the invoice to QuickBooks Online, Xero, FreshBooks or Wave.
What is missing is just as important. There is no rate on the client, no task-level rate, and no dated rate history, so a rate change affects future invoices only through whatever you set on the project or person. There are no timesheet approvals, no budgets or retainers, no expenses or estimates, and no automatic rounding rule. Invoice status moves from draft to sent to paid only when you move it. There is no LEDES or UTBMS export and no trust accounting, so a law firm that bills through an e-billing platform is in the wrong place. If any of those are on your list, Harvest or FreshBooks fits better. If your list is timer, billable flag, rates, report, invoice, accounting export, Timen covers it for nothing.
Clockify: cheapest per-seat route to rates and invoices
Best for: Small teams that want billable rates and invoicing at the lowest per-seat price and do not mind a busier interface.
- Free plan: Unlimited tracking and projects for up to 5 users, with PDF report export. No billable rates.
- Paid plans: Basic $3.99 per user per month billed annually ($4.99 monthly) adds billable and historic rates. Standard $5.49 ($6.99 monthly) adds task rates and invoicing. Pro $7.99 ($9.99 monthly) adds budgets, expenses and profit tracking. Enterprise $11.99 ($14.99 monthly).
Clockify's plan ladder maps neatly onto the fields in the first section: the free tier gives you the billable flag, Basic gives you rates, Standard gives you invoices. That makes it easy to pay only for the step you have reached. Note that the free plan now caps at 5 users according to Clockify's help centre, which is a change from the unlimited free seats it was known for, so older comparisons are out of date. The trade is an interface that has grown a feature for every plan, which some small teams find heavier than the work justifies.
What users say about Clockify
Across G2 and Capterra, Clockify is praised for value, for how quickly a team can start, and for reports that cover most small-business needs. The recurring downsides are a cluttered interface as features accumulate, a mobile app that reviewers find less reliable than the web version, and support that is slower on the free plan.
Source: G2 reviews and Capterra reviews
TimeCamp: unlimited free users, rates on the top plan
Best for: Firms with many people tracking time and a few people billing it, especially where automatic tracking matters.
- Free plan: Unlimited users and projects with timesheets and desktop apps. No billable flag and no rates.
- Paid plans: Starter $3.99 per user per month billed annually ($5.49 monthly) includes invoicing. Premium $6.99 ($9.99 monthly) adds billable time. Ultimate $9.99 ($13.99 monthly) adds billing rates per user or project. TimeCamp's help centre states that specific billing rates are Ultimate only.
TimeCamp's oddity is the order of its ladder: invoicing arrives before the billable flag, and per-person or per-project rates arrive last, so anyone billing by the hour with different rates is really looking at Ultimate. The invoice builder itself is good, letting you pick tasks, a date range and one of several groupings before it drafts the lines. Where TimeCamp earns its place is a larger team where most people only need the free timesheet and automatic tracking, and a couple of seats need the billing layer.
What users say about TimeCamp
G2 and Capterra reviewers highlight the free tier for whole teams, the automatic tracking and the depth of the reports. The consistent criticisms are a dated interface, a learning curve in setup and reporting, and paying for the top plan to get the billing features that smaller tools include lower down.
Source: G2 reviews and Capterra reviews
FreshBooks: accounting first, time tracking included
Best for: Solo professionals and small firms who need the books done and want hours to flow straight into them.
- Free plan: None. A 30-day trial, then a paid plan.
- Paid plans: Lite $23 per month for up to 5 billable clients, Plus $43 for up to 50, Premium $70 for unlimited, Select on quote. Extra team members are $11 per user per month. A launch discount runs for the first three months, and yearly billing takes 10% off. Active and archived clients both count towards the limit.
FreshBooks approaches billable hours from the invoice backwards. Projects carry a billing method, either hourly with a single rate, per team member or per service, or a flat fee, and time entries on an hourly project drop onto the invoice as lines. On a flat-rate project it automatically marks every entry non-billable, which is a sensible default that most trackers leave to you. The timer itself is plainer than Toggl's or Harvest's, and the client caps on Lite and Plus bite quickly for an agency, because archived clients still count. If the accounting is the hard part of your month and the hours are the easy part, this is the right order of priorities.
What users say about FreshBooks
Reviewers on G2 and Capterra repeatedly praise the invoicing, the payment collection and how approachable the accounting is for non-accountants. The consistent trade-off they name is that time tracking and reporting are lighter than in tools built around billable hours, and that the client limits and per-member fees push the price up faster than expected.
Source: G2 reviews and Capterra reviews
The short version: Harvest or FreshBooks if you want payments and accounting in the same place and will pay per seat, Toggl Track if the timer is what will make people track at all and invoices happen elsewhere, Clockify or TimeCamp if you want the cheapest per-seat path for a bigger team, and Timen if the whole path from timer to invoice is what you need and you do not want a bill for it. Agencies weighing a longer list will find the fuller agency time tracking tools comparison useful, and independent consultants the consultant-focused shortlist.
Why track non-billable hours too, and how?
Because the non-billable hours are where the money leaks, and you cannot see a leak you do not measure. Tracking only client work tells you what you earned. Tracking everything tells you what it cost you to earn it, which is the number that decides whether a rate is too low, a fixed fee was mispriced, or a client is quietly consuming twice the hours they pay for.
Three things become visible only when non-billable time is in the same tool. The first is utilisation: if a consultant bills 22 hours out of a 40-hour week, the other 18 need a name before you can decide whether that is fine. The second is scope creep, which almost always starts as small non-billable favours that were never flagged. The third is work that should have been billable and was not, which is the whole subject of where unbilled hours hide. In that account, the surprising finds were not big blocks of forgotten work but the ten-minute replies and the "quick look" that were tracked as internal because nobody had decided otherwise.
How to do it without doubling the admin: track non-billable time in the same tool, with the same projects, and flip the billable toggle off. Then give it a reason, ideally a tag, from a short fixed list such as admin, sales, learning, rework and internal. Five tags is enough; twenty means nobody uses them. Review the ratio weekly rather than daily, because a single day of proposals looks alarming and a week of them is a pattern. And set the default for new entries to whatever most of your day is, so that the toggle is an exception you notice rather than a chore you skip.
Tips for tracking billable hours that actually stick
Most advice on this topic is about the tool. The habits below are what separate a team whose invoices go out clean from one that spends the first week of every month reconstructing the last one.
- Decide billable when you start, not when you invoice. Set the flag as the entry is created. If you are unsure in the moment, mark it billable and tag it to review; you will lose far less than by leaving it blank.
- Record the same day, every day. A timer for work at your desk, a manual entry at the end of the day for calls and travel. Anything reconstructed after 48 hours is an estimate, and estimates skew low.
- Write descriptions the client can read. "Fixed the thing" becomes an invoice line eventually. "Revised homepage hero copy after 12 Aug feedback" survives a client query without a phone call.
- Put rates on projects and people, never on entries. A rate typed per row is a rate typed wrong. Set it once where the tool applies it, and change it in one place when it changes.
- Run a ten-minute weekly review. Look for gaps, running timers, entries on the wrong project and billable work marked internal. The weekly billable review routine is short enough to keep, and the Friday review habit shows what changed once a team did it for months.
- Mark invoiced hours as invoiced, immediately. The moment an invoice goes out, the entries behind it should be locked or labelled with its number. Keeping billed and unbilled hours organised is a single rule applied without exceptions, and the status system that works for it is simpler than most people build.
- Keep one system. A timer in one app, a spreadsheet for corrections and an invoice tool that sees neither is three sources of truth. Whatever you pick, the invoice must be built from the same records the timer wrote.
How do you turn tracked billable hours into an invoice?
In four steps that are the same whatever tool you use: filter, review, price, lock. Filter to one client and one billing period, showing only billable entries that have not yet been invoiced. Review the list for wrong projects, missing descriptions and anything that should not be there. Apply the rate per line and check the total against what the client expects. Then send, and lock those entries so they cannot appear on the next invoice.
The step people skip is the review, and it is where the money is. A filtered list of a month's entries almost always contains a call logged to the wrong client, a two-hour entry that should have been twenty minutes because a timer ran through lunch, and a couple of billable items sitting under internal. Ten minutes on that list before pricing saves the awkward credit note afterwards.
In Timen the four steps are one screen. You run a report for the client and period, choose whether to include only billable hours or also non-billable and previously invoiced ones, and create the invoice from it; the filtered entries arrive as line items, each linked to its time entry, with the rate filled from the person or project and editable per line. Entries already on a sent or paid invoice are excluded without you doing anything. Tax and a discount are applied on the invoice, and the finished document goes out as a PDF, a CSV, or straight into QuickBooks Online, Xero, FreshBooks or Wave, with Timen updating the same invoice on a re-send rather than creating a duplicate. If you have been rebuilding invoices from a report in one tool and a template in another, the case for a one-pass workflow from hours to invoice is that the review step happens once instead of twice.
Questions people ask next about billable hours
- Do I need to track billable hours on a fixed-fee project?
- Yes, but for a different reason. On a fixed fee the hours do not go on the invoice, they tell you whether the fee was priced right. Track them as billable to the project, invoice the flat amount, and compare the two at the end so the next quote is based on real numbers.
- What is the difference between billable hours and billed hours?
- Billable hours are the hours you are entitled to charge for. Billed hours are the ones that have actually landed on an invoice. The gap between the two is unbilled work, and it is the number a weekly review exists to keep near zero.
- Should billable hours be rounded, and to what?
- Round only if the contract says so, and then apply one rule everywhere, typically to the nearest 6 or 15 minutes. Track the real minutes in the tool and round on the invoice line, so the record stays accurate if a client ever asks to see it.
- Can a client see the hours behind an invoice?
- Only if you show them. Most tools let you attach or share the time entries behind each line, and in Timen a report can be shared as a read-only link. Sharing the detail tends to reduce disputes, as long as the descriptions were written for the client rather than for yourself.
Where to start with billable hours tracking
Track every block of client work with a billable flag set at the time, a rate that lives on the project or the person, and an invoiced status that locks the entry once it has been billed. A spreadsheet can hold that for one person with a few clients and one rate; the first extra person, extra rate or partial invoice is the signal to move to an app.
When you do move, choose by where the hours end up. Harvest and FreshBooks if payments and accounting belong in the same tool and per-seat pricing is fine. Toggl Track if the timer is what will get people tracking. Clockify or TimeCamp for the cheapest per-seat path with a bigger team. Timen if you want the timer, the billable flag, rates, reports and the invoice in one free place, and none of the approvals, budgets or e-billing formats it does not have. Whichever it is, build the invoice from the same records the timer wrote, and review them once a week so there is nothing to reconstruct at month end.
