# Workspace Insights

> Workplace service delivery insights including space utilization, service request patterns, facility management metrics, and desk booking analytics

- Skill: `happy-technologies-llc/workspace-insights` (Agent Skill)
- Install (CLI): `npx skillmds@latest add happy-technologies-llc/workspace-insights`
- Raw SKILL.md: https://api.skillmd.com/api/skills/happy-technologies-llc/workspace-insights/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- Author: Happy-Technologies-LLC (https://skillmd.com/u/happy-technologies-llc)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/happy-technologies-llc/workspace-insights

---


# Workplace Service Delivery Insights

## Overview

This skill covers generating insights and analytics for Workplace Service Delivery (WSD) in ServiceNow:

- Analyzing space utilization rates across buildings, floors, and zones
- Tracking desk and room booking patterns to optimize space allocation
- Monitoring facility management service request volumes, categories, and SLA compliance
- Identifying peak usage periods and underutilized spaces for capacity planning
- Generating facility management KPI dashboards with trend analysis
- Producing actionable recommendations for workplace optimization

**When to use:** When reviewing workplace space efficiency, planning office reconfigurations, analyzing facility service delivery performance, optimizing hot-desking strategies, or preparing workplace analytics for real estate decisions.

## Prerequisites

- **Roles:** `wsd_admin`, `facility_manager`, `admin`, or `workspace_admin`
- **Plugins:** `com.snc.workplace_service_delivery` (Workplace Service Delivery), `com.snc.facility_management` (Facility Management) recommended
- **Access:** Read access to `wsd_space`, `wsd_reservation`, `wsd_floor`, `wsd_building`, `fm_facility_request`, `sc_req_item` tables
- **Data:** Active workplace spaces with reservation and sensor data
- **Related Skills:** `reporting/executive-dashboard` for dashboard creation, `reporting/trend-analysis` for trend analytics

## Procedure

### Step 1: Retrieve Building and Floor Inventory

Establish the baseline of available workspace inventory.

**MCP Approach:**
```
Tool: SN-Query-Table
Parameters:
  table_name: wsd_building
  query: active=true
  fields: sys_id,name,location,total_floors,total_capacity,address,time_zone,operational_status
  limit: 50
```

```
Tool: SN-Query-Table
Parameters:
  table_name: wsd_floor
  query: building=[BUILDING_SYS_ID]^active=true
  fields: sys_id,name,building,floor_number,total_spaces,available_spaces,floor_plan
  limit: 20
```

**REST Approach:**
```
GET /api/now/table/wsd_building
  ?sysparm_query=active=true
  &sysparm_fields=sys_id,name,location,total_floors,total_capacity,address,time_zone,operational_status
  &sysparm_display_value=true

GET /api/now/table/wsd_floor
  ?sysparm_query=building=[BUILDING_SYS_ID]^active=true
  &sysparm_fields=sys_id,name,building,floor_number,total_spaces,available_spaces
  &sysparm_display_value=true
```

### Step 2: Analyze Space Utilization

Query space records to calculate utilization metrics.

**MCP Approach:**
```
Tool: SN-Query-Table
Parameters:
  table_name: wsd_space
  query: floor.building=[BUILDING_SYS_ID]^active=true
  fields: sys_id,name,space_type,capacity,floor,is_reservable,status,amenities
  limit: 500
```

**Space Type Classification:**

| Space Type | Typical Capacity | Bookable | Metrics Focus |
|-----------|-----------------|----------|---------------|
| Desk | 1 | Yes | Occupancy rate, booking frequency |
| Meeting Room | 2-20 | Yes | Booking rate, no-show rate, avg duration |
| Phone Booth | 1 | Yes | Utilization rate, peak hours |
| Collaboration Zone | 4-12 | Sometimes | Foot traffic, usage duration |
| Hot Desk | 1 | Yes | Daily booking rate, user diversity |
| Private Office | 1-2 | No | Assignment vs actual presence |

### Step 3: Analyze Reservation Patterns

Query booking data to identify usage patterns.

