◆ PROFITABILITY GUARDRAILS FOR AI SAAS
Know which AI customers earn their keep.
Match each customer’s AI costs to their subscription revenue. Find the losses, test a policy in dry-run, then decide what to protect.
Start with usage alone. Add Stripe, RevenueCat, or declared plan prices when ready.
○ No credit card required · no prompts sent to MarginFuse · free until you activate protection
SUPPORT COPILOT · THIS MONTH
○ DRY-RUN
DRY-RUN FINDING
4 of 66 customers cost more in AI than they pay. Nova Labs is the clearest: $29.00 in, $35.67 EST of AI out.
| CUSTOMER | REVENUE | AI COST | MARGIN |
|---|---|---|---|
| Nova Labs | $29.00 | $35.67 | ▼ −23.0% |
| Pixel North | $99.00 | $62.20 | ◆ 37.2% |
| Acme Studio | $99.00 | $18.40 | ● 81.4% |
○ Dry-run: 6 Nova Labs requests crossed its $25.00 budget and would have run on gpt-4.1-mini instead - $1.95 EST avoided, nothing blocked.
ILLUSTRATIVE SEEDED MONTH · FICTIONAL COMPANY · USD · ONE MONTH - NOT YOUR DATA
- Revenue
- Stripe · RevenueCat · Declared plans
- AI providers
- OpenAI · Anthropic · OpenRouter
Don’t take our word for it. We’ll show you a whole company. Open the live demo: Support Copilot, a fictional AI support product on three plans, with 66 customers. The examples here show the original seeded month; the live workspace rolls forward, so period totals may differ. Inspect each simulated decision inside.
Explore the demo →BEFORE YOU CONNECT ANYTHING
How much AI can your subscription afford?
Try your own numbers. See AI margin, account for other variable costs, and understand what a protection budget really means.
THE PROBLEM
You know the total bill. You don’t know who caused it.
Your AI providers bill you one number. Your customer revenue is another. Between them sits the only question that decides whether you’re running a business: which customers, plans, and features make money, and which quietly don’t.
$29.00 − $35.67 EST
One heavy customer
Nova Labs pays a flat subscription and quietly costs more than it brings in - every single month.
$612.40 EST/day
One expensive feature
24 image-generation requests on a single day, on a Pro plan billing $99.00 a month. Nothing was there to stop them.
◆ 13.8% EST
One mispriced plan
all the gross margin a $29.00 plan has left once a customer reaches $25.00 of AI cost. Averages hide how many are already there.
ILLUSTRATIVE SEEDED MONTH · FICTIONAL COMPANY · USD · ONE MONTH
WHAT YOU GET
See margin per customer, not per invoice.
Gross margin by customer and by plan, computed from your own traffic - and the cost of every feature, so you can see which ones are eroding it. Averages hide your worst customers. This doesn’t.
Catch the leak before it compounds.
A customer who costs $6.67 more than they pay isn’t a crisis in week one. In month six, at scale, it’s your runway. Alerts fire when margin crosses your target, not after the invoice lands.
Test policies without changing production.
Policies run in dry-run first: you watch what would have happened, every decision and every dollar, before anything is allowed to act. When you activate, it’s reversible. If MarginFuse is ever unreachable, your requests proceed unchanged.
HOW IT WORKS
See the leak free. Fix it when you’re ready.
01
Add revenue when ready
Connect Stripe read-only, or RevenueCat if you sell through the App Store and Google Play, or just tell MarginFuse what your plans charge. Either way you get margin per customer; a stated price is labeled as one, and store revenue is counted after the store’s cut.
02
Report AI usage
One call after each AI request. That is the whole monitoring integration:
mf.track({ customerId, feature, model, usage })
03
Watch a week of truth
Profit by customer and plan, cost by feature, plus what every policy would have done. Production untouched.
○ DRY-RUN
04
Activate protection
Acting on a request means deciding before it runs, so swap track for the wrapper that asks first, then reports the real cost:
await mf.guard(params, run)
Alert, downgrade, require a top-up, or block - simulated first, reversible always, fail-open by default.
● PROTECTION ON
NOT ANOTHER OBSERVABILITY TOOL
- LLM observability answers: which prompts are slow, which traces failed.
- Cloud FinOps answers: what did infrastructure cost.
- Billing answers: did we collect the invoice.
- MarginFuse answers: which customers, plans and features make or lose money - and what will stop the losses.
PRIVACY BY ARCHITECTURE
MarginFuse never sees prompts or responses - identifiers, usage metadata, costs, and revenue only.
- ● We receive: customer ID, feature, provider, model, tokens/cost and optional plan metadata. identify() can also send a customer name.
- ■ We never receive: prompts, responses, or your customers’ content. There’s no toggle to send them - the SDK has no field for it.
Decisions are fast enough for request time. If MarginFuse is ever unreachable, your requests proceed unchanged - fail-open by default.
$626.40 EST
of AI cost on a $99.00 plan - a gross margin of −532.7%, found in dry-run before anything was activated.
ZEPHYR WORKS · ILLUSTRATIVE SEEDED MONTH · USD · ONE MONTH
No marketing math. Every number MarginFuse shows is labeled to show its basis: observed, estimated, projected, realized, allocated, declared, or partial. A savings report is built by replaying your own recorded traffic. Inspect every decision behind it before paying a cent.
QUESTIONS
Asked before signing up.
- What does dry-run mean?
- Dry-run is MarginFuse's observe-only mode. It computes gross margin per customer and per plan, breaks cost down per feature, and simulates what every policy would have done - but changes nothing in production. No request is blocked or altered until you explicitly activate protection.
- Do I need a credit card to start?
- No. Dry-run is free and never asks for a card. You pay - from $29/mo - only when you activate protection.
- What happens when protection acts on a request?
- Your app receives the decision - downgrade to a cheaper model, require a top-up, or block - and stays in control of how to present it to the user. Every decision is logged and inspectable, every policy is reversible, and you can watch a policy run simulated in dry-run before it goes live.
- How much code does this take?
- Monitoring is one call after each AI request: mf.track({ customerId, feature, provider, model, usage }). Protection needs a decision before the request runs, so you swap that for mf.guard(params, run) - one wrapper that asks MarginFuse, runs your provider call with the resolved model, reports the real cost, and tells MarginFuse what your app actually did. You never have to wire those four steps yourself, and you only move to guard when you're ready to act.
- What if MarginFuse goes down?
- Your requests proceed unchanged. The SDK fails open by default: if a decision doesn't come back in time, your app continues as if MarginFuse wasn't there.
- Can MarginFuse see my prompts or my customers' content?
- No - by architecture, not by policy. The SDK has no field for prompts or responses. We receive identifiers and usage metadata only: customer ID, feature, provider, model, tokens, cost and optional plan metadata. identify() can also send a customer name.
- How long until I see results?
- Cost per customer appears with your first event: add one track call after each AI request and every customer id you report becomes a customer here. Add revenue when you want margin next to that cost: Stripe for web billing, RevenueCat for App Store and Google Play proceeds, or your own declared plan prices. Declared revenue is unverified, not proof of payment. After about a week of traffic you get your first dry-run savings report, built by replaying your own recorded requests. Protection is a second, later step - acting on a request means asking before it runs, which the SDK's guard wrapper does in one call when you're ready.
Stop users from burning your margin.
Start with AI cost. Add revenue to understand customer margin. Free in dry-run, no credit card. $29/mo when you’re ready to protect.