1
0 Comments

$211 MRR — A customer complaint exposed that I was losing money on every scan

Hey IH! Week 3 update on Underpriced AI (snap a photo -> get instant resale pricing).

The numbers:

  • MRR: $211 (+19% from last week)
  • Active subscribers: 17
  • New customers this week: 8
  • Scans processed: 213
  • Monthly API spend: ~$110

The big discovery this week:

A customer emailed saying she couldn't buy more scans. Dug into the logs and found a trailing \n in our Stripe price ID environment variable. Every credit purchase had been broken for weeks. Silent failure — no one could buy scan packs.

But here's where it gets interesting. While auditing the billing, I checked our actual Claude API costs vs what our code was tracking:

Tracked cost per scan: $0.046
Actual cost per scan: ~$0.45

10x off. The culprit: Claude's web search feature. Each scan does 2-3 web searches to verify pricing. Each search result injects ~15K tokens of web content back into the conversation. Our cost tracker only counted input_tokens from the API response — which doesn't include cached tokens or web search result tokens.

The margin problem:

  • Pro plan: $9/mo for 45 scans
  • Cost if maxed: 45 x $0.45 = $20.25
  • That's a -$11 loss per heavy user

Most users don't max out (avg ~12 scans/mo = $5.40 cost vs $9-19 revenue). But any heavy user is underwater.

What I did:

  1. Reduced web searches from 3 to 2 per scan (~$18-20/mo savings)
  2. Fixed cost tracking to include cache_creation and cache_read tokens
  3. Now I can actually see real per-scan costs in the admin dashboard

Other wins this week:

  • Set up Stripe Customer Portal so users can self-serve downgrade (was only cancel before)
  • Built automated "try our cheaper plan" email that fires when Pro Plus/Business users cancel
  • Added back-swipe protection on mobile (user kept losing scan results)
  • Added "Recent Scans" section to dashboard (users confused about scans vs inventory)

Lesson: Your cost tracking is probably wrong. Don't trust the token counts from your AI provider's API response — check your actual billing dashboard and work backwards.

What's your experience with AI API cost surprises?

on March 19, 2026
Trending on Indie Hackers
I shipped a productivity SaaS in 30 days as a solo dev — here's what AI actually changed (and what it didn't) User Avatar 218 comments Never hire an SEO Agency for your Saas Startup User Avatar 103 comments A simple way to keep AI automations from making bad decisions User Avatar 68 comments Are indie makers actually bad customers? User Avatar 37 comments We automated our business vetting with OpenClaw User Avatar 36 comments I sent 10 cold DMs about failed Stripe payments. Here's what actually happened. User Avatar 33 comments