Series B sales intelligence SaaS · B2B AI SaaS
A Series B sales intelligence SaaS stopped hitting its provider spend cap by falling back from Sonnet to Haiku at 90% of budget.
Month-end research bursts were tripping the company-wide provider spend limit and taking the product down for every customer. Per-tenant fallbacks kept the experience intact and the upgrade prompts paid for themselves.
- Revenue
- $163,000
- LLM spend
- $30,400
- Gross margin
- 75.3%
- Incidents > $500
- 0
($163,000 - $30,400 LLM - $9,800 other COGS) / $163,000 = 75.3%
+7.1 points vs baseline
37 teams upgraded after the in-product prompt. No spend-cap outage.
Gross margin
68.2% to 75.3%
Day 30: 72.8%
Monthly LLM spend
$38,200 to $30,400
down $7,800
Runaway incidents > $500
2 to 0
per month, baseline to Day 90
The challenge
Account research agents browse a prospect's site, filings and news, then write a briefing. Sales teams run them in bulk at the end of each month and quarter.
The company had a single monthly spend limit at the provider. Twice in one quarter a few large teams pushed total spend over that limit and research failed for all 420 customers until the limit was raised.
Product leadership wanted limits per customer that degraded quality gracefully instead of failing, and an obvious moment to suggest an upgrade.
What was configured
The policy, as deployed.
- 01
Per-tenant monthly budgets by plan
X-PalmSouq-Tier carries the plan, and each plan gets a monthly token budget sized to its price.
- 02
Fallback at 90%
At 90% of budget, research calls fall back from Claude Sonnet 4.5 to Claude Haiku 4.5. Briefings stay available, with shorter reasoning.
- 03
Upgrade prompt at 100%
At 100% the response carries a PALM SOUQ quota header that the app turns into an in-product upgrade card. 37 teams upgraded in the first 90 days.
tier "growth-plan" {
budget_usd_month = 140
fallback_chain = ["claude-sonnet-4.5", "claude-haiku-4.5"]
fallback_at = 0.90
at_100 = "notify_upgrade" # response header, app shows upgrade card
}- Research call on Claude Sonnet 4.5
- 40k input x $3/M + 3k output x $15/M = $0.165
- Same call on Claude Haiku 4.5
- 40k input x $1/M + 3k output x $5/M = $0.055
- Saving per fallback call
- $0.165 - $0.055 = $0.110
- Fallback calls in the Day 30 month
- 14% of 190,000 calls = 26,600
- Spend avoided in the Day 30 month
- 26,600 x $0.110 = $2,926
List prices from the PALM SOUQ price table. The rest of the Day 30 drop came from capping the three largest teams at their plan budget.
Results, snapshot by snapshot
| Revenue | LLM | GM | |
|---|---|---|---|
| Baseline | $151,000 | $38,200 | 68.2% |
| Day 30 | $153,400 | $31,900 | 72.8% |
| Day 90 | $163,000 | $30,400 | 75.3% |
Other COGS: Baseline $9,800, Day 30 $9,800, Day 90 $9,800. GM = (revenue - LLM - other COGS) / revenue.
“Falling back from Sonnet to Haiku at 90% of budget kept the experience intact without blowing our monthly API cap.”
What the team would tell you.
- A per-tenant limit protects everyone else from one customer's burst.
- Users noticed the fallback less than the product team expected; complaints were limited to two teams.
- The upgrade card worked because it appeared at the moment of need, with the team's own usage shown.
More customer stories
Don't wait for a surprise $10,000 OpenAI invoice.
Route your agent traffic through PALM SOUQ in 2 minutes. Change one base URL, pass a tenant header, and every token is attributed and governed.
14-day free production trial · 100k requests included · no card required