Phase 1
User detail v2

Source: c81 phase1-pages — User detail (PRO-21); user-detail-v1 promoted, teams-ideas-v8 / PersonExpandCard identity and agents sections folded in, sessions wired to Session detail, re-derived from the phase1 world

v2 — second iteration from the 2026-09-03 Mark Peterson walkthrough (cycles/c81.phase1-pages/user-detail-v2-plan.md): top stats swapped to tokens · spend · providers/agents (installs/sessions demoted to their own sections), a Models card added. The personal-account "headline, not adoption stat" framing and the account row's unmissable treatment were already exactly this — confirmed unchanged.

fixture state
person— review aid: dana = personal account · alexis = coverage gap · wes = stalled joiner · jonah = detected-only Hermes · kai = Windows gap
Teams & Users
DW
Dana WhitfieldGTMAccount executive
dana@qpoint.io·identity fromjamf·first seen Apr 28·last seen 1h ago
view in Inventory →

Dana Whitfield runs 2 installs on 2 accounts — 1 of them personal.

user-dw72hfqb (dwhitfield.72@gmail.com)

Heavy ChatGPT use for proposals and outbound copy — splits between the enterprise org and a personal account.

42M
tokens · 30d
13% of fleet flow · measured
$250
spend · 30d
estimated · heavy intensity · history in Cost Center
1
providers/agents
ChatGPT
identity → devices → installs → accountsone graph, read from the people side · subs carry the exceptions only
modelsranked by tokens · 30d · attribution is per session, not auto-explained — see which models, judge the spend yourself

Devices — 1

1 of 1 sensored · from Jamf/Okta, not from what the sensor happens to see
dana-mbpmacOS 15.6 · macbookjamfsensor 1.14.2heartbeat 2m agodevice detail →
ChatGPT
1.2025.196monitoredlast seen 1h agoenterpriseorg-qpoint-8xk22
ChatGPT
1.2025.196monitoredlast seen 20h agopersonaluser-dw72hfqb (dwhitfield.72@gmail.com)

Agents — 2

2 monitored · 0 detected-only · one row per install
InstallMonitoredAccountModelsMCP serversSessions 7dLast seen
ChatGPT
1.2025.196 · on dana-mbp
monitoredenterpriseorg-qpoint-8xk22gpt-5.2google-driveslack31h agoview details →
ChatGPT
1.2025.196 · on dana-mbp
monitoredpersonaluser-dw72hfqb (dwhitfield.72@gmail.com)gpt-5.2none220h agoview details →

Accounts — 2

the account referenced on every inference call — where this person's usage actually flows
OpenAIorg-qpoint-8xk22enterprisein use on 1 install · 3 sessions on record · 8 users org-wide
OpenAIuser-dw72hfqb (dwhitfield.72@gmail.com)personalin use on 1 install · 2 sessions on record · 1 user org-wide

Personal account on dana-mbp, beside the enterprise org (org-qpoint-8xk22). Traffic here is outside the enterprise agreement — 2 of 5 sessions on record ran on it. The obvious control is block personal accounts — this page observes; enforcement lives in the control center.

Licensing posture only. Credential detail and the credential-risk verdict live on /identity →; the fleet's account posture is on Accounts →.

Sessions — 5 on record

5 in the 7-day sample · sessions live here, not on Inventory · each row is a receipt
Started
Agent
Account
Summary
Dur
Tokens
Est. $
Policy
2h ago
ChatGPT
enterpriseDrafted the enterprise pricing one-pager from call notes40m380k$20receipt →
21h ago
ChatGPT
personalPolished the Meridian proposal deck copy55m520k$30receipt →
3d ago
ChatGPT
enterpriseSummarized six discovery calls into an objection-handling doc35m300k$20receipt →
4d ago
ChatGPT
personalRewrote the outbound email sequences for the security-buyer segment30m260k$20receipt →
5d ago
ChatGPT
enterpriseBuilt the ROI comparison table for the CISO deck45m410k$20receipt →
5 sessions on record = the 7-day sample (5) · 30-day tokens (42M) are measured separately and never summed from this list · dollars estimated

