OOO Person-Days
Last updated: October 27, 2026
OOO Person-Days counts the person-days people spent out of office (OOO) in the selected scope and date range. Span uses the same OOO days to take time off out of its per-person rates, so this metric shows how much of that adjustment is happening.
Why it matters
OOO person-days answers "how many person-days of capacity did time off take?" It's the basis for:
Capacity planning: available capacity, not just headcount.
Reading other metrics: context when output drops during a high-OOO period.
Fair comparisons: comparing teams with different vacation patterns.
Seasonal planning: spotting summer and holiday periods for scheduling.
How it works
OOO Person-Days = count of person-days flagged out of office
Each day counts per person: three people each out for two days is 6 OOO person-days. Only weekdays can be OOO. Span counts days between each person's start and end dates, for everyone in scope, not only developers.
How OOO days affect other metrics:
Totals such as Total PRs Merged or Lines of Code: not adjusted. Time off lowers totals, which reflects what happened.
Per-PR metrics such as Comments Received / PR or PR Revert Rate: not adjusted, because they're relative to PRs, not time.
"/ week" rates such as PRs Merged / Week: OOO days leave the denominator, and PRs merged on an OOO day leave the numerator. Reviews and issues completed on an OOO day stay in the numerator. A day that isn't OOO counts as a full active day, even with a short out-of-office block. Span doesn't invent activity for time off, so a week fully out of office shows a rate of 0 at weekly granularity.
Calendar metrics such as focus time and meeting hours: OOO days leave both the hours and the day count.
Setup
Choose one OOO source for your organization in Settings → Org Calendar → Out of Office Days Source.
Calendar Integration (default). Span reads out-of-office events from Google Calendar or Microsoft (Outlook) calendar. Connect your calendar in Settings → Integrations, and ask people to use the out-of-office event type (Google "Out of office", Microsoft "Away") for time off. A weekday counts as OOO when out-of-office events cover more than 4 hours between 8am and 6pm in the person's local time zone. Brief absences, such as a doctor's appointment, don't mark the day. A full day does, and so does a half day longer than 4 hours, such as 8am to 1pm. A half day of exactly 4 hours, such as 1pm to 5pm, doesn't.
Event | Hours between 8am and 6pm | Counted? |
|---|---|---|
All-day Monday event | 10 hours | Yes |
2-hour event (10am to 12pm) | 2 hours | No |
Half-day event (8am to 1pm) | 5 hours | Yes |
Half-day event (1pm to 5pm) | 4 hours | No |
Weekend event | Not a weekday | No |
An event that starts at or after 6pm moves to the next day; one that ends before 8am moves to the previous day.
HRIS Integration. Span reads absence records from your HR system through Kombo. Connect your HRIS in Settings → Integrations, then pick HRIS Integration as the source. Every weekday inside an absence counts as OOO. Choose which absence types count with the type filter on the same page:
All: every absence record counts.
Include: only the types you list count, for example Vacation, Sick Leave, and Personal Day.
Exclude: every type counts except the ones you list, for example Work from Home.
Calendar | HRIS | |
|---|---|---|
Data source | Employee calendar events | HR system records |
Accuracy | Depends on calendar habits | System of record |
Setup | Simple | Needs an HRIS integration that supports absences |
Filtering | Fixed 4-hour rule | By absence type |
Best for | Teams that mark OOO in calendars | Organizations with formal HR processes |
Where to find it: Insights → Productivity → Focus time, the "OOO" card on a person's Time tab, team views, custom reports and dashboards, and the metrics API. An Avg OOO days variant divides OOO person-days by person-days employed.
Things to know
Worked example (counting): on a team of 5 over one week, Person A is out all week (5), Person B Monday and Tuesday (2), Person D Friday (1), and C and E aren't out. Total: 8 OOO person-days. Across an organization of 50 people over a 20-weekday month, 150 OOO person-days out of 1,000 possible leaves 850 available (85%).
Worked example (rates): you merge 20 PRs in a 30-day month and are out for one 5-weekday week. PR rates count every calendar day you were available, weekends included, so you have 25 active days. PRs Merged / Week = 20 ÷ 25 × 7 = 5.6. Without the OOO adjustment it would read 20 ÷ 30 × 7 = 4.7. If you had blocked only 1pm to 5pm on each of those 5 days, no day would be OOO and the rate would read 4.7.
Calendar blocks need the right type: a regular meeting block called "Vacation" doesn't count.
Holidays: company holidays count only when they appear as OOO events or HRIS absences for each person.
Requested absences count: with HRIS, absences with approved, requested, or unknown status count as OOO.
Half days: a calendar OOO block of 4 hours or less between 8am and 6pm doesn't count. HR PTO balances that track partial days won't match Span's whole-day count.
Weekends are never OOO, from either source.
Travelers: all-day OOO events use the event's own dates.
HRIS and PR rates: with the HRIS source, PRs and commits on an HRIS-only absence day still count in "/ week" numerators while the day leaves the denominator, which can raise those rates slightly.
Related articles
Connecting an OOO Data Source in Span
How to read Span's "/ week" metrics
How do working hours and time zones factor into Span metrics?
Need help?
Contact your Span account team or reach out to support@span.app.