Tracking LLM costs across an entire app is easy. Finding out which customer is actually burning through your OpenAI bill? That's a nightmare. For a while, we were just eating the cost. You look at the Stripe dashboard, look at the OpenAI invoice, and pray the margins make sense. But when a single power user decides to process 10k documents through Claude on a Saturday night, averages stop mattering real fast. tbh, most billing dashboards are useless for this. They tell you you spent $400 yesterday, but not who spent it. Here is what actually works in production, without over-engineering your entire stack. The Metadata trick If you're using OpenAI or Anthropic, you can pass metadata with every request. Don't just log it in your db. Pass the user_id or tenant_id directly to the provider. OpenAI supports this natively. Anthropic has custom headers. OpenRouter makes it trivial. const response = await openai . chat . completions .…