**MCP Approach:**
```
Tool: SN-Query-Table
Parameters:
  table_name: wsd_reservation
  query: space.floor.building=[BUILDING_SYS_ID]^start_date>=javascript:gs.daysAgo(30)^ORDERBYstart_date
  fields: sys_id,space,user,start_date,end_date,state,check_in_time,check_out_time,no_show,duration
  limit: 2000
```

**REST Approach:**
```
GET /api/now/table/wsd_reservation
  ?sysparm_query=space.floor.building=[BUILDING_SYS_ID]^start_date>=javascript:gs.daysAgo(30)
  &sysparm_fields=sys_id,space,user,start_date,end_date,state,check_in_time,check_out_time,no_show,duration
  &sysparm_limit=2000
  &sysparm_display_value=true
```

**Key Metrics to Calculate:**

| Metric | Formula | Target |
|--------|---------|--------|
| Booking Rate | Booked hours / Available hours | >60% |
| No-Show Rate | No-show reservations / Total reservations | <15% |
| Peak Utilization | Max concurrent bookings / Total capacity | Track trend |
| Avg Booking Duration | Sum of durations / Count of bookings | Varies by type |
| Unique Users/Week | Distinct users with bookings per week | Track growth |
| Advance Booking Lead | Avg days between creation and start | 1-3 days typical |

### Step 4: Identify Peak and Off-Peak Patterns

Analyze time-based usage patterns for capacity planning.

**MCP Approach:**
```
Tool: SN-Query-Table
Parameters:
  table_name: wsd_reservation
  query: space.floor.building=[BUILDING_SYS_ID]^start_date>=javascript:gs.daysAgo(30)^state=completed
  fields: start_date,end_date,space.space_type,space.floor
  limit: 5000
```

Aggregate by day of week and hour to build a heatmap:

```
=== UTILIZATION HEATMAP ===
Building: [name]
Period: Last 30 days

         Mon   Tue   Wed   Thu   Fri
08:00    35%   42%   68%   55%   28%
09:00    62%   71%   88%   78%   45%
10:00    78%   85%   95%   89%   52%
11:00    82%   88%   97%   91%   48%
12:00    45%   52%   60%   55%   30%
13:00    70%   78%   92%   82%   42%
14:00    75%   82%   90%   85%   38%
15:00    68%   72%   85%   78%   32%
16:00    45%   50%   62%   52%   22%
17:00    20%   25%   30%   25%   10%

PEAK: Wednesday 11:00 (97%)
LOW: Friday 17:00 (10%)
```

### Step 5: Analyze Facility Service Requests

Review facility management request patterns.

**MCP Approach:**
```
Tool: SN-Query-Table
Parameters:
  table_name: fm_facility_request
  query: sys_created_on>=javascript:gs.daysAgo(30)
  fields: sys_id,number,category,subcategory,priority,state,location,assignment_group,opened_at,closed_at,close_code
  limit: 500
```

**REST Approach:**
```
GET /api/now/table/fm_facility_request
  ?sysparm_query=sys_created_on>=javascript:gs.daysAgo(30)
  &sysparm_fields=sys_id,number,category,subcategory,priority,state,location,assignment_group,opened_at,closed_at,close_code
  &sysparm_limit=500
  &sysparm_display_value=true
```

### Step 6: Check SLA Compliance for Facility Services

Measure service delivery performance against SLA targets.

**MCP Approach:**
```
Tool: SN-Query-Table
Parameters:
  table_name: task_sla
  query: task.sys_class_name=fm_facility_request^sys_created_on>=javascript:gs.daysAgo(30)
  fields: sys_id,task,sla,stage,has_breached,planned_end_time,percentage,business_percentage
  limit: 500
```

Calculate SLA metrics:

| SLA Category | Total | Met | Breached | Compliance |
|-------------|-------|-----|----------|------------|
| Cleaning | [n] | [n] | [n] | [%] |
| Maintenance | [n] | [n] | [n] | [%] |
| HVAC | [n] | [n] | [n] | [%] |
| Security | [n] | [n] | [n] | [%] |

### Step 7: Analyze Workplace Incidents

Review facility-related incidents for recurring issues.

