Home · Time tracking

How to Track Billable vs Non-Billable Hours

Most freelancers do not lose money because their timer app lacks a feature. They lose money because everything looks billable until Friday, then panic becomes “round up,” or because admin work silently eats the week and never appears on an invoice or a capacity plan. Separating billable from non-billable hours is a classification discipline, not a shopping trip.

This guide complements How to turn time logs into invoices. That piece covers export vs sync and line items. This one covers what counts, how to tag it the same week you work, and how to keep invoice rows clean.

Pricing disclaimer: Tracker features (billable flags, rates, reports) vary by plan. Examples below are orientation only — verify on the vendor site. Independent guidance; no affiliate links by default. Not legal, tax, or employment advice.

What “billable” means (for freelancers)

Billable = time you are contractually allowed to charge the client for, at the agreed rate or against a retainer pool.

Non-billable = time that keeps the practice alive but is not on the client’s invoice: proposals, unpaid discovery, bookkeeping, learning, marketing, tool setup, and most internal admin.

Gray zones exist. Write rules before the gray happens.

Activity Default classification Notes
Approved project work in the SOW Billable Match project names to invoice language
Email about active deliverables Often billable Disclose if you charge for comms
Sales calls / proposals Usually non-billable Or a separate “bizdev” bucket
Learning a tool for one client Ask Prefer written approval
Invoicing, chasing payment, bookkeeping Non-billable Track it for capacity
Scope creep without change order Not automatically billable Get approval first

Why freelancers skip the split (and pay for it)

  1. One project dump — all hours land in “Client X,” including unpaid discovery.
  2. Friday archaeology — tags applied after memory fades.
  3. Retainer blindness — included hours look “free,” so overflow is invisible until resentment.
  4. Vanity totals — “I worked 50 hours” without asking how many were sellable.

Tracking both types answers two different questions:

Step 1 — Write a one-page policy (keep it ugly)

Create a note titled Billable rules with:

  1. What is always billable
  2. What is never billable
  3. What needs a yes from the client before the clock runs
  4. Rounding rule (e.g. nearest 0.1 hr)
  5. How retainers consume hours

Share the client-facing subset in the estimate. Silence is not a change order.

Step 2 — Set up the tracker once

In Toggl Track, Clockify, or Harvest:

  1. Clients = who pays.
  2. Projects = invoice-safe names (“Homepage redesign,” not “stuff”).
  3. Billable flag / rate on projects or tasks (plan-dependent — verify).
  4. Tags for non-billable types: admin, sales, learning, ops.
  5. Optional: a private project Practice — Non-billable for everything that is not client work.

Do not dual-track forever in a spreadsheet and an app. Pick one source of truth.

Step 3 — Classify in the same session you work

Best habit: start/stop the timer with the correct project and billable state already set. Second-best: end-of-day timesheet with honest labels.

Bad habit: dump everything into one project and “fix tags later.” Later never comes.

Micro-checklist after each block

Step 4 — Weekly review (30 minutes, fixed weekday)

Pick a weekday that is not invoice day if possible. Review:

  1. Hours by client — billable only
  2. Non-billable total — is admin exploding?
  3. Mis-filed entries — fix before export
  4. Scope creep candidates — email for approval now
  5. Effective rate peek: billable revenue ÷ all hours worked (including non-billable)

If non-billable exceeds ~30–40% of your week for months, you do not have a timer problem — you have a pipeline, pricing, or process problem.

Step 5 — Keep invoice lines clean

Clients should never see your admin tags.

Prefer

Avoid

For the rebuild ritual, use How to turn time logs into invoices.

Step 6 — Retainer and hybrid rules

Engagement Billable tracking role Non-billable role
Pure T&M Source of truth for the invoice Capacity + overhead awareness
Retainer with included hours Cap watch + overflow proof Still track sales/admin separately
Fixed milestone Profitability only Same — do not invent T&M lines
Hybrid Split projects carefully Never let sales bleed into client burn

Overflow hours need written rules. Track them as billable only after approval — or as non-billable “goodwill” if you choose to eat them (and then raise the next retainer).

Step 7 — Tool notes without shopping addiction

Pick the app you will actually start. Classification beats brand.

Step 8 — Protect your rate without nickel-and-diming

Healthy freelancers:

Unhealthy freelancers:

Common failure modes

Failure Fix
Everything billable by default Default new projects carefully; weekly audit
Nothing billable until panic Same-session flags; end-of-day ritual
Client disputes hours Timesheet attached; SOW language mirrored
Retainer silently overrun Budget alerts at 80%; message early
Non-billable invisible Dedicated project + tags
Double billing after export Mark billed; archive CSV with invoice ID

One-afternoon setup

  1. Write the one-page billable policy
  2. Clean clients/projects in your tracker
  3. Add non-billable buckets
  4. Track five real workdays with the split
  5. Run a fake invoice from billable-only hours
  6. Review non-billable % — adjust pricing or habits
  7. Put weekly review on the calendar

Mini case patterns (composite)

Pattern A — Designer on two retainers: Tracks billable design under each client project; parks proposals and portfolio work under Practice — Non-billable. Weekly review shows 28% non-billable — acceptable. When one retainer hits 90% of included hours mid-month, they message before working free overtime.

Pattern B — Developer who “forgets” sales time: All week lands in Client A as billable. Invoice looks padded; client pushes back. Fix: sales calls move to non-billable; rates on Client A stay honest; proposal work is priced into the next fixed quote.

Pattern C — Coach with messy Slack: Messages were never timed. They adopt end-of-day timesheets with a 15-minute rounding rule disclosed in the SOW, billable for coaching blocks only, non-billable for unpaid discovery calls longer than 20 minutes.

These are illustrations — match your contracts, not someone else’s folklore.

Reporting that actually helps

Once a month, export or screenshot:

  1. Billable hours by client
  2. Non-billable hours by tag
  3. Estimated billable revenue (hours × rates) vs cash collected
  4. Top three non-billable drains

You are looking for trends, not perfection. If learning dominates every month, either productize a new skill into paid work or cap unpaid study time.

FAQ

Should clients see non-billable time?
Usually no. Offer a summary timesheet of billable work only unless the contract requires more.

Is commuting billable?
Only if the contract says so. Default non-billable for remote solos.

Do I track unpaid discovery?
Yes — as non-billable — so you know what sales costs you.

Can software auto-detect billable vs not?
It can store flags; it cannot read your contract. You still decide.

Affiliate links?
None by default.

Bottom line

Billable vs non-billable tracking is how freelancers protect both the invoice and the business. Define rules up front, classify in the same session you work, review weekly, and keep client PDFs boring and accurate. Tools help; discipline ships. Pair this habit with a clean time-to-invoice ritual and you will argue about scope less — and understand your real rate more.


Source markdown: /content/how-to-track-billable-vs-non-billable-hours.md · Independent review · Not affiliate by default · Verify pricing on vendor sites.