What goes in an LLM adoption and unit economics dashboard?
An LLM adoption and unit economics dashboard connects the cost story to the value story: who uses the AI features, how deeply, what each active user costs, and — where revenue data is joined — whether the features earn their spend. It's the dashboard that decides whether the LLM budget grows or gets capped.
Which cards belong on this dashboard?
- Active users of LLM features per week (line)
- LLM cost per active user (line)
- Requests per user distribution (histogram or table)
- Feature usage by app or surface (bar)
- Retention of AI-feature users vs. non-users (cohort table)
- Top tenants or accounts by LLM spend (table)
- Cost vs. revenue per feature, where joined (table)
- New-user activation into AI features (funnel or line)
What data does this dashboard need?
- User- or tenant-grain daily rollups: requests, tokens, cost per user
- Feature and app tags on requests
- Product analytics user table for the join (signup date, plan, segment)
- Revenue per account where the margin view is wanted
- Consistent user IDs across the LLM gateway and product analytics
How do you build it?
- Sync usage rollups from your LLM gateway, tracing, or eval tool into a database, keeping stable IDs, timestamps, token counts, and costs.
- Build clean models at the grain this dashboard requires — daily per app and model is the workhorse.
- Create one saved question per card and certify the shared models and metric definitions.
- Add dashboard filters for Date range, feature, plan or segment, app, tenant.
- Exclude test, staging, and playground traffic from headline cards, and show the refresh time.
Example card SQL
SELECT
date_trunc('month', window_start) AS month,
COUNT(DISTINCT user_id) AS active_users,
ROUND(SUM(cost_usd), 2) AS llm_cost_usd,
ROUND(
SUM(cost_usd) / NULLIF(COUNT(DISTINCT user_id), 0), 4
) AS cost_per_active_user
FROM llm_user_rollups
WHERE environment = 'production'
GROUP BY 1
ORDER BY 1;