DEV Community

speed engineer
speed engineer

Posted on

I Lost $2,400 Because I Couldn't Prove My Hours

Introduction

Late payment. Missing invoices. But the worst? A billing dispute where you know you did the work — but can't prove it.

Last year, a client disputed a $2,400 invoice. Three weeks of sprint work: architecture decisions, code review for their junior dev, two rounds of requirement changes, late-night debugging sessions.

I had none of it documented properly. I lost the dispute.

The Problem With How Most Freelancers Track Time

If you're like I was, your time tracking process looks something like this:

  1. Work all day on something
  2. Vaguely remember how long it took
  3. Open a spreadsheet at 11pm and type in "4 hours - frontend work"
  4. Invoice the client at end of month based on fuzzy memory

This works fine when invoices are small. Clients don't contest a $300 bill. They wait until the bill is $2,400 and then pick apart every line item.

"That meeting was 20 minutes, not an hour."
"Were those late-night commits really billable?"
"We didn't authorize the time spent reviewing code."

Without real records, you're negotiating from memory against someone with financial motivation to not believe you.

What Actually Fixed It

After the dispute, I overhauled everything. Here's what made the difference:

1. Real-Time Tracking (Not Memory-Based)

I started a timer the moment I began any task — even a 10-minute Slack clarification. Not later. Not "I'll log it at EOD." Right now.

This sounds tedious but takes about 5 seconds per task when you have the right tool. I use FillTheTimesheet for this — the timer is always one click away and the interface doesn't get in your way.

2. Granular Project Categories

Instead of "Client X — Development," I started logging:

  • Client X / Sprint 4 / Auth module
  • Client X / Code Review / Junior dev PR #24
  • Client X / Meetings / Requirements sync

When a client disputes "that meeting," I can pull up the exact date, duration, and what was discussed.

3. Weekly Time Summaries to Clients

Every Friday I send a one-page time summary to active clients. No surprises at invoice time. Clients see hours accumulating in real-time, and disputes essentially vanish because nothing is a surprise when the final invoice arrives.

The Mindset Shift

Most freelancers treat time tracking as an accounting chore — something you do after the real work to generate an invoice.

Reframe it: your time records are receipts. They're the same as a plumber's itemized parts list or a lawyer's billing statement. They're professional documentation that protects your work.

When I started treating time tracking as part of my professional practice — not a burden — everything changed. Clients trusted me more. Disputes disappeared. And I stopped undercharging because I finally knew exactly how long things took.

Key Takeaways

  • Track in real-time — memory-based logging is inaccurate and indefensible
  • Break time into project/task categories, not just client buckets
  • Send weekly time summaries proactively — it builds trust and prevents surprises
  • Your time records are legal documentation in a billing dispute
  • The right tooling makes real-time tracking effortless (< 10 seconds per task)

Have you ever lost money to a billing dispute, or come close? How do you handle it? Drop it in the comments.

This post is part of The Speed Engineer series on building sustainable freelance systems.

Top comments (0)