Time tracking tells you where effort went. Resource planning decides where effort should go next. Run either alone and you get half the picture. Timesheets without planning describe the past without improving it. Planning without timesheets rests on guesses that never get corrected.
Project time tracking and resource planning work best as one loop. You measure real capacity, plan work against it, record what actually happened, and use the difference to plan better next time. This guide walks through that loop step by step, with worked examples for calculating capacity, setting utilization targets, improving estimates and forecasting delivery dates. If you are still choosing a tool, start with our guide to project management software with time tracking; this article is about running the practice.
The loop in one view
Capacity
- Question it answers
- How many hours do we really have?
- Output
- Available hours per person per week or sprint
Plan
- Question it answers
- What should those hours go to?
- Output
- Assignments and a committed plan with buffer
Track
- Question it answers
- Where did the hours actually go?
- Output
- Approved timesheets against work items
Compare
- Question it answers
- How far was reality from the plan, and why?
- Output
- Planned vs actual by task, project and person
Adjust
- Question it answers
- What do we change?
- Output
- Revised estimates, forecasts and assignments
| Stage | Question it answers | Output |
|---|---|---|
| Capacity | How many hours do we really have? | Available hours per person per week or sprint |
| Plan | What should those hours go to? | Assignments and a committed plan with buffer |
| Track | Where did the hours actually go? | Approved timesheets against work items |
| Compare | How far was reality from the plan, and why? | Planned vs actual by task, project and person |
| Adjust | What do we change? | Revised estimates, forecasts and assignments |
The rest of this guide takes each stage in turn.
Step 1: decide why you track time and set the rules
People resent time tracking when it feels like surveillance and skip it when it feels pointless. Before rolling it out, write down in a few sentences what the data is for, who will see it, and what it will never be used for. A typical statement: hours are used to improve estimates, plan capacity and report effort by project; managers see their team’s hours; nobody is ranked by hours logged.
In some places, recording working time is also a legal matter. In 2019 the Court of Justice of the European Union ruled in the CCOO v Deutsche Bank case that EU Member States must require employers to set up a system for measuring the duration of each worker’s daily working time. How that applies depends on national law, so check with your HR or legal team. Keep project time tracking, which records effort against work, distinct from working-time records, even if one tool captures both.
Choose categories and granularity
Track at the level that answers your questions, and no finer. A handful of categories beats a long list nobody uses consistently. Examples by team type:
Digital agency
- Suggested categories
- Client project work, client rework or out-of-scope requests, pitches, internal
SaaS product team
- Suggested categories
- Feature work, bugs, technical debt, support escalations, ceremonies and meetings
IT and support
- Suggested categories
- Projects, incidents, service requests, maintenance, meetings
Marketing team
- Suggested categories
- Campaigns, content, events, reporting, ad hoc requests
| Team | Suggested categories |
|---|---|
| Digital agency | Client project work, client rework or out-of-scope requests, pitches, internal |
| SaaS product team | Feature work, bugs, technical debt, support escalations, ceremonies and meetings |
| IT and support | Projects, incidents, service requests, maintenance, meetings |
| Marketing team | Campaigns, content, events, reporting, ad hoc requests |
Rule of thumb: log time against a work item when the item is big enough to estimate, usually half a day or more. Group small interruptions under a category such as “support” instead of creating a task for each one. That captures unplanned work, which is often the most important thing time data reveals, without burying people in admin.
Step 2: run a weekly timesheet routine
Timesheet data is only as good as its habits. A predictable weekly rhythm keeps it complete and reviewed:
End of each day
- Who
- Everyone
- What happens
- Log the day’s time against work items, a few minutes at most
Friday afternoon
- Who
- Everyone
- What happens
- Check the week, fill gaps, submit
Monday morning
- Who
- Approvers
- What happens
- Approve or return timesheets with a comment
Monday afternoon
- Who
- Project leads
- What happens
- Planned vs actual and workload reports refresh from approved time
Tuesday
- Who
- Leads and managers
- What happens
- 30-minute resource review (see below)
| When | Who | What happens |
|---|---|---|
| End of each day | Everyone | Log the day’s time against work items, a few minutes at most |
| Friday afternoon | Everyone | Check the week, fill gaps, submit |
| Monday morning | Approvers | Approve or return timesheets with a comment |
| Monday afternoon | Project leads | Planned vs actual and workload reports refresh from approved time |
| Tuesday | Leads and managers | 30-minute resource review (see below) |
What approvers should check: missing days, hours against closed or wrong items, unusually large entries, and work logged to categories like “support” that is growing week on week. Approval is a quality check on the data, not a judgment of the person. Returning a timesheet with a clear comment is normal and should be quick.
Reduce friction wherever you can. Copying a recurring week, reminders before the deadline and a short daily digest of missing entries do more for completeness than any policy memo.
Step 3: calculate real capacity
A 40-hour week is not 40 hours of project capacity. Leave, meetings, support rotations, admin and shared roles all come first. Here is an illustrative two-week sprint for a five-person product team, with 8-hour days:
Developer A
- Contracted
- 80
- Leave
- 0
- Meetings and ceremonies
- 12
- Support rotation
- 0
- Available
- 68
Developer B
- Contracted
- 80
- Leave
- 16
- Meetings and ceremonies
- 10
- Support rotation
- 0
- Available
- 54
Developer C
- Contracted
- 80
- Leave
- 0
- Meetings and ceremonies
- 12
- Support rotation
- 20
- Available
- 48
QA engineer
- Contracted
- 80
- Leave
- 0
- Meetings and ceremonies
- 10
- Support rotation
- 0
- Available
- 70
Designer (50% shared)
- Contracted
- 40
- Leave
- 0
- Meetings and ceremonies
- 6
- Support rotation
- 0
- Available
- 34
Team total
- Contracted
- 360
- Leave
- 16
- Meetings and ceremonies
- 50
- Support rotation
- 20
- Available
- 274
| Person | Contracted | Leave | Meetings and ceremonies | Support rotation | Available |
|---|---|---|---|---|---|
| Developer A | 80 | 0 | 12 | 0 | 68 |
| Developer B | 80 | 16 | 10 | 0 | 54 |
| Developer C | 80 | 0 | 12 | 20 | 48 |
| QA engineer | 80 | 0 | 10 | 0 | 70 |
| Designer (50% shared) | 40 | 0 | 6 | 0 | 34 |
| Team total | 360 | 16 | 50 | 20 | 274 |
The team has 274 available hours, about 76% of contracted time, before any allowance for surprises. Most teams then commit only part of the available time, keeping a buffer for unplanned work and estimation error. Committing 85% of available time here would mean planning about 233 hours of work, leaving roughly 41 hours for the unexpected. The right buffer depends on how predictable your work is; use your own unplanned-work history from timesheets to set it.
Scrum teams will recognize this from sprint planning. The Scrum Guide notes that the more developers know about their past performance, upcoming capacity and Definition of Done, the more confident they will be in their sprint forecasts. Our sprint planning guide covers how capacity feeds into choosing sprint scope.
Step 4: plan demand against capacity across projects
Once capacity is known, compare it with demand. Build a simple grid of people against projects for the next few weeks, with hours planned in each cell and each person’s available hours at the end of the row. Three problems show up immediately:
- Over-allocation: planned hours exceed available hours. Someone’s plan only works if they skip their support rotation or work weekends.
- Specialist bottlenecks: one person, often a senior engineer, designer or QA lead, appears on every project. Their capacity sets the pace for everyone.
- Fragmentation: people split across many projects lose time switching between them. Limit how many projects one person carries at once where you can.
When demand exceeds capacity, do not leave individuals to resolve the conflict by working longer. Project owners should agree what moves: reduce scope, change the sequence, add capacity, or move a date. Capacity shortfalls are a project risk and belong on the risk log; our guide to project risk management shows how to track them.
Step 5: set utilization targets that leave room to breathe
Utilization is the share of available time spent on planned project work. It is tempting to push it toward 100%. That backfires, because work arrives unevenly and tasks vary in size, so a fully loaded team builds queues.
Queueing theory shows why. Kingman’s formula, a standard approximation for waiting time in a queue, multiplies waiting time by a utilization term equal to utilization ÷ (1 − utilization). Here is how that term grows:
50%
- Utilization term
- 1.0
- Relative waiting time vs 50%
- 1×
70%
- Utilization term
- 2.3
- Relative waiting time vs 50%
- 2.3×
80%
- Utilization term
- 4.0
- Relative waiting time vs 50%
- 4×
90%
- Utilization term
- 9.0
- Relative waiting time vs 50%
- 9×
95%
- Utilization term
- 19.0
- Relative waiting time vs 50%
- 19×
| Utilization | Utilization term | Relative waiting time vs 50% |
|---|---|---|
| 50% | 1.0 | 1× |
| 70% | 2.3 | 2.3× |
| 80% | 4.0 | 4× |
| 90% | 9.0 | 9× |
| 95% | 19.0 | 19× |
The model is a simplification of real teams, but the direction is reliable. Moving from 80% to 90% loaded more than doubles the waiting term, and urgent requests, reviews and handoffs start sitting in queues. Leave deliberate slack, especially for people who handle interruptions or are bottlenecks for others.
Separate two measures that often get mixed up. Total utilization covers all project work. Client-facing or billable utilization, common in agencies and IT services, covers only hours that can be charged. Targets for each should be set by the business model and reviewed alongside quality, margin and team health, never in isolation.
Step 6: use actual hours to improve estimates
After work is done, compare estimates with actuals for comparable items. An illustrative set from a completed sprint:
Payment API endpoint
- Estimate (h)
- 16
- Actual (h)
- 20
- Actual ÷ estimate
- 1.25
Settings form
- Estimate (h)
- 12
- Actual (h)
- 11
- Actual ÷ estimate
- 0.92
Data migration script
- Estimate (h)
- 8
- Actual (h)
- 18
- Actual ÷ estimate
- 2.25
Bug fix batch
- Estimate (h)
- 10
- Actual (h)
- 12
- Actual ÷ estimate
- 1.20
Report export
- Estimate (h)
- 6
- Actual (h)
- 7
- Actual ÷ estimate
- 1.17
Total
- Estimate (h)
- 52
- Actual (h)
- 68
- Actual ÷ estimate
- 1.31
| Work item | Estimate (h) | Actual (h) | Actual ÷ estimate |
|---|---|---|---|
| Payment API endpoint | 16 | 20 | 1.25 |
| Settings form | 12 | 11 | 0.92 |
| Data migration script | 8 | 18 | 2.25 |
| Bug fix batch | 10 | 12 | 1.20 |
| Report export | 6 | 7 | 1.17 |
| Total | 52 | 68 | 1.31 |
The overall ratio is 1.31, but one item drives most of the gap. Without the migration script the ratio is 1.14 (44 estimated, 50 actual). The right response is not to add 31% to every future estimate. Ask why the migration ran over: was the source data messier than expected, or was a dependency missing? Then fix that cause, for example by adding a data-profiling task before future migrations, and apply a modest correction to the rest.
Patterns are more useful than single items. Look for repeat causes of overruns such as unclear requirements, long review cycles, environment problems or hidden dependencies. Investigate gaps as a team, never as a judgment on whoever logged the hours.
Step 7: forecast with ranges, not single dates
Time data turns forecasting from guesswork into arithmetic. Suppose a client project has 300 hours of estimated work remaining. Past projects of this type ran between 1.0 and 1.3 times their estimates, typically about 1.15. The team can give the project 90 hours a week after other commitments.
Optimistic (1.0×)
- Expected hours
- 300
- Weeks at 90 hours a week
- 3.3
Typical (1.15×)
- Expected hours
- 345
- Weeks at 90 hours a week
- 3.8
Pessimistic (1.3×)
- Expected hours
- 390
- Weeks at 90 hours a week
- 4.3
| Scenario | Expected hours | Weeks at 90 hours a week |
|---|---|---|
| Optimistic (1.0×) | 300 | 3.3 |
| Typical (1.15×) | 345 | 3.8 |
| Pessimistic (1.3×) | 390 | 4.3 |
The honest forecast is “three and a half to four and a half weeks, most likely about four”. Update it weekly as actuals come in, and tell stakeholders when the range moves rather than when the date is missed. If you are building the original schedule, our guide on how to create a project plan covers estimating and sequencing in more detail.
The weekly resource review
A short, regular review turns the data into decisions. Keep it to 30 minutes with project leads and whoever owns staffing:
- 1.Check timesheet completeness. Incomplete data means the rest of the review is guesswork.
- 2.Review planned vs actual for active projects and note anything more than about 20% off plan.
- 3.Look at next week’s workload by person and flag over-allocation and idle capacity.
- 4.Check upcoming milestones and dependencies, especially those waiting on a bottleneck person.
- 5.Review unplanned work: is support or ad hoc work eating more capacity than planned?
- 6.Decide and record actions: move work, change scope, re-sequence, add capacity, or update the forecast. Each action gets an owner.
Metrics worth tracking
Utilization
- How to calculate it
- Project hours ÷ available hours
- Use it to
- Spot overload and idle capacity
- Don’t use it to
- Rank individuals
Planned vs actual variance
- How to calculate it
- (Actual − planned) ÷ planned
- Use it to
- Improve estimates and plans
- Don’t use it to
- Blame whoever logged the hours
Unplanned work share
- How to calculate it
- Unplanned hours ÷ total logged hours
- Use it to
- Size your buffer
- Don’t use it to
- Ban interruptions that serve customers
Timesheet completion
- How to calculate it
- Submitted on time ÷ expected
- Use it to
- Judge data quality
- Don’t use it to
- Discipline people publicly
Forecast accuracy
- How to calculate it
- Actual finish vs forecast range
- Use it to
- Calibrate future ranges
- Don’t use it to
- Punish honest uncertainty
| Metric | How to calculate it | Use it to | Don’t use it to |
|---|---|---|---|
| Utilization | Project hours ÷ available hours | Spot overload and idle capacity | Rank individuals |
| Planned vs actual variance | (Actual − planned) ÷ planned | Improve estimates and plans | Blame whoever logged the hours |
| Unplanned work share | Unplanned hours ÷ total logged hours | Size your buffer | Ban interruptions that serve customers |
| Timesheet completion | Submitted on time ÷ expected | Judge data quality | Discipline people publicly |
| Forecast accuracy | Actual finish vs forecast range | Calibrate future ranges | Punish honest uncertainty |
For how these fit with delivery measures such as cycle time and on-time completion, see our guide to project management KPIs.
Common mistakes and how to fix them
Planning at 100% of contracted hours
- What happens
- Every plan slips; people work late
- Fix
- Plan against available hours with a buffer
Too many categories
- What happens
- Inconsistent, unusable data
- Fix
- Keep a handful; review after a month
Timesheets filled in monthly
- What happens
- Hours reconstructed from memory
- Fix
- Daily logging, weekly submission
Ignoring unplanned work
- What happens
- Capacity looks fine on paper but isn’t
- Fix
- Track it as a category and plan for it
Blanket buffers on every estimate
- What happens
- Padding hides real causes
- Fix
- Investigate outliers, fix root causes
Using hours as a performance score
- What happens
- People log defensively, data loses value
- Fix
- Judge outcomes, use hours for planning
| Mistake | What happens | Fix |
|---|---|---|
| Planning at 100% of contracted hours | Every plan slips; people work late | Plan against available hours with a buffer |
| Too many categories | Inconsistent, unusable data | Keep a handful; review after a month |
| Timesheets filled in monthly | Hours reconstructed from memory | Daily logging, weekly submission |
| Ignoring unplanned work | Capacity looks fine on paper but isn’t | Track it as a category and plan for it |
| Blanket buffers on every estimate | Padding hides real causes | Investigate outliers, fix root causes |
| Using hours as a performance score | People log defensively, data loses value | Judge outcomes, use hours for planning |
Where QuikProjects fits
QuikProjects keeps both halves of the loop in the same workspace as the work. People log time in a weekly grid or straight from a task, copy last week in one click, and get reminders and a daily digest for missing entries. Managers approve timesheets in one place. Capacity updates from working schedules and holidays, the resource report shows expected, spent and estimated hours for every person with overload highlighted, and planned-versus-actual reports by project and person come from approved timesheets. Time tracking is included on the Free plan for up to 10 users; advanced time tracking with approvals is on Pro.
Frequently asked questions
How often should we plan capacity?
Match it to your delivery rhythm. Sprint teams plan capacity at each sprint planning session. Service teams usually plan weekly for the next two to four weeks and monthly for longer engagements. Recalculate whenever leave, staffing or priorities change significantly.
What is a good utilization rate?
There is no universal figure. It depends on how predictable your work is and how much of it is interrupt-driven. Teams handling incidents or support need more slack than teams working through a stable backlog. Start with your own unplanned-work share, leave room for it, and adjust based on whether queues and overtime are growing.
Should everyone track time, including managers?
If managers spend significant time on project work, yes, or capacity and effort reports will understate what projects really cost. If their time is almost entirely management, a simple category is enough. Consistency matters more than completeness.
The bottom line
Good project time tracking and resource planning is a loop, not a reporting exercise. Measure real capacity, plan to less than all of it, keep timesheets simple and reviewed weekly, and use the gap between plan and reality to improve estimates and forecasts. Done well, it gives teams fewer late nights and gives stakeholders dates they can trust. For how this fits into the full project lifecycle, see our complete guide to project management.
Want timesheets, capacity and planned-versus-actual in the same place as your sprints and tasks? Start QuikProjects free for up to 10 users, no credit card needed.
Sources
See it running on your business.
A walkthrough built around how your team works today.

