15. Adoption and measurement
"Measuring Claude Code happens at three levels. A developer sees their own cost and limits with /usage, their working habits with /insights, and a live meter in the status line. A champion spreads it with /team-onboarding, which turns their last 30 days of usage into a setup guide for a teammate. An admin watches adoption in the analytics dashboard and spend in the spend report, and for anything on Bedrock, Agent Platform or a gateway, uses OpenTelemetry, because those clouds never report back to Anthropic. Every one of those numbers is an estimate until it's reconciled with the provider's bill."
The last sentence is the one a finance partner will remember you for.
8 pictures, in order.
Use the arrow keys or the dots. Tap a picture to see it full size.
The facts someone can check.
Who measures what
| Audience | Tools | Blind spot |
|---|---|---|
| Developer | /usage, /insights, /statusline |
This machine only: no other devices, no claude.ai |
| Champion | /team-onboarding, /powerup, the champion kit |
Success is social: other people answering questions |
| Admin | Analytics dashboard, spend report, Analytics APIs, OpenTelemetry | Dashboards cover claude.ai and Console, not cloud providers |
Onboarding: let the first user write the guide
/team-onboardingreads your sessions, commands and MCP server usage from the past 30 days and writes a markdown guide a teammate pastes as their first message. On Team and Enterprise plans it also returns a share link that opens directly in Claude Code. Run it in a project you've spent real time in./powerupis the feature tour: quick interactive lessons with animated demos.- Anthropic's champion kit gives a thirty-day playbook: week 1 seed a channel, week 2 start a weekly show-and-tell, week 3 pair and pin an FAQ, week 4 hand off to a second champion. Each week has a signal that it worked; the last one is "other people answer the questions."
- Time budget for a champion: about 15 minutes a week posting wins, 20 answering, 5 on the show-and-tell thread, and 0 to 30 pairing.
- Security and data-handling questions go to the admin. Champions shouldn't improvise them.
/usage and /insights
/usage (aliases /cost, /stats) |
/insights |
|
|---|---|---|
| Answers | What this session and my plan usage look like | How I work, where it goes wrong, what to try |
| Data | Local session history | Up to 200 new sessions per run on this machine |
| Output | Session cost, prompt cache line, plan usage breakdown, recommendations | ~/.claude/usage-data/report.html plus timestamped copies |
| Notable | Recommendations each apply to at least 10% of recent usage; press d/w for 24 hours or 7 days, f to apply fixes (v2.1.305+) |
Its tokens count against your plan or bill; reports deleted after 30 days; not in cloud sessions |
The /usage dollar figure is computed locally at list price unless an admin sets modelPricing in managed settings, and /clear resets it to $0.
The status line
- Claude Code runs your script with session JSON on stdin and shows what it prints. It runs locally and uses no API tokens.
/statusline show model and context percentagewrites a script in~/.claude/and updates settings for you. With no description it builds one from your shell prompt;/statusline deleteremoves it.- Useful fields:
cost.total_cost_usd,context_window.used_percentage,rate_limits.five_hour.used_percentage,rate_limits.seven_day.used_percentage,model.display_name,effort.level. - It re-runs on new messages, after
/compact, on mode changes, and onrefreshInterval(minimum 1 second), debounced at 300 ms.
The analytics dashboard (Teams and Enterprise)
- At
claude.ai/analytics/claude-code, for Admins and Owners. Usage metrics for everyone; contribution metrics (PRs and lines shipped with Claude Code) need the Claude GitHub app plus two toggles an Owner turns on. Data appears within 24 hours. - A merged PR is matched against sessions from 21 days before to 2 days after the merge. Lines rewritten more than 20%, lock files, generated code and lines over 1,000 characters aren't counted. The numbers are deliberately conservative.
- Leaderboard of the top 10, CSV export of everyone, and a
claude-code-assistedlabel on merged PRs in GitHub. - Not covered: Console API usage, cloud providers, zero data retention orgs, and GitHub Enterprise Server repos (usage only).
- Console customers get a separate dashboard at
platform.claude.com/claude-codewith usage and spend.
OpenTelemetry
- Turn it on with
CLAUDE_CODE_ENABLE_TELEMETRY=1, choose exporters (OTEL_METRICS_EXPORTER,OTEL_LOGS_EXPORTER), setOTEL_EXPORTER_OTLP_ENDPOINTand a protocol. Verify by looking forclaude_code.session.count. - Eight metrics:
session.count,active_time.total,token.usage,cost.usage,lines_of_code.count,commit.count,pull_request.count,code_edit_tool.decision, all prefixedclaude_code.. OTEL_RESOURCE_ATTRIBUTEStags everything with a team or cost center.- Prompt text, tool details and raw API bodies are off until each
OTEL_LOG_*opt-in. - Deliver it in managed settings: Claude Code then removes conflicting developer endpoints at startup, and a repo's own settings can't turn telemetry on or redirect it.
Where the spend number lives
| Setup | See spend | Cap spend | Per user |
|---|---|---|---|
| Teams or Enterprise | Spend report in org analytics | Seat allowance, then spend limits on usage credits | Spend report CSV; Enterprise Analytics API |
| Console | Console usage page | Workspace spend limits | Console dashboard; Claude Code Analytics API |
| Bedrock, Agent Platform, Foundry | Cloud billing console | Cloud budget controls | OpenTelemetry or a gateway |
Benchmarks from Anthropic's cost docs: around $13 per developer per active day, $150 to $250 per developer per month, and under $30 per active day for 90% of users. Start with a pilot to set your own baseline.
The architect's point
Separate the three questions a customer bundles together. "Are people using it?" is the adoption chart. "Is it worth it?" is contribution metrics alongside their own engineering KPIs. "What does it cost?" is the provider's bill, with OpenTelemetry or a gateway for per-user attribution when the dashboards can't see the traffic. Answering all three from one number is how a pilot loses its budget.
Answer out loud, then flip the card.
Mark each one honestly. Cards you miss stay flagged for review, in this browser.
A VP asks: "How do we prove Claude Code is worth it?" Where do you point them?
On Teams or Enterprise, the analytics dashboard's contribution metrics: PRs with Claude Code, lines with Claude Code, and PRs per user as adoption grows. They are conservative by design. Pair them with the team's own KPIs, such as DORA metrics or sprint velocity, rather than presenting them alone. On Enterprise, the Enterprise Analytics API gives the same data programmatically.
The customer runs Claude Code on Bedrock. Why is their analytics dashboard empty, and what do you set up?
Claude Code doesn't send cloud-provider usage back to Anthropic, so Anthropic's dashboards and Analytics API don't cover it. Use OpenTelemetry from each machine into their own stack, a Claude apps gateway with per-user attribution, or an LLM gateway that tracks spend per key. Cost lives in AWS Cost Explorer.
Finance says the cost figure in /usage doesn't match the invoice. Who's right?
The invoice. /usage, the status line and OpenTelemetry compute cost locally at list price. If the organization has contracted rates, set modelPricing in managed settings so the figures use them; /usage then notes "at your organization's configured rates". It's still an estimate, not a bill.
Legal is nervous: "Will OpenTelemetry send everyone's prompts to our SIEM?"
Not by default. Metrics carry counts, costs and attributes like user, session and model. Prompt text, assistant responses, tool arguments and raw API bodies each need an explicit opt-in (OTEL_LOG_USER_PROMPTS, OTEL_LOG_ASSISTANT_RESPONSES, OTEL_LOG_TOOL_DETAILS, OTEL_LOG_RAW_API_BODIES). Set the configuration in managed settings so developers and repos can't change where it goes.
How would you onboard 40 new engineers to an existing team's way of using Claude Code?
Have the team's most active user run /team-onboarding in the main project: it builds a guide from their last 30 days of sessions, commands and MCP servers that a new person pastes as their first message, with a share link on Team and Enterprise. Add /powerup for feature discovery, a channel with a pinned guide, and the champion kit's weekly show-and-tell.
A developer says "/usage says I barely use it, but I live in Claude Code." What's going on?
/usage reads local session history on that machine. Work on another laptop, in claude.ai, or in cloud sessions isn't in it. The plan usage bars come from the server, but the breakdown and recommendations are local. Same for /insights.
What's the difference between /usage and /insights?
/usage is quantitative: session cost, prompt cache, plan limits, what is eating the allowance, and fixes. /insights is qualitative: it analyzes up to 200 recent sessions and writes an HTML report on what you work on, where things go wrong, and features to try. /insights itself costs tokens.
A team lead wants developers to see their cost and plan limits at all times, without running a command. What do you suggest?
A status line. It's a local script fed session JSON, costs no API tokens, and can show cost.total_cost_usd, the 5-hour and 7-day plan windows, and context use. /statusline will write one from a plain-English description. For org-level visibility, that's OpenTelemetry, not the status line.
Wrong answers that sound right.
Before you tap, say why each one is wrong.
Three moves in a fresh project.
Facts checked against code.claude.com/docs/en/ pages commands, costs, analytics, monitoring-usage, statusline, champion-kit and admin-setup on 2026-10-25. Claude Code ships fast: confirm anything that matters against the official docs.