Tracking by project, reviewing by client
We tracked everything by project for a long time, because projects are how the work actually feels while you are doing it. The problem showed up at billing, when a single client had several projects and we were stitching their totals together by hand to make one invoice. So we did not abandon project tracking, we changed the level we reviewed at: projects during the work, clients at billing time. That one shift made invoicing dramatically simpler without costing us any of the detail we relied on to manage the work. If you have to pick a rule, it is track by project, review by client.
Why we started by tracking everything by project
We started with projects because that is how work is actually organized in your head. You are not doing "client work" in the abstract, you are building a specific website, running a specific campaign, or shipping a specific feature. Logging against the project matched the mental model, so entries were easy to make and it was obvious where each one belonged. That alignment is a real strength and part of why project tracking is the natural default.
Projects also gave us the detail we needed to manage the work rather than just bill it. Seeing that a build took forty percent longer than planned, or that one phase quietly ballooned, is only visible at the project level. That is genuine management insight - it tells you where to adjust scope, where you are underquoting, and which kinds of work eat more time than you expect. None of that shows up if you only ever look at a client total.
So the project-first instinct was not wrong, and we would still start there. Projects are the right unit for doing and managing the work, and this whole story is not about replacing them. It is about what happens when that same structure meets the invoice, which is a different job with a different natural shape.
Where project-level tracking left us stuck at invoice time
The friction was entirely at billing, and it was consistent. We do not invoice projects, we invoice clients, and a client with three active projects meant three separate totals we had to find, combine, and reconcile into one bill. The tracking was fine, the assembly was the problem, and it reappeared every single billing cycle like clockwork.
It also made mistakes easy. Pulling numbers from several project views by hand is exactly the kind of manual step where one project gets forgotten or a total gets mistyped, and the client ends up under-billed or confused. The more projects a client had, the higher the odds something slipped. We were effectively doing a small data-merge on every invoice, and manual merges are where errors live. This is a big part of what to watch for in time tracking software for client work - whether it can group by client at all, or forces you to assemble it yourself.
The confusing part was that nothing looked broken. Each project report was clean and correct on its own, so the problem was invisible until billing forced the projects back together. A structure that is perfectly organized for one purpose can be quietly wrong for another, and a project-only view was organized for doing the work, not for charging for it.
What changed when we reviewed by client instead
The fix was not to stop tracking by project, it was to review by client when billing. We kept logging against projects exactly as before, and at billing time we rolled those projects up to the client and worked from a single client-level view. Suddenly the invoice built itself from one place instead of three, and the manual merge that caused the errors simply disappeared.
Framed correctly, this is a reporting change, not a tracking change. The underlying entries never moved, we just looked at them grouped two different ways depending on the question. During the week we read them by project to manage the work, and at month end we read them by client to bill it. Being able to flip between those groupings in time reports was the whole unlock, because each view answered a question the other could not.
The lesson generalized nicely: track at the most detailed level that is natural, and review at whatever level the decision needs. Detailed data rolls up cleanly, but summary data cannot be broken back down, so capturing at the project level and summarizing to the client gave us both views for free. It also paired well with a habit we wrote about separately - tracking mainly the work that gets billed, which we cover in our take on tracking only client work - because clean client rollups depend on entries being tied to a client in the first place.
The setup we landed on for agencies vs freelancers
The track-low, review-high rule holds for everyone, but how much project structure you need underneath it depends on the shape of your business.
For agencies
Agencies usually have several projects per client and multiple people logging against them, so the client rollup is not a nicety, it is essential. Keep real project structure so you can manage delivery and spot scope creep, but make sure everything ties to a client so billing collapses to one clean invoice per client. The bigger the client relationship, the more the client-level view earns its place, and the more painful a project-only setup becomes at billing. Tools built around project and client hierarchies, like the ones we compare in our project-based tracking alternatives, are worth a look here.
For freelancers
Freelancers often have a simpler picture - sometimes one project per client, sometimes just ongoing work - so the project layer can be lighter. The priority is that time is organized by client from the start, so invoicing stays a one-step job even as you take on more clients. That client-first organization is exactly what we lean on in our look at a freelance time tracker for client invoices, and it matters more than elaborate project structure when you are billing solo.
Who should stay project-first, and who should switch
Stay purely project-focused if a project basically equals a client for you, or if your work is internal and not billed per client at all. In those cases there is nothing to roll up, and adding a client layer would be structure without payoff. If your projects and your invoices already line up one to one, you do not have the problem this switch solves.
Make the switch the moment a single client regularly spans multiple projects, because that is exactly when a project-only view starts costing you time and accuracy at billing. You do not have to change how you track, just add the client grouping and review at that level when you invoice. The change is small and the payoff is a billing process that stops being a monthly assembly job.
The honest summary is that project versus client is a false choice. Projects are for doing the work, clients are for charging for it, and the trick is simply to capture at the project level and review at the client level rather than forcing one structure to serve both. Once we stopped treating it as an either-or, the tension we had been fighting at every invoice just went away.
So project or client?
Both, at different moments. Track by project while you are doing the work, because that is the level that helps you manage scope and see where time really goes, and review by client when you bill, because that is the level an invoice actually needs. The switch that fixed our billing was not dropping projects, it was rolling them up to the client at the right moment.
If invoicing a multi-project client feels like a monthly assembly job, that is the signal to add a client-level view rather than reorganize everything. Keep your project detail, group it by client at billing, and let the same entries answer both questions. It is a small change to how you look at the data, and it removes a surprising amount of friction from every invoice.