Skip to content
Hoursmith Docs
Time tracking

Billable vs non-billable

Hourly project time can be billable; fixed-fee and non-billable project time is always delivery effort and never becomes an invoice line.

Every time entry has a billable status, but the project rate type sets the outer rule. Only time on an Hourly project can be billable.

What the flag does

  • Billable Hourly time can be invoiced and counts toward your billable totals.
  • Non-billable time is still tracked and reported, but cannot be invoiced — think internal work, admin, or pro-bono hours.
  • Time on a Fixed fee project is always non-billable delivery effort. The contract balance is invoiced separately and is never calculated from tracked hours.

Only billable entries are eligible to appear on an invoice.

How the default is set

When you create or edit an entry, its billable status follows the project's rate type:

  • On an Hourly project, entries default to billable and you can switch an individual entry off.
  • On a Fixed fee or Non-billable project, entries are forced non-billable. The toggle is off and read-only.

This policy also applies to tasks, live timers, manual entries, project moves, bulk edits, API/MCP writes, and imports. If an Hourly project changes to Fixed fee or Non-billable, its unlocked work is normalized to non-billable and older locked rows display under the current project policy.

Where you'll see the split

  • Timesheet tiles show Total, Billable (with a percentage), and Billable value in money. The money tile is hidden from Members.
  • Reports break time down by billable status. See Reports overview.
  • Invoices draw hourly lines only from billable, un-invoiced time. Fixed fees use their own contract balance.

Change the flag

  • On a single Hourly entry: open it and toggle Billable. See Edit & delete.
  • On many Hourly entries at once: use bulk set billable. See Bulk edit.

If you need to bill occasional hours, use an Hourly project and switch the non-billable entries off. A Non-billable project's entries cannot be switched on individually.

Was this page helpful?

On this page