Pages
Teams & Users — Ideas v4

Source: qdash /teams — c67 ship candidate, 2026-08-14

The composed page, one candidate: Stack A's spine with v3's verdicts applied, rendered in the visual idiom that shipped on /integrations — heavy-rule sections, promoted cards, recessed secondary rows. Three remaining calls are made here and annotated at the bottom: adoption folds into deltas instead of owning a strip, team drill-down is filter-in-place, and the mapping band ships collapsed with a workspace escalation.

Teams & UsersSpend, sensitive-data access, and risk per person — ranked by risk.
Identity is observed, not verified — the email each provider self-reports, not your IdP.Spend estimated from list prices.
14people
+1 this week — chen
71%mapped
10 of 14 — 4 need mapping
$1,034attributed · 30d
of $1,340 — from /api/costs
2at risk
felix · sofia

People

Who is putting us at risk right now — worst first, one story per person, verbs deep-link to the decision surface.

3 consumer keys among 14 people — spend and data on personal accounts
PersonTeamRisk storyIdentityActivitySpend · 30d
fefelix@duck.comData1 Critical — undecided egress to metrics.coderelay.io · Sun2 agents · 31m ago$70
sosofiaPlatform1 Elevated — secrets.yaml read · Fri · unassigned2 agents · 2h ago$98
prpriyaPaymentsok3 agents · 12m ago$1692.4× median
mamarcusPlatformok3 agents · 48m ago$121
dadanaDataok3 agents · 1h ago$112
chchennew todayok1 agent · 19m ago$4
+ 9 more, all ok — show →$489
$306/30d unattributed — 4 identities · 3 have suggestions

Teams

Attribution at a glance — click filters the roster; the full breakdown lives in Cost Center.

estimated · same /api/costs rollup Cost Center reads · outlier: Payments runs 2.7× the team token median
Decisions

Calls made in this pass

Adoption folds into deltas

No separate strip — "+1 this week" lives in the people stat and per-team deltas ride the chips. A dedicated adoption row didn't earn its height at 14 people; revisit when growth is the story.

Drill-down is filter-in-place

Team chips filter the roster (URL-backed, shareable). A /teams/<team> detail page flatters four free-text strings more than they deserve pre-SCIM — deferred to SCIM day alongside members & roles.

Mapping band ships collapsed

One amber row: the stake, the count, "map here ▾" for quick single assigns, "open workspace →" to /teams/mapping for bulk, lifecycle, and history (v3 verdict — drawer cut).

Credential gist is a chip + conditional strip

One verdict chip per row linking to /identity; the amber posture strip appears only while consumer keys > 0. The credentials table itself leaves this page (c67 decision 3).

Checkpoint

What Mark reviews before anything ships

1
Stack A composition — v2 verdict — roster-first with B's card language in the Teams section
2
Mapping: band + sub-route, drawer cut — v3 verdict — escalation model, /teams/mapping owns lifecycle + history
3
Identity gist depth — chip + conditional posture strip; credentials table relocates to /identity
4
Adoption + drill-down calls — folded deltas · filter-in-place (this page)
5
Cost Center EXP gate — slim overview hands off to /cost — lift the gate with this ship, or keep the overview standalone-informative
Approved → ship track begins on qcontrol feat/control-center: teams.vue rewrite folding in the punch-list fixes, bulk /api/teams payload, /teams/mapping sub-route. Layer extraction candidates settle after the rewrite.

Qpoint Brand Style Guide