Capacity & Forecasting
Understand absorption capacity, how it's calculated, and how to forecast whether the team can take new work.
Capacity & Forecasting
Daily capacity
Each member's daily capacity is derived from their work schedule:
weeklyHours ÷ daysPerWeek— default (e.g. 40h ÷ 5 = 8h/day)dailyHoursMap— per-day override (e.g.{"1":8,"2":8,"3":8,"4":8,"5":4}for a Friday half-day)
Leaves reduce available capacity for affected days.
Absorption capacity
Absorption capacity is the total hours available in a future window after accounting for:
- Work schedule (start/end, break, work days)
- Approved leaves
- Already-planned tasks (from the materialized agenda)
remainingCapacity = totalCapacity − plannedHours
This tells you how many more hours a member can absorb before their schedule is full.
Capacity forecast (Telegram)
As a PM you can ask the Telegram bot:
"Can the team take 80 hours of new work starting next Monday?"
The bot calls capacity_forecast and returns:
- Total team capacity for the date range
- Already committed hours
- Available buffer
- Which members have the most headroom
See Telegram PM Tools for example conversations.
Work schedule profiles
Members can be assigned a schedule profile (configured in Settings → Work Schedules). Profiles define:
startHour/endHour— workday bounds (e.g. 9.0 / 18.0)breakStartHour/breakEndHour— lunch breakworkDays— ISO day numbers (1=Mon … 7=Sun)
Individual members can override any profile field without changing the profile itself.
Planning horizon
The agenda planner looks 30 business days ahead. Beyond that horizon, tasks show as unscheduled. Use the capacity forecast tool for longer-range questions.