Skip to content

For B2B SaaS with AI in the product

See which customers your AI is losing money on.

This customer is unprofitable.

Your OpenAI invoice is one number. CostSlice is the P&L by tenant and feature. Change one base_url. Tag tenant, feature, and env. See who is eating margin while there is still time to change the SKU.

No credit card needed for Starter.

  • Keep your OpenAI API key
  • We never store prompts or completions
  • Fail-open. Forgotten tags never drop the call

No SOC 2. No HIPAA. Fail-open if we are slow.

acme-health · this month

clinical-summary · prod

UnprofitableSample data

This customer is unprofitable.

LLM cost
$4,812
Plan
$2,400
Margin
−101%
Requests
18,240

Cost vs plan

2.0×

  • harbor-support−9%Unprofitable
  • lumen-chat81%Healthy

The invoice is one line

You can’t price what you can’t attribute.

Blended cost hides the leak

The OpenAI bill is one line. A tenant at −101% margin disappears inside it. Attribute spend to tenant and feature and the leak has a name.

Chat isn’t always the expensive line

Tag the feature on the call. Clinical summary, support copilot, docs search — the expensive line is often not the one the team is talking about.

Reports. Does not cap.

Unprofitable is a badge, an icon, and the word. We do not cap or block LLM traffic. Starter has a hard request cap on the plan, not a kill switch on a customer.

OpenAI invoice · this month

$7,127

One line. Not attributed.

CostSlice · by feature

  • clinical-summaryacme-health$4,812
  • copilotharbor-support$978
  • chatlumen-chat$612
  • everyone elseuntagged$725

Your OpenAI API key

Stays yours

Install

One base_url

Starter

Free, no card

Prompt bodies

Never stored

Three rows. Three decisions.

Sample tenants, labeled. These are the same rows you get in a new workspace. Quotes live on the cards.

acme-health · sample

Unprofitable

−101%

Raise the SKU

Plan price $2,400. LLM cost $4,812. Margin −101%. The row is Unprofitable before anyone asks finance.

We thought the big logo accounts were the problem. The sample P&L put acme-health at the top of the list.

VP Product, sample

harbor-support · sample

Unprofitable

−9%

Trim the window

Cost $978 on a $900 plan. A small miss, still Unprofitable. Catch it while it is still 9%.

Nine percent under is still red. Trim the window before this row looks like acme-health.

Staff engineer, sample

lumen-chat · sample

Healthy

81%

Stop giving chat away

Cost $612 on a $3,200 plan. Healthy — sage badge, check, and the word. Same stack, different unit economics.

Chat is healthy here. Stop giving it away on the accounts that are not.

Head of CS, sample

Sample customer P&L

Two customers unprofitable

Sample data
acme-healthsampleUnprofitable
AI cost
$4,812
Plan price
$2,400
Margin
-101%
Requests
18,240
harbor-supportsampleUnprofitable
AI cost
$978
Plan price
$900
Margin
-9%
Requests
6,402
lumen-chatsampleHealthy
AI cost
$612
Plan price
$3,200
Margin
81%
Requests
44,110
northwind-analyticssampleHealthy
AI cost
$441
Plan price
$1,800
Margin
76%
Requests
3,901
pebble-docssampleHealthy
AI cost
$188
Plan price
$600
Margin
69%
Requests
2,104
untaggedsampleYour AI still answersSet price
AI cost
$96
Plan price
Margin
set price
Requests
412

Tenant

acme-health

−101%

Unprofitable · talk pricing

Feature · acme-health

clinical-summary$4,190
chat$622

The leak is the SKU, not the model.

Export · board pack

acme-health,clinical-summary,4190,-101%
harbor-support,copilot,978,-9%
lumen-chat,chat,612,81%

Prompt bodies: never stored

Raise the SKU. Trim the window. Stop giving chat away.

Raise the SKU

When LLM cost is 2× the plan, the row is Unprofitable — badge, icon, and the word. Change the price or cut the feature from the SKU. We report it. We do not cap the tenant.

Trim the window

harbor-support is a small miss. A shorter context window, a cheaper model, or a cache on the hot path. Catch it while the bar is still 9%.

Stop giving chat away

