Anonymized portfolio copy — names and customers replaced; all data illustrative.

AI Tooling Dashboard — Spec & Lo-fi Wireframe

Step 4 canonical deliverable. Net-new interactive dashboard, in-app, progressive disclosure. Built from 01-Objectives, 02-Data-Relevance, and the full 6/22 Reports transcript (the CEO, Trent, the Head of Product, the Dev Lead). Net-new interactive dashboard — in-app, progressive disclosure. [Red brackets] = unknown data or pending decision — each traces to the gap list or open calls below.
Feedback sources — hover any tag for the verbatim quote
CEO-n the CEO, 6/22 Reports meeting
JN-n the Head of Product, 6/22 Reports meeting
DL-n the Dev Lead, 6/22 Reports meeting
RPT-n Group consensus / meeting-level
Decisions & status
TM-n Trent design decision (numbered)
DR Data Relevance finding (Step 2)
P2 Deferred / sibling surface
FLAG Open question
Review annotations — internal only
✦ manager takeaway what the EM should leave with TM-5
⚠ weak takeaway fails the test: would a manager care?
Tool palette (consistent across all charts): claude-code github-copilot codex_cli_rs codex-cli IDE tools CEO-3 TM-3
Built for the engineering manager SINGLE PRIMARY USER
The transcript is explicit: the CEO framed the dashboard as "what tools am I using? how much am I using them?" CEO-1 and the Dev Lead confirmed wanting both team and individual views DL-4. Every panel answers a manager question about the tool/platform dimension. Per-developer effectiveness belongs on the EM Developer AI Usage Dashboard; per-developer workflow belongs on the EM Workflow Dashboard. This dashboard's distinctive lens is platform identity. TM-1
Scope note: the CEO suggested a three-way split: workflow dashboard + AI usage dashboard + AI tooling dashboard CEO-5. Trent endorsed keeping dashboards smaller in scope with drill-down paths. This dashboard focuses on which tools, how heavily, and how that maps to cost and activity. Where objectives overlap, this surface shows the per-tool cut; sibling dashboards show per-developer or per-workflow cuts. Cross-link, don't duplicate. TM-4
Origin: the CEO explicitly moved tooling demographics from the AI Adoption Report to this dashboard: "tooling demographics... I feel like this feels better on like an AI tooling dashboard... the dashboard could even let you like toggle between tools or compare tools" CEO-6. Work Area scoping gates the dashboard to the manager's team. Integration-mode awareness conditionally renders panels based on what tool data exists for the scoped Work Area.
Tool LandscapeCEO-1 CEO-6
Interaction rules TM-2: every developer name links (↗) to the developer profile; every KPI carries trend vs last period; tool colors are consistent across every chart on the page CEO-3. See something → investigate it.
Overview
✦ Manager takeaway · internalIn one glance: how many AI tools my team uses, how heavily, and whether it's agent-driven or co-pilot.

Active AI Platforms CEO-1

4
claude-code, github-copilot, codex_cli_rs, codex-cli
+ IDE co-pilot integrations
Data basis: tool identity from tool_key (coalesced: name ∥ type ∥ kind ∥ 'unknown'). Four identities in validated data. DR

Total AI Sessions (this month)

[X,XXX]
vs last month: [±X%]
Data basis: rollup_subject_tool_period summed across subjects within Work Area. Trend at day/week/month grain. the CEO specifically wanted "runtime sessions... how much time do I spend" per tool CEO-2. DR

Team AI Coverage

[n] of [n]
developers using AI tools this month
vs last month: [±n]
Data basis: count distinct subjects per tool from rollup. DR

Agent vs Co-pilot RPT-2

93% agent / 7% co-pilot
1,833 agent sessions / 128 IDE sessions VALIDATED ENV
✦ Manager takeaway · internalMy team's AI use is overwhelmingly agentic, not co-pilot — that's a different cost and management profile.
Data basis: workActivity.sessions.agentSessions (1,833) / .ideSessions (128). Maps to the "human only / human w/AI / agentic" framing decided in the meeting RPT-2. Contextualizes the tool breakdown. DR
Usage by Platform
✦ Manager takeaway · internalI can see exactly which tools get the most use and compare them on sessions, time, and token volume — all color-coded consistently.

Platform Usage Breakdown CEO-1 CEO-2

