DEV Community

Brittany Bonds
Brittany Bonds

Posted on

How I turn a messy billable vs non-billable dump into a clean utilization sheet

How I turn a messy billable vs non-billable dump into a clean utilization sheet

A timesheet export, a pile of calendar blocks labeled “client work,” and a Slack thread that says “we were at 60% last month… I think” are not a utilization system. They are how billable vs non-billable stays fuzzy until someone asks “are we busy or just busy-looking?” and nobody has one number.

Here is the workflow I use when someone dumps messy hours on me and wants one clean utilization sheet: hours by person (or role), billable vs non-billable, utilization %, and open questions flagged — without me pretending to be their CPA or telling them how to price.

Why utilization sheets go wrong

Most dumps I see fail in the same three places:

  1. Label fog — “admin,” “internal,” and “business development” all get called non-billable with no shared rule
  2. Split clocks — hours in the time tool, more hours in a calendar, still more in a notebook
  3. Denominator drift — utilization against available hours vs contracted hours vs a made-up 40

If those stay fuzzy, the % lies. So I fix the labels before I polish the formatting.

Sort into three piles first

Before columns, I sort every hour-looking row into:

  • Clearly billable — tied to a client / job / invoiceable code in the dump
  • Clearly non-billable — internal, PTO, training, BD, etc., with a stated category
  • Unknown or conflicting — missing client, dual tags, or “we cannot tell from this dump”

Unknowns do not get silently forced into billable to make utilization look better. They get a status and a question for the owner.

What I ask for before I start

  1. The dump (time export, calendar CSV, handwritten hours, or mix)
  2. As-of window that matters (week, month, custom range)
  3. Who the rows are about (one person, a small team, contractors)
  4. What “available hours” means for them (stated capacity, contracted hours, or “use what’s in the dump only”)
  5. What “done” means (utilization sheet, optional by-client rollup, optional question list for unlabeled time)

I am a freelancer admin / spreadsheet helper. I do not give legal or financial advice, and I am not a CPA — this is hours hygiene so their billable vs non-billable split is easier to see and hand off, not pricing, tax, or capacity consulting.

Build the sheet row by row

  1. Inventory every hours artifact — export row, calendar block, note; record source and date range.
  2. Normalize person / role names — one canonical name per row; keep aliases in notes if they conflict.
  3. Tag billable vs non-billable honestly — only from what the dump supports; else “unknown — ask.”
  4. Attach the client / job when present — never invent a client to tidy the rollup.
  5. Compute utilization only when the denominator is clear — if available hours are missing, leave % blank and flag it.
  6. Hand back — the utilization sheet (+ short list of questions); no “you should raise rates” advice.

Columns that usually work

Column What goes here
Person / role Canonical name (aliases in Notes)
Period Week / month / custom range
Billable hours Sum clearly tied to client / job
Non-billable hours Sum with a stated internal category
Unknown hours Hours that could not be classified
Available / capacity hours Only if stated in the dump; else “unstated”
Utilization % Billable ÷ available when both exist; else blank
Top clients (optional) Rollup from clearly tagged billable rows
Source Which export / calendar / note the line came from
Notes Dual tags, missing capacity, “needs owner confirm”

Common traps I flag instead of guessing

  • Calling everything without a client code “non-billable” without a written rule
  • Mixing PTO days into “available hours” so utilization looks artificially high
  • Using a default 40-hour week when the dump never said that
  • Double-counting calendar blocks that already appear in the time export
  • Publishing a neat % while a big “unknown hours” bucket sits unmentioned

Those become Notes or a short question list, not silent edits.

Soft CTA

If you want this done for you as a one-off: I turn a messy billable vs non-billable hours dump into a clean utilization sheet in about 24 hours.

Product: https://brittanybonds.gumroad.com/l/utilizationsheet

Shop: https://brittanybonds.gumroad.com/

Catalog mirror: https://brittany-bonds.github.io/

Code ADMIN12 for $2 off.

No fake CPA claims — spreadsheet cleanup so your billable split and utilization math are easier to track and hand off.

Top comments (0)