📋 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

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

EndpointMethodAuthResponse
/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.