Last updated November 6, 2026
A time by task report shows how many hours each person spent on each kind of work in a given month, with totals. You build it from timesheet lines carrying a date, a person, a project and a task code, using a pivot table. Compare a few months and you see where the hours are drifting.
What does a time by task report look like?
A time by task report has tasks as rows, people as columns, and a total and percentage on the right. Here's an invented one for March, from a three-person design practice with one part-timer:
| Task | Anna | Ben | Carla | Total | Share |
|---|---|---|---|---|---|
| Drawings | 62 | 96 | 60 | 218 | 49.5% |
| Revisions | 24 | 40 | 34 | 98 | 22.3% |
| Proposals | 30 | 0 | 10 | 40 | 9.1% |
| Client meetings | 18 | 6 | 8 | 32 | 7.3% |
| Admin | 14 | 8 | 8 | 30 | 6.8% |
| Site visits | 12 | 10 | 0 | 22 | 5.0% |
| Total | 160 | 160 | 120 | 440 | 100% |
Reading across shows you who does what. Anna carries three-quarters of the proposals and more than half of the site visits. Reading down shows you how one person's month was spent. Ben spent a quarter of his on revisions.
Different jobs need different cuts of the same data, so don't confuse this report with budget vs actual hours, which compares hours against a job's plan, or with utilisation, which measures the billable share.
How do you read time by task month by month?
To read time by task month by month, put each task's share in a row and look for a steady trend rather than a single odd month. A share corrects for months with more or fewer hours, which raw hours don't.
Here's the same invented practice, following one task across four months:
| Jan | Feb | Mar | Apr | |
|---|---|---|---|---|
| Total hours | 430 | 410 | 440 | 420 |
| Revisions, hours | 52 | 61 | 98 | 109 |
| Revisions, share | 12.1% | 14.9% | 22.3% | 26.0% |
Revisions have more than doubled while total hours stayed flat. April's 109 hours is 57 more than January's 52. At an invented internal cost of €60 an hour, that's €3,420 of extra cost in one month, and on fixed-fee work nobody is paying for it. No job report shows this, because each individual job only looks slightly over.
The usual remedy is commercial. Get sign-off at each stage, and charge for changes made after it. The guide to additional services sets out how to agree and invoice them.
| What you see | What it often means | What to try |
|---|---|---|
| Revisions rising | Sign-offs are weak, or the brief changes after them | Stage sign-offs, and charging for later changes |
| Proposals high, few wins | You're quoting for work you won't get | Qualify enquiries before writing them up |
| One person holds most meetings | A bottleneck, or a job that depends on one person | Bring someone else into client contact |
| Admin climbing on fee-earners | Work that could be done by someone else | Move it, or hire for it |
| A task almost nobody uses | The code isn't useful | Merge it |
These are starting points, not diagnoses. Ask the person before you decide what a number means.
How do you build a time by task report?
You build a time by task report by keeping one row per timesheet line and summarising them, never by typing totals into a monthly table. A flat list can be cut any way later, whereas a summary can't be taken apart again.
| Date | Month | Person | Project | Task | Hours |
|---|---|---|---|---|---|
| 02/03/2026 | 2026-03 | Anna | P-114 | Drawings | 4.5 |
| 02/03/2026 | 2026-03 | Anna | P-118 | Client meetings | 1.5 |
| 02/03/2026 | 2026-03 | Ben | P-114 | Revisions | 7.0 |
| 03/03/2026 | 2026-03 | Carla | Internal | Admin | 1.0 |
The Month column is a formula, such as =TEXT(A2,"yyyy-mm"), so nobody types it. Then either insert a pivot table with Task as rows, Person as columns, Hours as values and Month as a filter, or use a formula for each cell:
=SUMIFS(Hours, Person, "Anna", Task, "Drawings", Month, "2026-03")
Use a dropdown for the task column. A pivot table treats "Revisions", "revisions" and "Revision" as different tasks, and that does more damage to these reports than anything else. The team timesheet template has a weekly layout to collect these lines from.
How many task codes should you have?
Between 6 and 12 task codes, shared across all projects, is a sensible range for a small firm. The test for each code is whether you can name a decision it would change. "Revisions" passes, because a high number changes how you sign off stages. "Printing" usually fails, because you won't do anything differently whatever it says.
Use the same codes on every project, and keep the project in its own column. A code like "Riverside drawings" mixes the two up, and you'll never be able to add up drawings across jobs. Include an Admin code, or that time will be hidden inside whichever client job people happened to have open. Then leave the list alone for a few months, since a code you rename halfway through breaks the comparison you're building.
Getting time by task out of ERPFlow
ERPFlow has no time by task report and no per-person time reports. ERPFlow doesn't have a timer or timesheets today. Time tracking, including converting tracked time into invoices, is coming soon, but that doesn't cover a report like this one, so the method above stays in a spreadsheet.
The nearest thing today is the time spent field on a card in Projects, typed as hours and minutes. If each card is one task, you get a total per task. The board list totals time per project, and the customer's page totals it across their boards.
You can also export cards as CSV, with title, description, project, column, deadline and time spent in minutes. The file doesn't include assignees or dates, because a card holds one running total rather than dated entries. So you can see time per card, but not who spent it, and not in which month. To get a rough monthly figure per card, export at each month end and subtract the previous file's minutes from the current one's.