HomeBlog › PTO Tracking and Capacity Planning

PTO Tracking and Capacity Planning: Stop Overbooking Your Team

Sprint planning typically starts with a question: "How many story points can we commit to this sprint?" The answer depends on who is available. And who is available depends on who has approved time off during the sprint window.

In most teams, these two pieces of information live in different systems. Sprint planning happens in Jira. PTO tracking happens in a spreadsheet, an HR tool, or someone's memory. The connection between them is a human being who remembers to check both before committing to a sprint scope.

When that connection fails, the result is overcommitment. The team plans for full capacity, then discovers mid-sprint that two engineers are out for three days each. That is six person-days gone, and the sprint scope does not shrink to match.

The math behind capacity planning

Capacity planning is straightforward arithmetic, but only if you have the inputs.

A standard two-week sprint has 10 working days. A five-person engineering team has a maximum capacity of 50 person-days. But that is the theoretical maximum. Real capacity is lower:

If one engineer is out for three days and a public holiday falls in the sprint, actual capacity is 44 person-days, not 50. That is a 12% reduction. Planning at 100% and delivering at 88% is a recipe for missed commitments.

The compounding effect: Teams that consistently overcommit develop a pattern of carrying work into the next sprint. Over time, the backlog grows, estimates lose meaning, and stakeholders lose trust in delivery dates. The root cause is often not bad estimation. It is planning against capacity that does not account for absences.

Why PTO data stays disconnected

The reason PTO and capacity planning are separate is usually historical. When the team was small, everyone knew when everyone else was out. There was no need to formalize it. As the team grew, PTO tracking moved to a spreadsheet or an HR tool, but sprint planning stayed in Jira. Nobody built the bridge.

The consequences:

Connecting the two systems

There are three ways to bring PTO data into sprint planning.

Option 1: Manual capacity spreadsheet

Before each sprint planning session, the scrum master builds a capacity spreadsheet. They check the PTO tracker, note who is out, subtract days, and present the adjusted capacity to the team.

This works but does not scale. It takes 15 to 30 minutes per sprint, it depends on a single person doing it correctly, and it is outdated the moment someone submits a new PTO request after the spreadsheet was built.

Option 2: PTO issues on the Jira board

Some teams create "Out of Office" issues in Jira so absences are visible alongside sprint work. This makes PTO visible during planning, but at the cost of cluttering the board with non-work items.

Option 3: Integrated leave and availability data

The ideal approach is leave data that lives in the same tool as sprint planning, visible without manual effort. When a manager opens the sprint planning view, they see: five engineers on the team, one is out Monday and Tuesday, actual capacity is 48 person-days. No spreadsheet, no Slack thread, no guesswork.

This requires leave tracking to be built into (or tightly integrated with) your Jira instance. TeamOps provides this by running leave management inside Jira. Approved absences show up in a team availability view, and managers can see who is out during any date range.

Leave approval with capacity context

The other half of this problem is leave approval. When a manager approves a PTO request, they should know the impact on team capacity. If three of five engineers request the same Friday off, approving all three means the team is at 40% capacity that day.

Without visibility, the manager approves each request in isolation. They do not realize the overlap until the sprint is already planned and someone points out that half the team is gone next Friday.

A leave management system with team-level visibility surfaces this conflict at approval time, not at planning time. The manager sees: "Approving this request means 3 of 5 engineers are out on June 14th." They can still approve it, but they are making an informed decision.

Seasonal patterns and forward planning

PTO data is not just useful sprint-to-sprint. Aggregated over time, it reveals seasonal patterns that inform quarterly planning.

These patterns are only visible when you have historical PTO data in a queryable system. A spreadsheet can technically do this analysis, but few teams actually do it. An analytics layer that shows PTO trends by month makes the pattern obvious.

A practical workflow

If you want to connect PTO tracking and capacity planning today, the simplest path is:

  1. Move leave tracking into Jira using a purpose-built leave app so absences are in the same system as your sprint board.
  2. Check team availability before sprint planning. Look at approved absences during the sprint window and calculate actual capacity.
  3. Scope the sprint to actual capacity, not theoretical. If capacity is 88%, plan for 88%.
  4. Review PTO trends quarterly. Identify months with historically lower capacity and adjust delivery expectations accordingly.

TeamOps handles this inside Jira. Free for up to 10 users.