Skip to main content
DRIFTSTACK

Docs · Operational cost estimate

Understanding the operational cost estimate.

Browser subscriptions are fixed-price and enforced by concurrent-session capacity, not by hours, calls, or page navigations. The GET /v1/account/cost endpoint is a UTC-month estimate of Driftstack's operational cost to serve your account. It is not the amount charged to you and it does not replace a Stripe invoice or NowPayments receipt.

Estimate components

The response keeps a stable five-component shape. Today only the compute estimate is populated. Storage, egress, email, and LLM are reserved fields and return zero; none of these values is an invoice line item.

Compute estimate
Derived from session lifecycle time in whole minutes and Driftstack's internal fleet-cost rate. Session minutes are analytics for unit economics; your browser subscription is not charged per minute.
Storage (reserved)
storageCents is present for response-shape stability, but no per-account storage meter feeds it in production. It currently returns zero.
Egress (reserved)
egressCents currently returns zero. Browser stream traffic is not itemized as a customer usage charge.
Email (reserved)
emailCents currently returns zero. The endpoint does not turn transactional email into an invoice line item.
LLM (reserved here)
llmCents currently returns zero, including for bundled-LLM users. Bundled LLM's separate status endpoint records a 10-cent-per-turn included-service budget value; it is not rolled into this estimate or separately itemized by Stripe today. BYOK charges stay with the model provider.

Operator threshold state

Every cost response includes a thresholdState field with one of three values:

  • under-soft

    The operational estimate is below the operator warning threshold for your tier.

  • between-soft-and-hard

    The estimate crossed the operator warning threshold but remains below the higher attention threshold. The platform may publish an in-app account notification and an operator log; it does not send a billing email or change your subscription.

  • over-hard

    The estimate crossed the operator attention threshold. This is an operational signal, not a customer spending cap: it does not add an overage, rate-limit new sessions, or stop work already running.

Threshold numeric values are not part of the customer response because they are operator-tuned unit-economics configuration. The categorical state is diagnostic context only; your concurrent-session cap remains the browser-capacity enforcement boundary.

Reading the endpoint

Endpoint: GET /v1/account/cost?billing_cycle=YYYY-MM. Omit the parameter for the current cycle. Returns 200 with a synthesised zero-breakdown for fresh accounts that haven't accrued usage yet (no 404).

// Example response
{
  "account_id": "01HF...",
  "billing_cycle": "2026-05",
  "tier": "api_builder",
  "breakdown": {
    "computeCents": 4720,
    "storageCents": 0,
    "egressCents": 0,
    "emailCents": 0,
    "llmCents": 0,
    "totalCents": 4720,
    "thresholdState": "under-soft"
  }
}

All amounts are integer accounting cents in the operational estimate. totalCents is the sum of the five response fields, but it is not an invoice total. Use Stripe billing state and invoices, or the relevant NowPayments receipt, for payment truth.

FAQs

Is the response real-time?

The endpoint recomputes each request from current lifecycle-derived session minutes. It does not read a Stripe invoice or a customer usage-billing ledger.

Why is LLM cost 0 even though I'm using bundled AI?

The LLM field in this endpoint is reserved and always zero today. Bundled LLM records its 10-cent-per-turn included-service budget on GET /v1/account/me/bundled-llm-settings, not here. BYOK usage is billed directly by your model provider.

What happens if the estimate crosses the higher threshold?

The platform records an operator alert and can publish an in-app account notification. It does not email a customer billing warning, add an invoice item, rate-limit a session, or silently stop work.