claude-code
[n] sessions · [n] hrs · [n]K tokens
codex_cli_rs
[n] sessions · [n] hrs · [n]K tokens
github-copilot
[n] sessions · [n] hrs · [n]K tokens
codex-cli
[n] sessions · [n] hrs · [n]K tokens
Data basis: rollup_subject_tool_period (tool_key × subject × period). Sessions, active minutes, tokens all Available. Total prompts: 43,729 in validated data. the CEO: "generally what tools am I using? how much am I using them?" and "knowing how many runtime sessions how much time do I spend waiting for claude" CEO-1 CEO-2. DR

Tool Adoption (devs using each)

claude-code
[n] devs
github-copilot
[n] devs
codex_cli_rs
[n] devs
codex-cli
[n] devs
✦ Manager takeaway · internalI can tell "widely adopted but lightly used" apart from "narrow but deep" — breadth ≠ depth.
Data basis: count distinct subjects per tool from rollup. the CEO: "adoption by platform... what percentage of agentic is cloud code versus codex" CEO-3. DR
Adoption trends

Tool-Mix Trend PARTIAL · ESTIMATED CEO-4 DR

▢ Stacked area chart
X-axis: weeks · Y-axis: session share by platform
Color bands per tool_key (consistent palette)
Shows platform adoption shifts: "Is the team migrating from Copilot to Claude Code?"
✦ Manager takeaway · internalI can see how my team's tool mix is shifting over time — not just a snapshot, a trend.
Data basis: workActivity.aiUsage.toolMix trended over time. 10 tool rows in validated data. Session-based, so measures activity not installation. Badge Partial/estimated. the CEO: "value by platform... that one is useful" CEO-4. DR
Platform Spend & EfficiencyCEO-4 CEO-9
Cost overview
✦ Manager takeaway · internalI know what AI tools cost my team this month, which platforms consume the budget, and how much went to waste.

Total AI Spend (this month)

$[X,XXX]
vs last month: [±X%]
Data basis: rollup_subject_tool_period.session_cost_usd_sum. Available per tool with trend. DR

Cost per Outcome ESTIMATED

$[2.75]
aggregate team-level · not per-tool
⚠ Weak takeaway · needs workWhy weak: a single aggregate number with no per-tool breakdown limits the manager's ability to compare platform value. Fix: show aggregate as context, pair with per-tool efficiency rows below. Per-tool cost-per-outcome requires G2.
Data basis: spendAllocation.costPerOutcome. $2.75 in validated data (company scope). Aggregate — outcome attribution is not per-tool. DR

Waste Cost ESTIMATED

$[X,XXX]
cost of abandoned AI work (team-level)
vs last month: [±X%]
Data basis: spendAllocation.wasteCost. $123K at company scope in validated data. Available at team scope, not per-tool. the Head of Product flagged the budget impact of inefficient tool use JN-4. DR
Spend by platform

Spend Share CEO-4

claude-code [X%] codex_cli_rs [X%] github-copilot [X%] codex-cli [X%]
✦ Manager takeaway · internalI know which platforms consume the budget — and whether the most expensive ones are earning it.
Data basis: session_cost_usd_sum per tool. Available. DR

Spend Trend by Platform

▢ Stacked area chart
X-axis: weeks · Y-axis: spend ($) by platform
Color bands per tool_key (consistent palette)
Which platforms are growing in cost? Is the total spend trending up or stabilizing?
Data basis: session_cost_usd_sum per tool at day/week grain. Available. Trend is key: the CEO emphasized "progression over time is the most important thing" for cost visibility. DR
Tool efficiency CEO-9
✦ Manager takeaway · internalI can compare tools on cost, efficiency, and iteration depth — not just adoption.

Tool Efficiency Comparison CEO-4 JN-3

Tool Sessions Active Hrs Cost Outcome Eff. EST Prompts / Session Value per $ G2
claude-code [n] [n] $[X,XXX] [X.XX] [n] [pending per-tool contribution aggregation]
github-copilot [n] [n] $[X,XXX] [X.XX] [n] [pending]
codex_cli_rs [n] [n] $[X,XXX] [X.XX] [n] [pending]
codex-cli [n] [n] $[X,XXX] [X.XX] [n] [pending]
Outcome Efficiency from spendAllocation.toolEfficiency — 4 tool rows in validated data. Uses aggregate outcome attribution, not per-tool outcomes; badge "estimated." Active Hrs from active_minutes_sum per tool — the CEO: "how much time do I spend waiting for claude... just knowing my vlog doesn't necessarily tell me" CEO-2. Prompts/Session = prompt_count_sum / session_count per tool — a proxy for iteration depth. the Head of Product: "not doing good prompts and I could be using a lot more tokens than I should be using" JN-3 JN-4. Value per $ (VLOOKU per tool) requires fact_contribution_session joined through runtime_session_id — mart exists but no GraphQL aggregation. FLAG Gap G2. DR
Value contribution by work model CEO-4

