AI companies

Analytics for AI companies growing faster than their data team.

Usage and revenue change every week. Sales, product, and leadership can ask about them directly and get the answer your data team would give.

Question
Completed
Summarized LLM cost per conversation by week
2s
Found a workflow change merged on Aug 12
3s
Checked cost per conversation by run type
4s
Conversation
Metric: LLM cost per conversation per Started At by Week
$0$0.1$0.2$0.3$0.4$0.5
W27W28W29W30W31W32W33W34W35W36W37W38W39W40
1,284 traces, sorted by cost
TraceAccountStepsCallsTokensCost ↓
tr_8f2c91Kestrel1431612k$4.82
tr_17ab04Ostara Health1127541k$4.11
tr_c0e7d3Pinecrest Logistics1222498k$3.67
tr_5d91aaKestrel919402k$2.94
tr_e2b6f0Veld Labs1018377k$2.71
tr_93fd12Corvid715301k$2.09
tr_4a0c58Mariner Freight & Customs Brokerage814288k$1.96
tr_8f2c91KestrelSep 30, 14:2242.7s
planreasoning-large$0.31
search_sources––
read_source ×4general-medium$0.42
generate_stepsreasoning-large$1.12
run_query––
verify_stepsreasoning-large$0.97
retry generate_stepsreasoning-large$1.04
run_query––
write_answergeneral-medium$0.96
1 retry after a failed verification

Cost per conversation rose from about $0.15 to $0.29 in the week of August 10 and reached $0.40 by September. On August 12, standard questions moved to multi-step agent runs. Single-step conversations still cost about $0.15 and multi-step runs about $0.61, so the jump comes from more conversations running multi-step. In the most expensive trace, 71% of the cost goes to the large reasoning model, and a single retried step adds $1.04.

Sources (1)

Definitions every answer agrees on.

Your data team defines governed metrics once, in YAML kept in Git, and every answer uses them.

How the semantic layer works

metrics/billable_llm_cost.yml

metrics:
  billable_llm_cost:
    name: Billable LLM cost
    model_id: model_call
    operations:
      - operation: filter
        parameters:
          key: is_internal_traffic
          operator: "=="
          value: false
      - operation: filter
        parameters:
          key: is_retry
          operator: "=="
          value: false
    aggregation:
      type: sum
      key: cost_usd

What your team wrote down shapes the answer.

Your code and docs already say how revenue and usage should be read. Supersimple follows them, and every rule it applies shows up as a step you can check.

Revenue metrics guide

Report ARR from ARR Movement. Subscription ARR also counts trials.

Uses ARR Movement
billing/usage_meter.py

Retries of failed generations are never billed to the customer.

Is Retry is false
BIL-412

Team plans move from seat pricing to usage commits on June 2.

[1]Cited in the answer

What would your team ask first?