Team
Audience: Customer — this page documents team management and seat allocation.
The team page (/dashboard/team) manages developer seats and shows team member activity.
URL
/dashboard/team
Access
Available to all plans. No feature gate.
Data Source
GET /api/v1/team
Returns:
{
"members": [...],
"seats": 3,
"used": 2
}
How Members Appear
Team members are auto-populated — they appear automatically when they send events using the account's API key. There is no manual "invite" flow. When a developer installs the AI-Pooler with the team's API key, their git email is captured (encrypted) and they appear in the team table.
Seat Counter
Displayed in the header: {used} / {seats} seats used
The number of seats is determined by the subscription (configured in billing). Each unique developer (identified by git email hash) counts as one seat.
Team Table
| Column | Description |
|---|---|
| # | Row number |
| Member | Display name (if set) and email (decrypted or hash fallback) |
| First Seen | Date the member first sent events |
| Last Active | Date of most recent event |
| Hourly Rate | Developer's hourly rate in USD (if configured) |
| Events | Total number of events sent |
| Actions | Remove button (trash icon) |
Encrypted Email Display
Member emails follow the decryption hierarchy:
- Plaintext email — Shown directly (if available)
- Encrypted email — Decrypted using
DecryptedValuecomponent (if encryption key is active) - Hash fallback — Truncated hex hash (e.g.,
a1b2c3d4e5f6g7h8...)
Edit Member Modal
Clicking a table row opens the edit modal with:
| Field | Type | Description |
|---|---|---|
| Git Email | Read-only | The member's email (decrypted or hash) |
| Display Name | Editable | Friendly name shown in the team table |
| Hourly Rate | Editable | USD per hour, used for True Cost calculations |
Read-Only Stats
| Stat | Description |
|---|---|
| Events | Total event count |
| First Seen | Date first seen |
| Last Active | Most recent activity date |
Save Action
PATCH /api/v1/team/{gitEmailHash}
Body:
{
"displayName": "John Doe",
"hourlyRate": 75
}
Setting hourlyRate to null clears the rate. Setting displayName to null clears the display name.
Hourly Rate
The hourly rate is used throughout the dashboard to calculate:
- True Cost = AI Cost + (Active Time × Hourly Rate)
- True Cost/Line = AI Cost/Line + (Hourly Rate / Lines per Hour)
- Estimated Loss = Violation fix time × Hourly Rate
When no hourly rate is set, these calculations show AI cost only.
Remove Member
DELETE /api/v1/team/{gitEmailHash}
Removes the member from the team. This does not delete their historical data — events, sessions, and violations remain for analysis. The member will reappear if they send new events.
See Also
- Billing — Managing seat count
- Settings — API key for team members
- Encryption — How member emails are encrypted
- Metrics Glossary — True Cost definition