Output by Work Model RPT-2

Human only
[X%]
Human w/AI
[X%]
Agentic
[X%]
share of valued output by work model
✦ Manager takeaway · internalI can see how much of my team's output comes from agent-driven work vs. human-led — the split tells me where the leverage is.
Data basis: contributionLineage.contributionMix.*. Human + AI-assisted shares Estimated (collapsed); supervised/autonomous Source missing (G5). Labels use the meeting-agreed nomenclature: "human only, human w/AI, and agentic" RPT-2. TM-6 DR
Model mix

LLM Models by Tool PARTIAL · ESTIMATED DR

claude-code
Claude Opus
[X%]
Claude Sonnet
[X%]
github-copilot
GPT-4o
[X%]
GPT-4
[X%]
codex_cli_rs
[model]
[X%]
✦ Manager takeaway · internalI can see why one tool costs more per session than another — it's hitting a more expensive model.
Data basis: workActivity.aiUsage.modelMix: 20 model rows in validated data. Model identity not consistently captured — badge Partial. Useful for cost optimization context (Opus costs more than Sonnet; GPT-4 more than GPT-4o). DR
Activity PatternsCEO-8 DL-2 JN-1
Binding constraint: every Gold fact and rollup collapses to UTC day. Sub-day grain does not exist. source_timezone is reserved, fixed to UTC. This section designs the target visualizations but red-brackets the hour dimension. DR Gap G1. All four meeting participants endorsed this visualization — the CEO called it "the calendar heat map" CEO-8, the Dev Lead wants it for meeting planning DL-2, the Head of Product wants cross-team overlap windows JN-2.
Day-of-week pattern — available from day-grained rollups (V1)
✦ Manager takeaway · internalI know which days are peak and which are quiet — so I can plan meetings and allocate review time accordingly.

AI Session Volume by Day of Week

Mon
Tue
Wed
Thu
Fri
Sat
Sun
Peak: [Tuesday] · Quiet: [Friday] · Weekend: minimal
Data basis: rollup_subject_period at day grain, grouped by weekday. Available — partial answer to Obj 3 (day-of-week without hour-of-day). the Dev Lead: "I know when people are working the most and maybe I shouldn't plan meetings at that time" DL-2. DR

Avg Session Duration by Tool

claude-code
[X] min
codex_cli_rs
[X] min
github-copilot
[X] min
codex-cli
[X] min
Data basis: derived: active_minutes_sum / session_count per tool per period. Available. Agent tools likely show longer sessions than IDE co-pilot. Addresses the CEO's "how much time do I spend waiting for claude" CEO-2. DR
Hour-of-day heatmap GAP G1

Team Activity by Hour & Day CEO-8 DL-2 JN-1 FLAG

▢ Calendar heatmap (target visualization)
Mon
Tue
Wed
Thu
Fri
Sat
Sun
6am
9am
12pm
3pm
6pm
9pm
All cells are placeholders. Requires: (a) hour-grained fact/rollup, (b) per-subject timezone. Neither exists in Gold today.
V1 partial: day-of-week pattern (above) serves the "which days are busy" question. The hour dimension is blocked.
Normalized to manager's local time zone — the Head of Product: "if it could be in my time preferably" · the Dev Lead: "local time manager's local time in a 24-hour period."
⚠ Weak takeaway · needs workWhy weak: the visualization all four meeting participants endorsed cannot be served from current data. the CEO called it out by name CEO-8; the Dev Lead endorsed it for avoiding meeting conflicts DL-2; the Head of Product framed it for cross-team working sessions JN-2; all agreed on manager-local-time normalization DL-3 JN-1. Fix: ship the day-of-week view for V1. Prioritize G1 (sub-day grain + timezone) in the data platform roadmap — same gap as Developer Profile.
Data basis: Gap G1: fact_session_day grain = subject × repo × branch × tool × UTC day. Rollup period_grain ∈ {day, week, month, year}. No hour-grained path. source_timezone reserved, fixed to UTC. Same gap in Developer Profile Step 2. DR
Team Tool BreakdownDL-4 DL-1
✦ Manager takeaway · internalI can see each developer's tool usage at a glance and drill into their profile for the full picture.

Developer Tool Usage DL-4 DL-1

