Agency project reporting only works if it tells you where a project is actually drifting, not where a dashboard wants you to stare. The numbers that matter are the ones that show labour, scope, and margin pressure early. The frozen rate on a time entry matters because it stops old work being restated when you reprice, so history stays honest.
That is the standard FlatHours is built around. The pricing page shows the flat price model, and it matters here because reporting only feels trustworthy when the software does not change the past every time you change the plan.
Agency project reporting and the numbers that actually matter
Good reporting is not a long list of totals. It is a small set of signals that tell you whether a project can still be delivered without eating the margin. The best signals are boring. They are time, rate, scope, and what those three are doing over time.
Start with the question that matters most: is the project using time faster than the work is being completed? If the answer is yes, you have a problem even if the invoice looks healthy and the team feels busy. Busy is not the same as safe.
What to watch first
- Logged time against the estimate.
- Logged time by phase or task.
- The rate used when the work was recorded.
- Outstanding work that has been agreed but not yet billed.
- Scope changes that never made it into the estimate.
These are the numbers that show whether a project is drifting. They are not glamorous. They are useful.
A report that shows only total hours can still hide a bad project. A report that shows only total invoiced can hide unpaid labour. A report that shows only a team total can hide one phase that is quietly consuming the whole job. When people say they want project reporting, they often mean they want a summary that feels reassuring. That is not the same thing.
Agency project reporting: vanity numbers versus warning signs
Some numbers are real, but they are not decision-making numbers. They make a report look complete while telling you very little about delivery risk. Others are ugly but useful, because they force a conversation before the project is beyond rescue.
| Signal | What it tells you | How to read it |
|---|---|---|
| Total logged hours | How much time has been recorded | Useful only when compared with the estimate or budget |
| Total invoices sent | How much has been billed | Useful for cash flow, not enough for delivery health |
| Hours by task or phase | Where the effort is going | Useful when one area starts consuming more time than planned |
| Revenue by client | How much money a client generates | Useful at account level, not enough to spot a slipping project |
| Unbilled time | Work that has not yet been invoiced | Useful when it is growing faster than expected |
There is a plain rule here. If a number does not help you decide whether to change scope, replan work, or raise the budget conversation, it is probably not the number you need at project level.
That does not mean vanity numbers are useless. They can help with internal reporting, staffing, and client review. But they should never be mistaken for the health check. A project can have strong invoice totals and still be under water. A project can have a busy team and still be profitable only on paper. The report has to show the strain, not the story you want to tell about the strain.
Which numbers show a project is in trouble
There is no single number that gives the game away. Trouble usually shows up as a pattern. The work starts taking more time than the plan allowed, the overruns keep appearing in the same place, and the team begins to explain the same delay in slightly different language.
Signals worth taking seriously
Time overrun in one phase. If design, build, or QA keeps going over while the rest of the project still looks fine, the project is not fine. One overrun can be a correction. Repeated overrun is drift.
Rising unbilled time. If the team keeps logging work that has not been invoiced, ask why. Sometimes the answer is timing. Sometimes it is scope creep. Sometimes it is a process problem. The report should not let those look the same.
Work recorded at the wrong rate. If old time gets repriced when someone edits the project later, the report stops being history and becomes a revised story. That is dangerous because it hides what the job actually cost when the work was done.
Task-level imbalance. If a small task class keeps eating time, that usually means the plan was wrong, the brief was weak, or the client kept moving the target. A healthy report makes that visible before it becomes a blame game.
Revisions without a matching scope update. Any report that shows more and more effort with no formal change in scope is warning you that the project is being financed by optimism.
These are not abstract warnings. They are the practical signs an agency owner or project lead can act on. The best report gives you the moment where you can still change the plan.
Why frozen rates matter in agency project reporting
This is the part people often miss. A project report is not only about how many hours were logged. It is also about what those hours meant when they were recorded. If you reprice work later and the software rewrites the old entries, you lose the ability to see the original state of the project.
Frozen rates on a time entry stop that from happening. Each entry keeps the rate that applied when the work was done. If you later raise a rate, move a client onto a new agreement, or change how you bill, the old entries still show the old truth. That is not a cosmetic detail. It is the difference between reporting and revision.
Without frozen rates, a project can look healthier after a repricing than it really was. The old hours appear more valuable, the old margin looks better, and the report starts telling finance what it wishes had happened. That makes post-mortems pointless. It also makes it harder to spot whether the issue was underpricing, bad scoping, or slow delivery.
Frozen rates help in three ways:
- They preserve the cost and value of work at the moment it was done.
- They let you compare old projects with new ones without rewriting the record.
- They make repricing a forward-looking change instead of a historical edit.
That last point matters more than people think. A rate change should affect future work. It should not quietly rewrite the meaning of last month’s timesheet.
If a project report changes its story every time you reprice, it is not a report. It is an edited memory.
How to read a project report without fooling yourself
Read the report in layers. First look at whether the project is still on the plan. Then look at where the overrun is coming from. Only after that should you care about the final invoice shape.
A simple order of operations
- Compare logged time against the estimate or budget.
- Find the phase or task where time is moving out of bounds.
- Check whether the overrun is new, repeating, or spreading.
- Look at unbilled time to see whether the risk is already hitting cash.
- Check the rate attached to the work so the historical record stays clean.
That order keeps you honest. It also stops you from talking yourself into a good month while a bad project is eating itself underneath it.
For agencies that want a flat price without surprises, this is part of the wider argument on FlatHours pricing: the software should not start billing you more because your team did more work, and it should not restate history because you changed a rate later. Flat pricing is not a slogan here. It is the condition that lets project reporting stay readable.
There is one honest counter-argument. Some teams do want their report to reflect the latest commercial rate across all past work, because they care more about current revenue views than historical accuracy. That can be a valid finance choice. It is not a good project control choice. If you need to know whether a project drifted, you need the old entries to stay put.
That is why agency project reporting should be read as a record of decisions, not a summary of feelings. The useful numbers are the ones that show pressure early, the vanity numbers are the ones that flatter the report, and frozen rates are what stop the past being rewritten when the price changes.