Gross margin by customer
- Example customer A81.8%
- Example customer B-41.4%
- Example customer C47.5%
- Example customer D24.1%
Connect Stripe, send your AI usage events, and PrinVox shows which customers, plans and features make money — and which quietly lose it.
Try free for 14 days — no card required
Revenue from Stripe, minus AI cost from your usage events, per customer. Negative rows are visible at a glance.
Demo data — not real customers| Customer | Plan | Revenue | AI cost | Gross profit | Margin | Status |
|---|---|---|---|---|---|---|
| Example customer A | Pro plan | $99 | $18 | $81 | 81.8% | Healthy |
| Example customer B | Starter plan | $29 | $41 | -$12 | -41.4% | Unprofitable |
| Example customer C | Pro plan | $99 | $52 | $47 | 47.5% | Healthy |
| Example customer D | Starter plan | $29 | $22 | $7 | 24.1% | Low margin |
Every view comes from the same deterministic engine, so the totals always add up.
Demo dataPlan-level margin, so pricing problems show up before they hurt.
| Plan | Revenue | Margin |
|---|---|---|
| Pro plan | $198 | 64.6% |
| Starter plan | $58 | -8.6% |
Below zero margin: Starter plan
Cost only — revenue cannot be attributed per feature, so we do not pretend to.
Cost that cannot be tied to a customer stays visible as its own line instead of disappearing.
Demo data45.7%of revenue is left after AI cost
Unattributed: $6 · Last 30 days · demo
Account-level alerts for the selected period.
AI cost exceeds revenue for a customer in the selected window.
Gross margin fell compared with the previous period.
AI cost rose sharply against its recent baseline.
A large share of AI cost is not tied to any customer.
Some usage has unknown cost or an unsupported currency, so the margin is not final.
Four steps, all computed from your own connected data.
Revenue read from Stripe. Usage events sent from your backend.
Each usage event is tied to a customer and feature. Anything that cannot be tied is kept visible as unattributed.
Deterministic calculation: gross profit is revenue minus AI cost, margin is profit divided by revenue.
Margin per customer and plan, AI cost per feature, and alerts when margin turns risky.
PrinVox runs a remote MCP server. Connect an MCP-compatible agent with scoped OAuth access, ask about margins in plain language, and decide exactly what it may do.
Early access› Which customers have a negative margin?
list_negative_margin_customers
Example customer B-41.4%
AI cost exceeds revenue for this customer in the selected window.
You approve each scope when connecting. Write scopes are off by default.
13 read-only tools for overview, customers, plans, features, alerts and reports.
Acknowledge or resolve alerts and manage ingestion keys — only with the matching scope. Key actions need explicit confirmation.
Disconnect an agent in one click. Access ends immediately.
Every tool call is recorded: started, succeeded, replayed or denied.
An agent only ever sees the account that granted access.
Honest about the architecture: usage is sent by you, not pulled from provider accounts.
Connect via Stripe Connect to read customer revenue. PrinVox initiates no payments, payouts, transfers or refunds. PrinVox requests Stripe’s standard Connect permission (scope read_write; Stripe offers a read-only scope only to Stripe Apps).
Send events with model and token counts from your backend. No OpenAI account sync.
Send events with model and token counts from your backend. No Anthropic account sync.
Send events with model and token counts from your backend. No Google account sync.
Facts about how the product works.
Each account only ever sees its own data.
Provider credentials are encrypted before storage.
Webhook signatures are verified and processed idempotently.
PrinVox only reads customer revenue from Stripe and initiates no money movements.
The same inputs always give the same margin.
Every cost can be traced to the events behind it.
Every plan includes Stripe revenue, AI usage ingestion, margin views and alerts.
$29 per month
For solo founders getting their first real margin number.
$79 per month
For small teams tracking margin by plan and customer.
$199 per month
For growing AI SaaS teams that need the full picture.
Try free for 14 days — no card required. The trial only starts when you start it in the app. It includes the Basic plan’s features (up to 25 tracked customers), at most 5,000 usage events in total and 60 per minute. It ends by itself — no charge and no automatic conversion into a subscription.
Higher plans raise the customer limit and history.
All plans are billed monthly through Stripe. You can cancel anytime. Per § 19 UStG (German small-business rule), no VAT is shown separately.
How the numbers are produced, and what happens when data is incomplete.
Through a Stripe Connect link that PrinVox uses only to read data. PrinVox requests Stripe’s standard Connect permission (scope read_write; Stripe offers a read-only scope only to Stripe Apps), yet its code only performs read requests and never initiates payments, payouts, transfers or refunds. Revenue is recognised per customer from Stripe invoices and payments, including refunds.
From the usage events you send (model, input and output tokens), priced with pinned model pricing. Cost is never guessed: if pricing is unknown the cost is flagged rather than shown as zero.
Each event carries a customer reference and a feature key. PrinVox ties the cost to that customer and feature.
AI cost with no usable customer reference. It is shown separately so it never silently disappears or is spread across customers.
The affected number is marked as partial or needing review instead of being presented as final. A gap is never turned into a clean zero.
If an event WAS sent to PrinVox but its model price is unknown, PrinVox has the event and marks the affected cost and margin as incomplete instead of showing a clean number. If an event was NEVER sent, PrinVox cannot know it happened, so it cannot be flagged and is missing from the results. Complete, reliable ingestion from your backend is therefore your side of the measurement.
No. You send usage events from your own backend; there is no sync with provider accounts.
Connect Stripe, send your first usage event, and see which customers pay for themselves.
Connect your AI SaaSTry free for 14 days — no card required