Developer Primary Tool Sessions Active Hrs Tokens MTD Spend Tools Used Δ vs Last Mo
[the Dev Lead] ↗ claude-code [n] [n] [n]K $[X,XXX] 3 [±X%]
[Dev B] ↗ github-copilot [n] [n] [n]K $[X,XXX] 2 [±X%]
[Dev C] ↗ claude-code [n] [n] [n]K $[X,XXX] 2 [±X%]
[Dev D] ↗ codex_cli_rs [n] [n] [n]K $[X,XXX] 1 [±X%]
[Dev E] ↗ github-copilot [n] [n] [n]K $[X,XXX] 1 [±X%]
Sorted by spend. Developer names link (↗) to their full profile. Primary tool = most sessions this month.
Data basis: top level = team aggregates from summed tool rollups. Clicking a developer filters to their individual tool usage, or navigates to the developer profile. the Dev Lead: "I want to know time spent on either on coding either AI or human driven coding... I can drill down on users" DL-1 DL-4. Active Hrs column added per the CEO's "how much time do I spend" framing CEO-2. TM-2 DR

Per-Developer Tool Mix (expanded view)

[the Dev Lead]
[Dev B]
[Dev C]
✦ Manager takeaway · internalI can see each person's tool preference — and spot who's using one tool vs. diversifying across platforms.
Data basis: stacked bar per developer, from rollup_subject_tool_period filtered to one subject. Available. This is the drill-down within this dashboard before navigating to the full developer profile. DR
Not in scope — deferred or sibling surfaceP2

Per-developer AI effectiveness scoring P2

Belongs on the EM Developer AI Usage Dashboard (per-developer cut, not per-tool). This dashboard cross-links.

Budget-tier cohort analysis CEO-10 FLAG

the CEO proposed developers grouped by budget tier with output metrics. Confirm whether this belongs on this dashboard, the AI Usage Dashboard, or the AI Adoption Report. Open question.

Prompt quality / rework deep-dive JN-3

the Head of Product flagged rework and prompt effectiveness. Rework rates intentionally unavailable (native rework units not defined); prompt text never inspected (privacy-bounded). Prompts-per-session in the efficiency table is the available proxy. Deeper cuts belong on the AI Usage Dashboard.

Work volume / commit / PR metrics P2 DL-1b

the Dev Lead wanted "number of PRs open that day, branches created." This is EM Workflow Dashboard scope, not tooling. Cross-link.

Unattributed session tracking GAP G4

Mart data exists (fact_session_unattributed_day) but no GraphQL field. Optional data-quality panel — if 20% of sessions are unattributed, the tool-usage picture is incomplete. Low severity.

Per-tool supervised vs autonomous split GAP G5

Session-aware contribution split mart exists (V20, classification SQL implemented) but supervised/autonomous shares are Source missing. 2-way human/AI split is sufficient for V1.

Cross-timezone overlap windows JN-2

