Anonymized portfolio copy — names and customers replaced; all data illustrative.
AI Tooling Dashboard — Narrative Wireframe
Step 3 first-pass wireframe, built from objectives and data-relevance only (no full transcript, no existing design). 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 context
RPT-n Reports meeting 6/22 (the CEO, Trent, the Head of Product, the Dev Lead)
CEO-n the CEO (specific attribution)
JN-n the Head of Product (specific attribution)
Decisions & status
TM Trent design direction
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
⚠ 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
RPT-2 TM
Built for the engineering manager SINGLE PRIMARY USER
Objectives are explicit: the manager's question is "what tools is my team using, how much are they costing, and are they producing value?" RPT-2 RPT-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
Scope note: the 6/22 call surfaced a possible three-way split. This dashboard focuses on which tools, how heavily, and how that maps to cost and activity. Where objectives overlap (e.g., AI effectiveness), this surface shows the per-tool cut; the AI Usage Dashboard shows the per-developer cut. Cross-link, don't duplicate. RPT-6 CEO-1
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 LandscapeRPT-2
Interaction rules TM: 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. 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
4
claude-code, github-copilot, codex_cli_rs, codex-cli
+ IDE co-pilot integrations
Tool identity from tool_key (coalesced: name ∥ type ∥ kind ∥ 'unknown'). Four identities in validated data. DR
Total AI Sessions (this month)
[X,XXX]
From rollup_subject_tool_period summed across subjects within Work Area. Trend at day/week/month grain. DR
Team AI Coverage
[n] of [n]
developers using AI tools this month
vs last month: [±n]
Count distinct subjects per tool from rollup. DR
Agent vs Co-pilot
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.
Maps to the Human w/ AI vs Agentic framing. Contextualizes the tool breakdown — agent tools dominate. 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 RPT-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
From rollup_subject_tool_period (tool_key × subject × period). Sessions, active minutes, tokens all Available. Total prompts: 43,729 in validated data. DR
Tool Adoption (devs using each)
✦ Manager takeaway · internalI can tell "widely adopted but lightly used" apart from "narrow but deep" — breadth ≠ depth.
Count distinct subjects per tool from rollup. Copilot may be broadly installed but lighter per-dev; Claude Code may be narrower but deeper. DR
Adoption trends
Tool-Mix Trend PARTIAL · ESTIMATED 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.
workActivity.aiUsage.toolMix trended over time. 10 tool rows in validated data. Session-based, so it measures activity not installation. Badge Partial/estimated. DR
Platform Spend & EfficiencyRPT-4
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]
From 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 the aggregate as context, pair with per-tool efficiency rows below. Per-tool cost-per-outcome requires G2.
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%]
spendAllocation.wasteCost. $123K at company scope in validated data. Available at team scope, not per-tool. DR
Spend by platform
Spend Share RPT-2
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.
From session_cost_usd_sum per tool. Available. DR
Tool efficiency
✦ Manager takeaway · internalI can compare tools on cost, efficiency, and iteration depth — not just adoption.
Tool Efficiency Comparison RPT-4
| Tool |
Sessions |
Cost |
Outcome Eff. EST |
Prompts / Session |
Value per $ G2 |
| claude-code |
[n] |
$[X,XXX] |
[X.XX] |
[n] |
[pending per-tool contribution aggregation] |
| github-copilot |
[n] |
$[X,XXX] |
[X.XX] |
[n] |
[pending] |
| codex_cli_rs |
[n] |
$[X,XXX] |
[X.XX] |
[n] |
[pending] |
| codex-cli |
[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." Prompts/Session = prompt_count_sum / session_count per tool — a proxy for iteration depth (high prompts + low output = possible inefficiency). Available. Value per $ (VLOOKU per tool) requires fact_contribution_session joined through runtime_session_id to tool identity — mart infrastructure exists but no GraphQL aggregation. FLAG Gap G2. DR
Model mix
LLM Models by Tool PARTIAL · ESTIMATED DR
claude-code
github-copilot
codex_cli_rs
✦ Manager takeaway · internalI can see why one tool costs more per session than another — it's hitting a more expensive model.
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 PatternsRPT-3
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.
Day-of-week pattern — available from day-grained rollups
✦ 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
Peak: [Tuesday] · Quiet: [Friday] · Weekend: minimal
From rollup_subject_period at day grain, grouped by weekday. Available — partial answer to Obj 3 (day-of-week without hour-of-day). DR
Avg Session Duration by Tool
Derived: active_minutes_sum / session_count per tool per period. Available. Agent tools likely show longer sessions than IDE co-pilot. DR
Hour-of-day heatmap GAP G1
Team Activity by Hour & Day RPT-3 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.
⚠ Weak takeaway · needs workWhy weak: the visualization all four meeting participants endorsed cannot be served from current data. The day-of-week partial answer is useful but substantially less than what was asked for. Fix: ship the day-of-week view for V1. Prioritize G1 (sub-day grain + timezone) in the data platform roadmap — this is the same gap flagged in the Developer Profile work stream.
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 BreakdownRPT-5
✦ 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 RPT-5
| Developer |
Primary Tool |
Sessions |
Tokens MTD |
Spend |
Tools Used |
Δ vs Last Mo |
| [the Dev Lead] ↗ |
claude-code |
[n] |
[n]K |
$[X,XXX] |
3 |
[±X%] |
| [Dev B] ↗ |
github-copilot |
[n] |
[n]K |
$[X,XXX] |
2 |
[±X%] |
| [Dev C] ↗ |
claude-code |
[n] |
[n]K |
$[X,XXX] |
2 |
[±X%] |
| [Dev D] ↗ |
codex_cli_rs |
[n] |
[n]K |
$[X,XXX] |
1 |
[±X%] |
| [Dev E] ↗ |
github-copilot |
[n] |
[n]K |
$[X,XXX] |
1 |
[±X%] |
Sorted by spend. Developer names link (↗) to their full profile. Primary tool = most sessions this month.
Top level = team aggregates from summed tool rollups. Clicking a developer filters to their individual tool usage, or navigates to the developer profile for the full picture. TM RPT-5
Per-Developer Tool Mix (expanded view)
✦ Manager takeaway · internalI can see each person's tool preference — and spot who's using one tool vs. diversifying across platforms.
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-2 FLAG
the CEO proposed. Confirm whether this belongs on this dashboard, the AI Usage Dashboard, or the AI Adoption Report. Open question.
Prompt quality / rework deep-dive JN-1
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
EM Workflow Dashboard scope, not tooling.
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
Requires G1 (sub-day grain + per-subject timezone). Blocked alongside the hour-of-day heatmap.
Coverage cross-check — every objective, where it's answered
| Objective / ask | Answered by | Status |
| Obj 1 — Dedicated AI tooling dashboard separate from report RPT-1 | The dashboard itself — interactive, in-app, platform-centric | Designed |
| Obj 2 — "What tools, how heavily?" with consistent color-coding RPT-2 | Tool 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) RPT-3 | Activity 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) RPT-4 | Platform Spend & Efficiency: tool efficiency table, prompts/session proxy, waste cost. Per-tool VLOOKU pending (G2). | Partial — G2 blocks per-tool value |
| Obj 5 — Team-level + individual drill-down RPT-5 | Team Tool Breakdown: developer table with tool usage, links to profiles, per-developer tool mix. | Data available |
| Obj 6 — Keep scope streamlined RPT-6 | 4 sections only. Deferred strip cross-links to sibling dashboards. No per-developer deep-dives on this surface. | Design principle |
| the CEO — scope split question (one vs two/three dashboards) CEO-1 | Designed as single AI Tooling Dashboard with platform-identity lens. Sibling dashboards carry other lenses. | FLAG — decision open |
| the Head of Product — rework / prompt effectiveness JN-1 | Prompts-per-session proxy in efficiency table. Full rework data unavailable. Deeper cuts deferred to AI Usage Dashboard. | Partial — deferred |
| the CEO — budget bracket breakdown CEO-2 | Not included on this dashboard. Open question: here vs AI Adoption Report. | FLAG — location TBD |
Every objective from 01-Objectives has a home — either on this dashboard, flagged as data-blocked, or explicitly deferred to a sibling surface.
Open questionsFLAG
- Scope split. Single AI Tooling Dashboard (this design), or further split into separate surfaces? the CEO raised the possibility of workflow + AI usage as siblings. This wireframe assumes single platform-focused dashboard with cross-links. Decision needed before Step 4.
- Sub-day activity grain (G1). The hour-of-day calendar heatmap — endorsed by all four meeting participants — 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.
- 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 "are my tools worth it" question.
- Budget bracket breakdown location. 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.
- Rework metric path. the Head of Product flagged wanting rework/prompt effectiveness visibility. 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?
- 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.
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). Build on the same rollup infrastructure, surface different cuts.