Automated capacity planning across 25 teams reduced planning

We built a custom capacity planning app that reduced our quarterly planning time from 3 days to roughly 1 day - a 65% time savings across 25 scrum teams. Before automation, each team manually calculated their capacity based on PTO, holidays, and historical velocity, then product managers manually allocated work. The process was error-prone and teams frequently over/under-committed.

Our solution uses Rally’s Lookback API to analyze velocity trends over the past 6 sprints, pulls team member availability from an external calendar system, and generates recommended sprint capacity with forecast accuracy. The app integrates directly into Rally’s sprint planning view.

Key implementation detail:

const velocityQuery = {
  find: {
    _ProjectHierarchy: teamOID,
    _TypeHierarchy: 'HierarchicalRequirement',
    ScheduleState: {$gte: 'Completed'}
  },
  fields: ['PlanEstimate','Iteration']
};

The custom app displays capacity recommendations right in the planning board, and teams can adjust the forecast model parameters if needed.

We built a Node.js service that queries Google Calendar API for PTO events, maps them to Rally team members by email, and calculates available person-days per sprint. The service runs nightly and stores availability in a Rally custom field. The capacity planning app reads that field when generating forecasts. It’s been solid for 8 months now with minimal maintenance.

This is impressive! How do you handle teams with fluctuating velocity due to onboarding or attrition? We’ve tried velocity-based forecasting but found it unreliable when team composition changes. Do you use weighted averages or some other smoothing technique?

What about forecast accuracy validation? You mentioned the app tracks this - are you comparing predicted vs actual sprint completion? We’re interested in building something similar but want to ensure the forecasts actually improve planning outcomes rather than just looking good on paper.