the Head of Product: "helps me know when is the best time to potentially put working sessions together between teams." Requires G1 (sub-day grain + per-subject timezone). Blocked alongside the hour-of-day heatmap.
Coverage cross-check — every objective and transcript ask, where it's answered
Objective / askSourceAnswered byStatus
Obj 1 — Dedicated AI tooling dashboard separate from reportCEO-6The dashboard itself — interactive, in-app, platform-centric. the CEO explicitly moved tooling demographics from report to dashboard.Designed
Obj 2 — "What tools, how heavily?" with consistent color-codingCEO-1 CEO-3Tool Landscape: usage breakdown, adoption, tool-mix trend. Consistent palette across all charts.Data available
Obj 3 — Work activity patterns (time of day, day of week)CEO-8 DL-2 JN-1Activity Patterns: day-of-week chart (available). Hour-of-day heatmap designed but data-blocked (G1).Partial — G1 blocks hour dim
Obj 4 — AI effectiveness per tool (not just adoption)CEO-4 JN-3Platform Spend & Efficiency: tool efficiency table, prompts/session proxy, waste cost, value by work model. Per-tool VLOOKU pending (G2).Partial — G2 blocks per-tool value
Obj 5 — Team-level + individual drill-downDL-4Team Tool Breakdown: developer table with tool usage + active hours, links to profiles, per-developer tool mix.Data available
Obj 6 — Keep scope streamlinedCEO-74 sections only. Deferred strip cross-links to sibling dashboards. No per-developer deep-dives on this surface.Design principle
the CEO — "how much time do I spend with each tool / waiting for Claude"CEO-2Active Hours column in the efficiency table and developer table. Session duration by tool chart.Data available
the CEO — "value by platform" and "value contribution by work model"CEO-4Spend Share, Tool Efficiency Comparison, Output by Work Model panels.Available / Partial
the CEO — scope split question (one vs two/three dashboards)CEO-5Designed as single AI Tooling Dashboard with platform-identity lens. Sibling dashboards carry other lenses.FLAG — decision open
the CEO — tooling demographics moved from report to dashboardCEO-6This entire dashboard. Report carries executive-level platform summary only.Designed
the CEO — "the calendar heat map"CEO-8Activity Patterns section. Day-of-week for V1; hour-of-day target designed, data-blocked.Partial — G1
the CEO — budget bracket breakdown by developerCEO-10Deferred — location TBD (this dashboard vs AI Adoption Report vs AI Usage Dashboard).FLAG — location TBD
the Head of Product — timezone normalization to manager's local timeJN-1Designed into the heatmap spec (manager-local-time normalization). Blocked by G1.Partial — G1
the Head of Product — cross-team overlap windowsJN-2Deferred — requires G1. Explicit in the deferred strip.Blocked — G1
the Head of Product — rework / prompt effectiveness visibilityJN-3Prompts-per-session proxy in efficiency table. Full rework data unavailable. Deeper cuts deferred to AI Usage Dashboard.Partial — deferred
the Head of Product — prompt quality → budget connectionJN-4Waste Cost panel + Prompts/Session column. "Not doing good prompts... using a lot more tokens than I should."Partial — proxy only
the Dev Lead — time spent on coding (AI vs human)DL-1Active Hours in efficiency table and developer table. Agent vs Co-pilot panel.Data available
the Dev Lead — calendar heatmap for meeting planningDL-2Activity Patterns section. Day-of-week for V1.Partial — G1
the Dev Lead — local-time normalization, 24hr periodDL-3Designed into heatmap spec. Blocked by G1.Partial — G1
the Dev Lead — drill-down to individual developersDL-4Team Tool Breakdown developer table with links to profiles.Data available
Meeting consensus — nomenclature: "human only / human w/AI / agentic"RPT-2Used in Agent vs Co-pilot panel and Output by Work Model panel.Applied
Every objective from 01-Objectives and every individual transcript ask has a home — either on this dashboard, flagged as data-blocked, or explicitly deferred to a sibling surface.
Open questionsFLAG
  1. Scope split. Single AI Tooling Dashboard (this design) alongside sibling dashboards, or different boundaries? the CEO raised the possibility of a three-way split (workflow / AI usage / AI tooling) CEO-5. Trent endorsed keeping dashboards smaller in scope. This wireframe assumes the platform-focused dashboard with cross-links. The EM Workflow Dashboard and EM Developer AI Usage Dashboard work streams already exist — confirm boundaries are correct.
  2. Sub-day activity grain (G1). The hour-of-day calendar heatmap — endorsed by all four meeting participants (the CEO by name CEO-8, the Dev Lead for meeting planning DL-2, the Head of Product for cross-team overlap JN-2) — requires sub-day Gold facts and per-subject timezone, neither of which exists. Same gap as Developer Profile. Ship day-of-week only for V1; prioritize G1 in the data platform roadmap.
  3. Per-tool VLOOKU aggregation (G2). Mart infrastructure (fact_contribution_session with runtime_session_id) exists. GraphQL aggregation does not. Without it, the tool efficiency comparison is cost/usage only — no per-platform value output. High severity for the CEO's "value by platform" ask CEO-4.
  4. Budget bracket breakdown location. the CEO proposed developers grouped by budget tier with output metrics CEO-10. Confirm whether this belongs on this dashboard, the AI Usage Dashboard, or the AI Adoption Report.
  5. Rework metric path. the Head of Product flagged rework/prompt effectiveness visibility JN-3 and connected it to budget impact JN-4. Rework rates are intentionally unavailable (native rework units not defined). Prompts-per-session is the current proxy. Is this sufficient, or should the data platform prioritize rework definition?
  6. Tool-call count population (G3). toolCallCount exists in schema but returned 0 in validated data. Low severity — prompts-per-session is an available alternative for measuring AI interaction depth.
  7. Cross-timezone overlap windows. the Head of Product specifically asked for visibility into "when is the best time to potentially put working sessions together between teams" JN-2. Requires G1 resolution. Could be a dedicated panel or a feature of the heatmap.
Relationship to sibling surfaces: this dashboard is the platform/tool lens (which tools, how much, how well); the EM Developer AI Usage Dashboard is the per-developer lens (is each engineer using AI effectively); the EM Workflow Dashboard is the work output lens (commits, PRs, delivery). All three build on the same rollup infrastructure and surface different cuts. the CEO: "I can drill in then on an engineering dashboard for workflow or a developer AI usage dashboard."