b2KIT

Billable Hours Tracker

Track billable and non-billable hours by client and project with utilization rate, revenue tracking, and weekly summary reports.

Tested tool guide Tested browser tools Checked August 16, 2026

What Billable Hours Tracker does, with a checked example

The Billable Hours Tracker is a spreadsheet-style form where you log time entries with a date, client, project, hours, and whether those hours are billable or non-billable. It tallies each week, splits the totals by client and project, computes a utilization rate (billable hours divided by total hours), and converts billable hours into revenue by multiplying against a rate you set per client. The surprise most users hit: the utilization rate is per week, not cumulative, so a slow week early on doesn't lower a later week's rate. The weekly summary can be navigated to view different weeks.

Worked example

A concrete input and expected output from the current implementation.

Input

Week of 2025-05-05. Client: Acme Corp, Project: Website Redesign, Hours: 40, Billable: Yes, Rate: $150. Client: Acme Corp, Project: Internal Meeting, Hours: 5, Billable: No. Client: Globex, Project: API Fix, Hours: 20, Billable: Yes, Rate: $200.

Expected output

Total hours: 65. Billable hours: 60. Non-billable hours: 5. Utilization: 92.3%. Revenue: $10,000 (60 billable hours at $150 and $200 rates). Weekly revenue breakdown: Acme Corp $6,000 (40 billable hours at $150), Globex $4,000 (20 billable hours at $200).

Utilization is billable (60) divided by total (65) = 60/65 = 0.923. Revenue is billable hours times the client's rate for each client: Acme has 40 billable hours at $150 and Globex has 20 at $200. So revenue = 40 × $150 + 20 × $200 = $6,000 + $4,000 = $10,000.

How the result is produced

1

Time entry logging

You enter each block of time as a row with a date, client name, project name, hours spent, and a billable flag (yes or no). Optionally, you can set an hourly rate per client, either when creating the client or on each entry. The tool stores entries in your browser's local storage, so they persist between sessions on the same device. No data is uploaded to a server.

2

Weekly aggregation and reports

The tool groups entries by the week they fall in, using Sunday as the first day of the week. For each week, it sums total hours, billable hours, and non-billable hours, then computes utilization as billable divided by total. It also groups revenue by client (billable hours times the client's rate) and lists projects with their hour totals. The weekly summary report shows these figures for the currently selected week, and you can navigate to other weeks.

Good uses

  • A freelance consultant tracks hours across multiple clients to invoice accurately at the end of the month.
  • A small agency monitors team utilization across projects to spot who is overloaded or underutilized each week.
  • An independent contractor reviews their revenue per client to decide which service line to expand or drop.

Limits and checks

  • Utilization is calculated per week, not over all time. If you log a 10-hour week with 8 billable hours, your utilization is 80% for that week; a light week doesn't dilute a busy week's rate.
  • Revenue only appears for entries marked billable and requires an hourly rate. If you forget to set a rate, the tool counts the hours but shows zero revenue for those entries.
  • The weekly summary reflects the current week by default. To see past performance, you must explicitly navigate to that week; the summary does not roll up all weeks into one total.

Common questions

Can I export my hours to an invoice or spreadsheet?

No. This tool does not export to CSV or PDF. You can view the weekly summary on screen, but to invoice you would need to copy the numbers manually or use a dedicated invoicing tool. The data stays in your browser's local storage, so it is not accessible from another device or app.

Why does my utilization rate show 100% when I had a non-billable entry?

Check that the non-billable entry has the billable flag set to 'No'. The billable flag must be explicitly set to 'No' for the hours to count as non-billable. If the flag is left blank, the entry may be counted as billable, which would make the utilization rate 100% even though you intended it to be non-billable.

References and verification

The example and behavioral notes were checked against the browser implementation. Standards and primary references below define the relevant format, formula, or platform behavior.

Related Tools