Pages
Teams & Users — Ideas v2

Source: qdash /teams — c67 composition bake-off, 2026-08-14

The two coda stacks from v1, each rendered as a full composed page with the c67 decisions applied: Cost Center is canonical for spend (a slim team overview stays here and cross-filters the roster), the mapping workspace is the write path, and the credentials table is gone — relocated to /identity, leaving a per-person identity gist in the roster. Same Meridian Monday: felix's egress undecided, sofia's secrets.yaml finding unassigned, chen new this morning, $306 of $1,340 still unattributed.

Stack A

The accountable roster

Risk-first console read: the roster is the page, everything else supports it. One merged caveat replaces the three honesty notes; the summary strip makes mapping coverage a headline number; teams appear twice — as a filter rail over the roster and as a slim spend overview that hands the deep dive to Cost Center.

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.4 identities ($306/30d) can't be attributed.Spend is estimated from list prices.
14people
+1 since Fri — chen
71%mapped
10 of 14 — 4 need mapping
$1,034attributed · 30d
of $1,340 — from /api/costs
2at risk
felix · sofia
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 need mapping3 have suggestions
Teamsclick filters the roster
estimated from list prices · same /api/costs rollup Cost Center reads — the numbers agree by construction
Adoption
14 active identities · +1 this week (chen) · 34 agents
weekly active identities · 8 weeks
what changed vs today's page: one caveat instead of three · mapping coverage promoted to the strip · roster gains the risk story + identity gist, drops "Showback" · spend-by-team table shrinks to filter chips with share bars, Cost Center canonical · credentials table gone (gist chip → /identity) · adoption strip is new
Stack B

Teams first

The eng-manager and FinOps read: teams are the accountable units, people nest inside. Cards lead, the roster arrives pre-filtered by a card click, and the mapping workspace opens as a drawer off the unassigned card. Adoption reads per team.

Teams & UsersAccountable spend and risk, by team.
Identity is observed, not verified.4 identities ($306/30d) unattributed.Spend estimated from list prices.
Payments$318
3 people · 8 agents24% of spend
priyaninaava
2.7× team token median
Platform$339
4 people · 10 agents25% of spend
marcussofiarafaeljordan
Data$269
4 people · 9 agents20% of spend
samdanatomasfelix
Frontend$108
3 people · 7 agents8% of spend
chenjakeleo
Unassigned$306
4 unmapped identities · 5 agents23% of spend
Peopleteam: Data 4 of 14 shown
PersonRisk storyIdentitySpend · 30d
fefelix@duck.com1 Critical — undecided egress · Sun$70
dadanaok$112
sasamok$52
totomasok$35
page dims — the drawer opens from the unassigned card, the roster stays behind it
Map identities
$306/30d across 4 unresolved identities
chen@meridian.dev$4
≈ Frontend · chen-mba enrolled by Frontend IT
f.osei@duck.com$38
≈ felix@meridian.dev · same machine + OS user
ci-runner@meridian.dev$187
≈ Platform · machine owned by Platform
(proxy-only, no identity)$77
needs a human call
Adoption by team
Platform4/4 active
Payments3/3 active
Data4/4 active
Frontend2/3 active · +1 wk
what changed vs today's page: teams promoted from a 4-row table to the page's organizing unit · roster demoted to a filtered view · mapping is a drawer, not a band · same single caveat, same /identity relocation · spend deep-dive still hands off to Cost Center from each card
Verdict

Recommendation — Stack A, with B's card language

Why A wins
  • J1 — "who is putting us at risk right now" — is the page's top job, and A answers it above the fold; B makes you click a card first.
  • The IA doc classifies the page as a Fleet lens ("who owns the risk/spend?") — a roster question, not a rollup question.
  • Only 4 teams exist today (free-text strings). Cards as the organizing unit flatter the data model more than it deserves pre-SCIM.
  • B's best parts survive: the card language becomes A's slim team overview, and the promoted unassigned treatment becomes A's unmapped band.
Open for v3
  • Mapping form factor — A shows a band, B shows a drawer; a sub-route is the third option. v3 renders all three on A's spine.
  • Identity gist depth — one chip per row here; v3 tries 2–3 treatments (chip only · chip + method · summary line above the roster).
  • Adoption strip earning its slot — fleet-level (A) vs per-team (B) vs cut.
  • Cost Center EXP gate — the slim overview assumes /cost is reachable from the nav; flag at checkpoint.

Qpoint Brand Style Guide