**MCP Approach:**
```
Tool: SN-Query-Table
Parameters:
  table_name: incident
  query: category=facilities^sys_created_on>=javascript:gs.daysAgo(30)
  fields: sys_id,number,short_description,category,subcategory,priority,state,location,assignment_group,opened_at,resolved_at
  limit: 200
```

### Step 8: Generate Workplace Insights Report

Compile all analytics into an actionable insights report.

```
=== WORKPLACE SERVICE DELIVERY INSIGHTS ===
Report Period: [start_date] - [end_date]
Scope: [Building/Campus/All Locations]

SPACE INVENTORY:
Buildings: [count] | Floors: [count] | Total Spaces: [count]
Desks: [count] | Meeting Rooms: [count] | Phone Booths: [count]

UTILIZATION SUMMARY:
Overall Space Utilization: [%]
  Desks: [%] | Meeting Rooms: [%] | Phone Booths: [%]
Peak Day: [day] ([%]) | Lowest Day: [day] ([%])
Peak Hour: [time] ([%]) | Lowest Hour: [time] ([%])

BOOKING ANALYTICS:
Total Reservations (30 days): [count]
Unique Users: [count]
Avg Daily Bookings: [count]
No-Show Rate: [%] ([count] no-shows)
Avg Booking Duration: [hours]
Most Popular Spaces: [list top 5]
Least Used Spaces: [list bottom 5]

FACILITY SERVICE METRICS:
Total Requests (30 days): [count]
Open: [count] | In Progress: [count] | Closed: [count]
Avg Resolution Time: [hours/days]
SLA Compliance: [%]

TOP REQUEST CATEGORIES:
| Category | Volume | Avg Resolution | SLA Met |
|----------|--------|---------------|---------|
| [category] | [count] | [time] | [%] |

FACILITY INCIDENTS:
Total: [count] | Recurring: [count]
Top Issues: [list]

RECOMMENDATIONS:
1. [Space optimization recommendation based on utilization data]
2. [No-show reduction strategy based on booking patterns]
3. [Service improvement recommendation based on SLA data]
4. [Capacity planning recommendation based on peak analysis]
5. [Cost optimization based on underutilized spaces]
```

### Step 9: Generate Desk Booking Analytics

Deep-dive into hot-desking and desk booking metrics.

**MCP Approach:**
```
Tool: SN-Query-Table
Parameters:
  table_name: wsd_reservation
  query: space.space_type=desk^start_date>=javascript:gs.daysAgo(30)
  fields: sys_id,space,user,start_date,state,no_show,space.floor,space.floor.building
  limit: 2000
```

```
=== DESK BOOKING ANALYTICS ===
Total Desk Reservations: [count]
Unique Desk Users: [count]
Avg Desks Booked/Day: [count] of [total] ([%])

USER PATTERNS:
- Regular Bookers (>3x/week): [count] users
- Occasional (1-2x/week): [count] users
- Rare (<1x/week): [count] users

FLOOR-LEVEL BREAKDOWN:
| Floor | Desks | Avg Utilization | No-Show Rate |
|-------|-------|----------------|--------------|
| [floor] | [count] | [%] | [%] |

NO-SHOW ANALYSIS:
Total No-Shows: [count] ([%] of bookings)
Cost of No-Shows: ~$[estimated wasted space cost]
Top No-Show Times: [pattern]
Recommendation: [auto-release policy suggestion]
```

### Step 10: Generate Trend Analysis

Compare current period metrics against previous periods.

```
=== TREND ANALYSIS ===
Metric Comparison: Current Month vs Previous Month

| Metric | Previous | Current | Change |
|--------|----------|---------|--------|
| Overall Utilization | [%] | [%] | [+/-]% |
| Daily Bookings | [avg] | [avg] | [+/-]% |
| No-Show Rate | [%] | [%] | [+/-]% |
| Facility Requests | [count] | [count] | [+/-]% |
| SLA Compliance | [%] | [%] | [+/-]% |
| Unique Users | [count] | [count] | [+/-]% |

TRENDS:
- Space utilization [increasing/decreasing/stable] over past 3 months
- [Day] consistently the busiest day ([%] avg utilization)
- Meeting room demand [exceeding/meeting/below] capacity
- Facility service SLA compliance [improving/declining]
```

