Portal
›
Manager
›
Team Analytics
📋 API Status Overview
Team Analytics APIs for the Manager role are currently shared with Admin/Analytics APIs with organization-wide scoping. Dedicated team-scoped endpoints (based on reporting hierarchy) are planned for future implementation.
✓ Existing (Reused)
⚠ Planned Q3 2026
💡 Recommended
✅ Existing Manager Analytics APIs
Managers currently access analytics through these existing endpoints (organization-scoped):
GET
/api/analytics/organization/{id}
View organization-wide analytics. Manager sees all org data (no team filtering yet).
Existing HasPermission:Analytics.View
GET
/api/analytics/trends
Time-series analytics trends with date range filtering.
Existing HasPermission:Analytics.View
GET
/api/analytics/top-users
Top users by AI usage. Currently returns all org users (not filtered to manager's team).
Existing HasPermission:Analytics.View
GET
/api/analytics/ai-domains
AI tool usage breakdown by domain/category.
Existing HasPermission:Analytics.View
⚠️ Planned Team Analytics APIs
These APIs are planned to support true team-scoped analytics based on organization hierarchy:
GET
/api/manager/team-analytics
Aggregated analytics for manager's direct reports only.
Planned Q3 2026
Depends on: Organization hierarchy feature
GET
/api/manager/team-trends
Time-series trends scoped to team members only.
Planned Q3 2026
GET
/api/manager/team-comparison
Compare metrics across team members (productivity, AI usage).
Planned Q3 2026
💡 Recommended Manager Analytics APIs
GET
/api/manager/team-dashboard
Team dashboard KPIs: active members, avg productivity, total AI usage, trends.
Recommended
GET
/api/manager/member-analytics/{userId}
Deep-dive analytics for specific team member (manager's direct report).
Recommended
GET
/api/manager/team-ai-adoption
Track AI tool adoption rates across team members.
Recommended
GET
/api/manager/team-benchmarks
Compare team metrics against organization averages.
Recommended
🏗️ Organization Hierarchy Dependency
Team Scoping Architecture (Future Implementation)
═══════════════════════════════════════════════════════════════════════════════
Current State (No Hierarchy):
───────────────────────────────────────────────────────────────────────────────
Manager ──► Can view ALL organization users
(No concept of "team" or "direct reports")
┌─────────────────────────────────────┐
│ Manager Dashboard API Call │
│ /api/analytics/organization/123 │
└─────────────────────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ Returns: ALL users in org 123 │
│ • User A (not on manager's team) │
│ • User B (on manager's team) ✓ │
│ • User C (not on manager's team) │
└─────────────────────────────────────┘
Future State (With Hierarchy):
───────────────────────────────────────────────────────────────────────────────
Organization Hierarchy Table:
┌─────────────────────────────────────────────────────────────────────────────┐
│ Id │ UserId │ ManagerId │ Department │ Level │ Path │
├──────┼──────────┼─────────────┼──────────────┼─────────┼──────────────────┤
│ 1 │ Mgr-001 │ NULL │ Engineering │ 1 │ /Mgr-001 │
│ 2 │ Emp-101 │ Mgr-001 │ Engineering │ 2 │ /Mgr-001/Emp-101│
│ 3 │ Emp-102 │ Mgr-001 │ Engineering │ 2 │ /Mgr-001/Emp-102│
│ 4 │ Emp-103 │ Mgr-001 │ Engineering │ 2 │ /Mgr-001/Emp-103│
│ 5 │ Emp-201 │ Emp-101 │ Engineering │ 3 │ /Mgr-001/Emp-...│
└─────────────────────────────────────────────────────────────────────────────┘
Manager Dashboard API Call:
/api/manager/team-analytics
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ 1. Extract ManagerId from JWT (sub claim) │
│ 2. Query Hierarchy: SELECT UserId WHERE ManagerId = @managerId │
│ 3. Get direct reports: [Emp-101, Emp-102, Emp-103] │
│ 4. Query analytics: │
│ SELECT * FROM Sessions │
│ WHERE OrganizationId = @orgId │
│ AND UserId IN (@directReportIds) │
│ 5. Return: Team-scoped analytics ONLY │
└─────────────────────────────────────────────────────────────────────────────┘
Result: Manager sees only their team's data
🔌 Proposed Team Analytics Endpoint Details
Endpoint Method Auth Response
/api/manager/team-analytics
GET
Manager
TeamSummaryDto { members, totalSessions, avgProductivity, aiUsagePercent }
/api/manager/team-trends
GET
Manager
TimeSeriesDto[] { date, totalTime, aiTime, memberCount }
/api/manager/team-comparison
GET
Manager
MemberComparisonDto[] { userId, name, productivity, aiUsage, rank }
/api/manager/member-analytics/{id}
GET
Manager
UserAnalyticsDto (scoped to manager's direct report)
⚠️ Implementation Considerations
⚠
No Hierarchy Data
Organization hierarchy table must be implemented before team-scoped APIs can function.
⚠
Manager Self-Service
Need UI for managers to manage their team assignments (who reports to them).
✓
Reusable Components
Existing analytics services can be extended with user filtering. No major refactoring needed.