Feature: Credits Dashboard - Add sorting, search, and action filtering for enterprise-scale usage management

Summary

Enterprise customers with large user bases (5,000+ seats) cannot effectively manage and monitor GitLab Duo credit consumption. The current Credits Dashboard lacks sorting, search, and filtering capabilities essential for identifying high-usage users, investigating anomalies, and preparing chargeback reports.

Problem Statement

An enterprise customer with 5,000 GitLab Duo users currently has no way to:

  • Quickly identify their top credit consumers
  • Search for a specific user's credit usage
  • Filter usage data by actions taken (Code Suggestions vs. Duo Chat, etc.)

Without these capabilities, admins must manually scroll through thousands of rows to find relevant data, making credit management impractical at enterprise scale.

Proposed Solution (Prioritized)

Priority 1: Column Sorting on "Usage by User" Table

Requirement: Make table columns sortable with ascending/descending toggle.

Column Sort Behavior
User Alphabetical A→Z / Z→A
Total credits used Numeric (highest → lowest for quick identification of top consumers)

Acceptance Criteria:

  • Clicking column header toggles sort direction
  • Visual indicator shows current sort column and direction (↑/↓)
  • Default view sorts by "Total credits used" descending to surface top consumers immediately
  • Sorting persists within session

Priority 2: Username Search

Requirement: Add search input field to filter the user table.

Acceptance Criteria:

  • Search bar placed above the user table
  • Supports partial matching (typing "falk" finds "falko.sieverding")
  • Also matches full usernames for precision
  • Behavior consistent with existing GitLab search patterns (e.g., member search, user admin)
  • Case-insensitive matching
  • Debounced input (300ms) to avoid excessive API calls

Priority 3: Filter by Actions in User Detail View

Requirement: When viewing an individual user's credit history, allow filtering by action type.

Actions to support:

  • Code Suggestions
  • Duo Chat
  • Vulnerability Resolution
  • Root Cause Analysis
  • Code Review Summary
  • CI/CD Troubleshooting
  • (Other DAP actions as applicable)

Acceptance Criteria:

  • Multi-select dropdown or checkbox filter for action types
  • "All Actions" default state
  • Filter applied client-side for fast iteration
  • Filter state reflected in URL for shareability

User Story

As a GitLab administrator at an enterprise with 5,000+ users,
I want to sort the Credits Dashboard by total credits consumed and search for specific users,
So that I can quickly identify high-usage individuals and investigate credit consumption patterns without manually scanning thousands of rows.

Constraints

Sort and filter is currently limited to info we have on the GitLab side. We'll need to sync more data from the CDot side to have GitLab-side sorting/filtering.

Success Metrics

  • Admin can identify top 10 credit consumers within 5 seconds (via sort)
  • Admin can locate a specific user's credit usage within 10 seconds (via search)
  • Admin can filter a user's history to a specific action type within 3 clicks

Design Considerations

  • Follow existing GitLab Admin Area UX patterns for tables (e.g., Admin → Users)
  • Consider pagination impact: sorting should work across full dataset, not just current page
  • For large datasets, consider server-side sorting/filtering with appropriate indexes

Customer Context

Reported by enterprise customer with 5,000+ seats during DAP evaluation. Lack of these capabilities creates friction for:

  • IT cost allocation and chargeback reporting
  • License utilization audits
  • Identifying training opportunities (users not adopting specific features)
Edited Jan 20, 2026 by Bryan Rothwell
Assignee Loading
Time tracking Loading