## Tool Usage

| Tool | Purpose | When to Use |
|------|---------|-------------|
| SN-Query-Table | Retrieve space, reservation, and request data | Primary data collection |
| SN-Get-Record | Get specific building or space details | Detailed record inspection |
| SN-Natural-Language-Search | Find spaces or requests by description | Exploratory search |

## Best Practices

1. **Analyze at least 30 days of data** for meaningful utilization patterns
2. **Exclude holidays and closures** from utilization calculations to avoid skewing metrics
3. **Segment by space type** -- desks, meeting rooms, and booths have different utilization benchmarks
4. **Include no-show analysis** -- no-shows represent significant waste in hot-desking environments
5. **Correlate with headcount** -- utilization should be measured against actual employee count, not total capacity
6. **Consider hybrid work patterns** -- Monday/Friday typically have lower utilization in hybrid environments
7. **Track trends over time** -- single-point metrics are less valuable than trends
8. **Include cost context** -- translate underutilization into dollar impact for stakeholders
9. **Factor in amenities** -- spaces with better amenities typically show higher utilization
10. **Benchmark across locations** -- compare similar buildings to identify best practices

## Troubleshooting

| Issue | Cause | Resolution |
|-------|-------|------------|
| No reservation data found | WSD module not configured or reservations in different table | Check if `wsd_reservation` or `sn_wsd_rsv_reservation` is the active table |
| Utilization seems too low | Calculation includes non-bookable spaces | Filter to `is_reservable=true` spaces only |
| No-show data not tracked | Check-in feature not enabled | Enable check-in on space reservations; no-show detection requires check-in |
| Facility requests missing | Requests may be in `sc_req_item` not `fm_facility_request` | Query `sc_req_item` with `cat_item.category=facilities` |
| SLA data unavailable | SLAs not configured for facility requests | Verify SLA definitions exist for the `fm_facility_request` table |
| Building data incomplete | Location hierarchy not fully configured | Check `cmn_location` records and building-floor-space relationships |

## Examples

### Example 1: Monthly Workplace Report for Real Estate Team

**Scenario:** Generate monthly space utilization report for real estate planning.

```
Tool: SN-Query-Table
Parameters:
  table_name: wsd_reservation
  query: start_date>=javascript:gs.beginningOfLastMonth()^start_dateONLast month@javascript:gs.beginningOfLastMonth()@javascript:gs.endOfLastMonth()
  fields: space,user,start_date,state,no_show,space.space_type,space.floor.building
  limit: 5000
```

**Output:**
```
MONTHLY WORKPLACE REPORT - February 2026
Headquarters Campus

Overall Utilization: 67% (up from 61% in January)
Peak Day: Wednesday at 89% capacity
Underutilized Floors: Building B, Floors 4-5 (32% avg)

RECOMMENDATION: Consolidate Building B floors 4-5 to reduce
leased space by 15,000 sq ft. Estimated annual savings: $450K.
```

### Example 2: Facility Service Performance Review

**Scenario:** Generate quarterly facility service delivery scorecard.

```
FACILITY SERVICES SCORECARD - Q1 2026
Total Requests: 1,247
SLA Compliance: 94.2% (target: 95%)

BY CATEGORY:
- Cleaning: 412 requests, 97% SLA met
- Maintenance: 298 requests, 91% SLA met (BELOW TARGET)
- HVAC: 187 requests, 93% SLA met
- Security: 156 requests, 98% SLA met
- Other: 194 requests, 92% SLA met

ACTION: Maintenance SLA below target due to parts procurement delays.
Recommend pre-stocking common replacement parts at each building.
```

## Related Skills

- `reporting/executive-dashboard` - Build executive dashboards for workplace metrics
- `reporting/trend-analysis` - Advanced trend analysis for facility data
- `reporting/sla-analysis` - Detailed SLA compliance analysis
- `admin/instance-management` - Instance configuration for WSD module

