ProdVerdict
Recruiting volunteersPublic studyRedacted

The 5 SaaS revenue leak study

I'm recruiting 5 indie SaaS founders on Stripe (or Paddle) + Postgres for a public, fully redacted study. You run ProdVerdict on your setup in a ~10-minute Zoom call. I publish aggregate counts only. No customer IDs, emails, or subscription IDs.

Slots open: 5/5. The findings table fills in as runs complete. Volunteer your setup or read why billing drift is real.

Background

Why we're running this

Webhooks are necessary. They are not sufficient. Stripe documents out-of-order delivery and multi-day retries. Practitioners add nightly reconciliation anyway. This study measures how often indie setups actually drift.

Patterns

Common drift patterns (industry)

These show up in billing writeups and support threads. They are not study results yet. After 5 concierge runs we'll count how many setups had each pattern.

Findings

0/5 complete

Aggregate table (in progress)

Each row is one volunteer SaaS. “Leaks” = paying customers locked out. “Wrongful” = cancelled customers still accessing. “Drift” = plan mismatch between Stripe and the DB.

SaaSMRRStackLeaksWrongfulDriftEst. $/mo leak
SaaS A$5k–10kNext.js + Stripe + Supabase
SaaS B$10k–50kRails + Stripe + RDS
SaaS C$1k–5kNext.js + Stripe + Neon
SaaS D$50k+Remix + Stripe + Planetscale
SaaS E$1k–5kNext.js + Paddle + Supabase
Total

Numbers populate as concierge runs complete. Last updated: pending first run.

Methodology

How the runs work

  1. Founder creates a restricted Stripe key (Customers: Read, Subscriptions: Read).
  2. Founder creates a read-only Postgres role on the users table.
  3. Founder runs npx prodverdict check access in a Zoom share-screen. Founder keeps all secrets; I only see the redacted findings.
  4. I record aggregate counts plus 1–2 anonymized representative findings.
  5. I redact all customer IDs, emails, subscription IDs. Only aggregate counts go public.

Volunteer

Want to be one of the 5?

Free concierge run. ~10 minutes on Zoom. You keep all the data. I get a redacted finding for the study. If we find drift, you get a fix list. If we don't, you get a “no drift found” line for your README.

Prefer to run it yourself? 5-minute quickstart — no signup, no call, no pitch.