Hey IH! I run Underpriced AI, an AI-powered tool that helps resellers identify and value items. Think "Shazam for thrift store finds." This week was packed with changes, so I wanted to share what I learned.
The Numbers (Transparency FTW)
MRR: Still early stage, but growing
Users: Mix of trial users and paid subscribers across Pro ($9/mo), Pro Plus ($19/mo), and Business ($49/mo) tiers
Tech Stack: Next.js, Prisma, PostgreSQL, Claude AI (Opus 4 for analysis)
What I Shipped This Week
Before:
10 credits for $2 ($0.20/scan)
25 credits for $5 ($0.20/scan)
50 credits for $10 ($0.20/scan)
Meanwhile, my Pro plan was $9/mo for 30 scans ($0.30/scan). Why would anyone subscribe?
After:
5 scans for $3 ($0.60/scan)
15 scans for $6 ($0.40/scan)
30 scans for $10 ($0.33/scan)
Now subscriptions are clearly the better value for regular users, while pay-as-you-go works for occasional users who don't mind paying a premium for flexibility.
Lesson: Always do the math on your pricing tiers. I was so focused on making credits "feel affordable" that I undermined my own subscription revenue.
Changed everything to "Scans":
"5 Credits" → "5 Scans"
"Buy Credits" → "Buy Scans"
"Credits available" → "Extra Scans available"
Small change, but it makes the value proposition crystal clear: you're buying scans, period.
Solution: 2 free re-scans per item, then it costs 1 scan credit.
Added this to the pricing page as a feature: "2 free re-scans per item" - turns a limitation into a selling point.
Tech details:
Manifest V3 (required for Chrome now)
Context menu integration
Injects overlay to show results on-page
Uses existing auth cookies
The tricky part was avoiding "broad host permissions" which triggers extended Chrome Web Store review. Solution: use activeTab + scripting permissions to inject only when user explicitly triggers a scan.
Currently in Chrome Web Store review.
Why? Logged-in users don't need marketing pages cluttering their nav. They need to scan items.
MRR by plan tier
Trial user engagement (who's close to their limit?)
Re-scan costs (who's burning through re-scans?)
Credit purchase history
This is just for me, but it's been invaluable for understanding user behavior.
What's Next
Mobile app improvements (iOS app is live, Android coming)
Affiliate/referral program
Questions for IH
How do you handle "power users" who cost more to serve? My re-scan limit is one approach, curious about others.
Browser extension or mobile app first? I did mobile first, but the extension might have been easier for acquisition.
Would love to hear your thoughts. Happy to answer any questions about the tech stack, pricing decisions, or AI costs.
Building in public at @underpricedai
The credits vs scans naming change is a good example of making the user-facing unit match the thing users actually value. For Tokens Forge we think about the same split on AI token products: the customer should see a simple balance or action unit, but internally the ledger still has to preserve model route, upstream model, retries, fallback, latency, and the balance bucket that paid for the run. That is especially important for re-scans or re-runs, because the same visible action can cost very different amounts depending on context size and model path.