Planning Sprints with Accurate Capacity | Focus Factor
Calculate sprint capacity realistically using focus factors (70-80%). Account for PTO, meetings, and interruptions to avoid overcommitment in GitScrum.
7 min read
Overcommitment is the default failure mode for sprints. Teams routinely plan assuming 100% availability, perfect estimates, and no surprises. Realistic capacity planning accounts for meetings, PTO, bugs, and the unexpected, leading to achievable commitments and sustainable pace.
Capacity Problems
| Overcommitment Sign | Root Cause |
|---|---|
| Never finish sprints | Planning to 100% capacity |
| Sprint spillover | Not accounting for PTO |
| Burnout | No buffer for surprises |
| Poor estimates | Ignoring meetings/interrupts |
| Team stress | Unrealistic expectations |
Capacity Calculation
Basic Formula
CAPACITY CALCULATION
ββββββββββββββββββββ
FORMULA:
βββββββββββββββββββββββββββββββββββββ
Capacity = (Available Days Γ Hours/Day Γ Focus Factor)
- Known Interruptions
EXAMPLE: 5-person team, 2-week sprint
βββββββββββββββββββββββββββββββββββββ
STEP 1: Available Days
ββββββββββββββββββββ
Person Days Available Notes
ββββββββββββββββββββββββββββββββββββββ
Sarah 10 days Full sprint
Mike 8 days 2 days PTO
Alex 10 days Full sprint
Emma 9 days 1 day training
Jordan 10 days Full sprint
ββββββββββββββββββββββββββββββββββββββ
Total: 47 person-days
STEP 2: Productive Hours per Day
ββββββββββββββββββββ
8 hour workday
- 1.5 hours meetings (average)
- 0.5 hours email/Slack
- 0.5 hours context switching
ββββββββββββββββββββββββββββββββββββ
= 5.5 productive hours/day
STEP 3: Focus Factor
ββββββββββββββββββββ
Team focus factor: 75%
(Accounts for bugs, support, unknowns)
STEP 4: Calculate
ββββββββββββββββββββ
47 days Γ 5.5 hours Γ 75% = 194 hours
STEP 5: Convert to Points (if used)
ββββββββββββββββββββ
If 1 point β 4 hours of work:
194 hours / 4 = 48 story points
PLAN FOR: 45-48 story points
(Not the 75 points we might want)
Person-by-Person
INDIVIDUAL CAPACITY PLANNING
ββββββββββββββββββββββββββββ
DETAILED BREAKDOWN:
βββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Name β Days β Hrs/Day β Focus β Hours β Points β Notes β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Sarah β 10 β 5.5 β 80% β 44 β 11 β On-call week 2 β
β Mike β 8 β 5.5 β 75% β 33 β 8 β 2 days PTO β
β Alex β 10 β 5.0 β 70% β 35 β 9 β Extra meetings β
β Emma β 9 β 5.5 β 80% β 40 β 10 β Training day 1 β
β Jordan β 10 β 5.5 β 75% β 41 β 10 β Full capacity β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β TOTAL β β β β 193 β 48 β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
FOCUS FACTOR ADJUSTMENTS:
βββββββββββββββββββββββββββββββββββββ
Standard: 75%
On-call: 65% (more interrupts)
Mentor: 70% (helping new hire)
Architect: 60% (meetings, reviews)
Manager: 50% (meetings heavy)
CAPACITY BUFFER:
βββββββββββββββββββββββββββββββββββββ
Calculated: 48 points
Buffer (10%): -5 points
Commit to: 43 points
Why buffer:
βββ Estimates are optimistic
βββ Unknowns always emerge
βββ Better to finish than fail
βββ Can pull more if ahead
Focus Factor
What Eats Time
WHERE TIME GOES (REALITY)
βββββββββββββββββββββββββ
8-HOUR DAY BREAKDOWN:
βββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 8 hours total β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β ββββββββββββββββββββββββββββββββββββ Sprint work (4h) β
β βββββββββββββββββ Meetings (1.5h) β
β ββββββββ Email/Slack (0.5h) β
β ββββββββ Code review (0.5h) β
β ββββββββ Helping others (0.5h) β
β ββββββ Context switching (0.5h) β
β ββββββ Breaks, admin (0.5h) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
FOCUS FACTOR = 4h / 8h = 50%
But wait, we said 75%...?
REALISTIC CALCULATION:
βββββββββββββββββββββββββββββββββββββ
Available productive time: 5.5 hours
(after meetings, email, breaks)
Focus factor applied to those 5.5 hours:
5.5 Γ 75% = 4.1 hours of sprint work
That's more realistic.
FACTORS REDUCING FOCUS:
βββββββββββββββββββββββββββββββββββββ
βββ Urgent bugs
βββ Production issues
βββ Helping teammates
βββ Clarifying requirements
βββ Tool problems
βββ Context switching
βββ Unplanned meetings
Measuring Focus Factor
FINDING YOUR FOCUS FACTOR
βββββββββββββββββββββββββ
METHOD 1: Track Time
βββββββββββββββββββββββββββββββββββββ
For 2 weeks, log time:
βββ Sprint work: X hours
βββ Meetings: Y hours
βββ Other: Z hours
Focus Factor = X / (X + Z)
(Meetings already excluded from available time)
METHOD 2: Back-Calculate
βββββββββββββββββββββββββββββββββββββ
Last 5 sprints:
βββ Capacity planned: 50 points
βββ Completed: 38 points average
βββ Implied focus factor: 76%
Use 75% for future planning.
METHOD 3: Industry Benchmark
βββββββββββββββββββββββββββββββββββββ
Starting points:
βββ New team: 60%
βββ Mature team: 75%
βββ Well-oiled team: 80%
βββ Max reasonable: 85%
βββ If higher, probably lying
ADJUST FOR CONTEXT:
βββββββββββββββββββββββββββββββββββββ
βββ On-call rotation: -10%
βββ Major release prep: -15%
βββ New technology: -10%
βββ Mentoring new hire: -5%
βββ Crunch period: +5% (short term only)
βββ Summer/holidays: -10%
Sprint Planning
Planning Process
SPRINT PLANNING WITH CAPACITY
βββββββββββββββββββββββββββββ
PRE-PLANNING:
βββββββββββββββββββββββββββββββββββββ
Before meeting:
βββ Calculate team capacity (above)
βββ Groom top priority items
βββ Ensure items are estimated
βββ Know who's out and when
βββ Review last sprint performance
IN PLANNING MEETING:
βββββββββββββββββββββββββββββββββββββ
1. CONFIRM CAPACITY
"We have 43 points this sprint.
Sarah's on-call week 2, Mike out Thu-Fri."
2. PULL FROM TOP OF BACKLOG
"Let's pull the top items until we hit 43 points."
3. CHECK ASSIGNMENTS
"Does this spread across the team reasonably?
Anyone overloaded? Anyone light?"
4. IDENTIFY DEPENDENCIES
"GS-100 blocks GS-101. We need GS-100 done by Day 5."
5. CONFIRM SPRINT GOAL
"If we complete these items, the sprint goal is:
'User authentication complete and tested'"
6. SANITY CHECK
"Looking at this list, does 43 points in 2 weeks
feel right? More or less than last time?"
COMMIT:
βββββββββββββββββββββββββββββββββββββ
"We're committing to 40 points, with 3 points stretch.
Sprint goal: User authentication complete."
Adjustment Triggers
WHEN TO ADJUST CAPACITY
βββββββββββββββββββββββ
REDUCE CAPACITY:
βββββββββββββββββββββββββββββββββββββ
βββ Major production incident expected
βββ Company all-hands / events
βββ Holiday in sprint
βββ Key person out
βββ On-call rotation heavy
βββ New team member starting
βββ Major refactor underway
βββ Previous sprint spillover significant
INCREASE CAPACITY:
βββββββββββββββββββββββββββββββββββββ
βββ Extra person temporarily
βββ No holidays
βββ Very focused sprint (no support)
βββ Team is in the zone
βββ BUT: Be conservative, not optimistic
NEVER ADJUST FOR:
βββββββββββββββββββββββββββββββββββββ
βββ Pressure from stakeholders
βββ "We need to do more"
βββ Making up for last sprint
βββ Unrealistic deadlines
βββ Capacity is capacity, not wish
GitScrum Setup
Capacity Tracking
GITSCRUM CAPACITY FEATURES
ββββββββββββββββββββββββββ
TEAM CAPACITY SETTINGS:
βββββββββββββββββββββββββββββββββββββ
Settings β Sprint Planning
Team members:
βββ Sarah: 10 days Γ 5.5 hrs Γ 80% = 44 hrs
βββ Mike: 8 days Γ 5.5 hrs Γ 75% = 33 hrs
βββ ...
PTO/ABSENCE:
βββββββββββββββββββββββββββββββββββββ
Mark in calendar:
βββ Mike: Dec 12-13 (PTO)
βββ Emma: Dec 10 (Training)
βββ Automatically reduces capacity
CAPACITY DASHBOARD:
βββββββββββββββββββββββββββββββββββββ
Sprint Planning view shows:
βββ Team capacity: 43 points
βββ Committed: 40 points
βββ Buffer: 3 points
βββ Status: β Within capacity
WARNING:
βββββββββββββββββββββββββββββββββββββ
If committed > capacity:
βββ β οΈ "Over capacity by 5 points"
βββ Recommend removing items
βββ Or adjusting expectations
Best Practices
For Capacity Planning
Anti-Patterns
CAPACITY MISTAKES:
β Planning to 100% capacity
β Ignoring PTO/holidays
β Not accounting for meetings
β Using optimistic estimates
β Pressure-based capacity
β Same capacity every sprint
β No buffer for surprises
β Ignoring historical data