Surface

what this person's installs touch — measured from tool calls, cwd, file access, and egress
Repos
none — non-engineering workflow
MCP serversFiles touched
none on record
EndpointsModels
1 device → 2 installs → 5 sessions on record1 of 18 people known to Okta/Jamf · as of Aug 31 17:00Zview in Inventory — same graph, technology lens, pre-filtered →

Composition notes

  • Question: what is this person's AI footprint, and is it accounted for? The footprint is the chain (devices → installs → accounts → sessions → surface); the accounting is whether each link is covered, monitored, enterprise, and producing telemetry. The verdict answers the accounting in one sentence; the body lays the footprint out.
  • Verdict line from verdicts.userDetail(world, id), priority no-sensor → personal account (warn) → stalled joiner → detected-only → clear, wrapped by userDetailVerdict which adds one rung above clear: an account with no agreement on file (xAI's team id) is signal, not clear. The personal account outranks everything but "we cannot see her at all" — the c21 §5 ruling.
  • The chain is the hero (c21 §2.9), at two altitudes: the strip of Phase1EntityChips right under the verdict (subs carry exceptions only: no sensor · detected-only · personal · seat only), then the sectioned body walking the same links at reading altitude. Two pages, one graph — this is the people lens; "view in Inventory" carries ?person= for the technology lens.
  • Headline stats are three Phase1StatBlocks (tokens · spend · providers/agents — v2: installs and sessions demoted, per the call — "not as interesting at that high level... put down in the details"). Personal-account warn tone now lives only on the verdict line and the account row below; it was never a stat-block job (Dana's account row already carried it — the sessions-block warn was redundant and is gone in v2). Tokens are measured, dollars estimated; intensity rides the spend sub (thresholds: heavy ≥ 40M · moderate ≥ 15M · light > 0 tokens · 30d).
  • v2 (2026-09-03, Mark Peterson walkthrough): top stats swapped from tokens/spend/installs/sessions to tokens · spend · providers/agents — Tyler, live: "the most important data up here would be tokens, spend, and providers or agents." Installs and sessions keep full sections below, unchanged. Added a Models card (modelBreakdown, grouped from this person's own sessions' modelIds, ranked by tokens) — deliberately not auto-explaining spend; the room's call was to surface which models and let a human judge, not build attribution logic. Also rendered person.summary (line 406's "not rendered — no designed treatment yet") as a one-line subtitle under the verdict — the same human-readable-summary ask as Teams & Users, satisfied by promoting the same already-authored field rather than building new prose generation. Personal-account "headline, not adoption stat" framing needed no change — it already was.
  • Personal accounts unmissable (c21 §2.6, §5): the account row is bordered in the error register and names the device and the enterprise org it sits beside, with the personal-session count; the sessions table flags those rows; the strip's account chip says personal. Observation only — the block-personal-accounts control is pointed at, not built.
  • Coverage honesty: an uncovered device is a dashed amber card that says which kind of gap it is (Windows platform gap vs deployable today) and that the empty rows are a statement about the sensor, not the person. Seat held with no sensor → the investigate line on the account row. Detected-only installs get the three-absences note.
  • Sessions attach to users (c21 §2.7) and stay a list — DataTable with per-column slots, row click and "receipt →" both to Session detail. Labelled honestly: the 7-day sample plus older scenario sessions, 30-day tokens measured separately and never summed from the list. Sensitive-file and policy-event counts come from sessionTotals (events when present, file links otherwise).
  • Deliberate omissions (c67 v8): credential severity math → /identity (quiet link), spend history → Cost Center (quiet sub on the $ stat), per-agent config → Agent detail. The LLM work summary in the world is not rendered — no designed treatment yet; it stays a fixture field.
  • Derivation: everything comes from personFootprint(world, id) in derived/user-detail.ts over the world's walkers; nothing hand-typed, nothing fabricated. First seen reads from the earliest install, so a person with no installs prints the honest absence.

Qpoint Brand Style Guide