lumen-chat is Healthy on the same stack. The decision is not “turn off AI.” It is stop bundling the expensive line into the cheap plan.

How it works?

Keep your OpenAI API key. Change the base URL.

Ten minutes. One header. CostSlice is a pass-through OpenAI proxy plus tenant P&L, not an AI gateway. No routing, fallbacks, cache, or virtual keys.

Open the 10-minute setup →

OpenAI SDK · this project

api_keysk-••••••••

OpenAI API key. Yours. We never hold it.

base_urlapi.costslice.com/v1
x-cs-keycs_live_••••

01

Point the SDK at us

Set base_url to CostSlice and send x-cs-key. Your OpenAI API key still authenticates the model call.

Request · 412ms

200

gpt-4o-mini

tenant
acme-health
feature
clinical-summary
env
prod
prompt
never stored

02

Tag tenant, feature, env

Pass opaque ids. Forget a tag and the completion still returns. It lands in untagged so you can fix instrumentation, not firefight dropped calls.

Tenant P&L · this month

acme-health

−101%

Unprofitable · talk pricing

03

Read the P&L. Then price.

See which accounts and features eat LLM margin. Raise a SKU, trim a window, or export CSV for a board pack.

The 10-minute setup

api.costslice.com/v1

x-cs-key · x-cs-tenant · x-cs-feature · x-cs-env

from openai import OpenAI
import os

client = OpenAI(
    base_url="https://api.costslice.com/v1",
    api_key=os.environ["OPENAI_API_KEY"],
    default_headers={
        "x-cs-key": os.environ["COSTSLICE_KEY"],
        "x-cs-tenant": tenant_id,       # opaque id, never an email
        "x-cs-feature": "support-copilot",
        "x-cs-env": "prod",
    },
)

resp = client.chat.completions.create(
    model="gpt-5.6-terra",
    messages=[{"role": "user", "content": "Summarize this ticket"}],
)

Never in the prompt. Completions still go through if we are slow.

We store

org, request id, timestamp, provider, model, tenant, feature, env, token counts, cost, latency, status, cost source. Hashed workspace keys. Optional plan prices.

We don’t

Prompts. Completions. Your OpenAI API key (Authorization is forwarded, never logged). Training on customer data — we do not keep bodies to train on.

Ingest is fail-open. Forgotten tags never drop the call. We do not claim SOC 2 or HIPAA. The DPA is public. For a signed copy, email hello@costslice.com.

Request · metadata only

gpt-4o-mini · 412ms · 200

Sample data
tenant
acme-health
feature
clinical-summary
env
prod
tokens
1,204
prompt
never stored
completion
never stored

Journal

Ship notes. Not a content mill.

Starter is free because a month is the unit

Seven days of receipts is enough to see a tenant P&L this month. That’s why Pro keeps 90 days.

Why we don’t store bodies

If we kept prompts we would become a different company. Usage metadata is enough to price a tenant.

Fail-open is a product decision

A meter that can take down chat is not a meter. Untagged traffic still completes.

Starter is free. Most teams run on Pro.

Starter is free without a card. Overage on Pro and Scale is $6 / 100k requests.

Starter

$0

  • 10,000 requests / month
  • 7-day retention
  • 1 seat
  • No overage — hard cap
  • See a customer P&L this month. No credit card needed.
Start free

Pro

Recommended

$79/mo

  • 250,000 requests / month
  • 90-day retention
  • Unlimited seats
  • Overage $6 / 100k
Start Pro

Scale

$199/mo

  • 2,000,000 requests / month
  • 365-day retention
  • Unlimited seats
  • Overage $6 / 100k
  • A year of tenant P&L. Same overage as Pro.
Start Scale

FAQ

Do you block unprofitable tenants?
No. CostSlice spots them. We do not cap or block LLM traffic. Starter has a hard request cap on the plan, not a kill switch on a customer.
Do you store prompts?
No. We never store prompts or completions. Authorization is forwarded to OpenAI and is not logged.
What if I forget a tag?
The completion still returns. We record untagged so you can fix the header. Fail-open ingest.
Is Starter actually free?
Yes. No credit card needed.

See which customers your AI is losing money on.

No credit card needed for Starter.