AI spend per user

By vendor
Spend & usage per user
Explore
Slice the raw usage facts any way
Chat vs Claude Code, per developer
Model mix, per developer
In Claude Code the tool selects the model, not the person — read this as where spend landed, not as an individual's choice. Chat is user-selected.
Effort by person
Loading…
Tracks each PBFS engineer to the repos & apps they build. Attributed infra splits each app's Azure run-rate across its contributors by commit share (showback, not metering). AI spend is their Cursor + Claude billing. Repo age and last touched come from GitHub across all branches. Bots and non-PBFS accounts are excluded.
App cost & value
Portfolio Efficiency opportunities Value leaders
▸ What do the tiers & recommendations mean?
Apps come from Container Zone (the platform's system of record). Cloud cost is joined by each app's actual resource groups; contribution by repo, across all branches.
Cost categories
CategoryServiceCost
Loading…
Every Azure service rolls into exactly one category, so the categories sum to total Azure spend — anything new in the bill lands in Other rather than going unreported. Shared platform services is the subtotal of the categories no single app can be billed for: network core, edge & ingress, observability and API management. Sourced from Azure Cost Management by service.
Weekly spend by type of work
Type of work by environment
Loading…
Non-production
Weekday vs weekend
avg per day
Average cost per weekday and per weekend day in the window, and the weekend figure as a percentage of the weekday one. Scheduled work runs at weekends too, so this does not separate idle capacity from batch.
Not available yet — needs a Databricks grant
read-only, two tables
Azure bills all DBU usage against one resource per workspace, so the figures above are as fine-grained as Azure can go. These need system.billing.usage inside Databricks:
  • Cost per job and per pipeline
  • Cost per SQL warehouse, and which sit idle but warm
  • Cost per person (run_as) and per team tag
  • Which model-serving endpoint holds the non-production spend
  • DBU counts alongside dollars, hourly rather than daily
Register the ingest identity costanalyzer-prod-poller-t8gw-identity as a Databricks service principal, then GRANT SELECT on system.billing.usage and system.billing.list_prices, plus CAN USE on one SQL warehouse. One grant covers all three environments — the billing tables are account-wide.
Environment comes from the resource-group name (databk-{env}-…, lz-databk-{env}-…). Type-of-work labels are our reading of Azure’s meter names, shown under each row so the mapping can be checked. Every meter lands in exactly one row, so the rows sum to the total. Trend shows complete weeks only.
Applications

Select an application to list the machines inside it.

What the money buys
Applications

Select an application to list the host pools users reach it through.

What the money buys
Providers — manual sync
Loading…
Platform developers — allow-list
Who every per-user page is scoped to: contributors to a Container Zone app's repo.
Loading…
App-analyzer configuration
Settings override the container's env defaults live (stored in app_config) — no redeploy. Disabling a connector skips it on the next sweep.
Import ChatGPT usage
ChatGPT Enterprise has no usage API — export the leaderboard → users CSV from the admin analytics dashboard and drop it here. Replaces the prior snapshot each time.