Back to articles
I built a self-hosted Stripe anomaly detector after missing a billing bug for 3 days

I built a self-hosted Stripe anomaly detector after missing a billing bug for 3 days

via Dev.to PythonRay

Three days. That's how long a billing anomaly can go unnoticed if you're only watching Stripe's dashboard and waiting for customer complaints. I built BillingWatch after exactly that happened. A webhook retry storm was silently inflating my event counts and I missed it until a user asked why they'd been charged twice. GitHub: github.com/rmbell09-lang/billingwatch The problem with "just watch Stripe" Stripe's dashboard shows you events. It doesn't tell you when your failed charge rate just doubled in 6 hours, or when 1,000 payment methods are about to expire in the next 30 days, or when your subscription churn spiked 3x compared to last week's baseline. You find out when a customer emails you. What BillingWatch detects Failed charge spikes — failed charges as a % of total, rolling window comparison Subscription churn spikes — cancellations vs. 7-day baseline Webhook retry storms — same event firing 5x+ in 24h window Payment method expiry clusters — cards expiring soon, grouped by cohort

Continue reading on Dev.to Python

Opens in a new tab

Read Full Article
6 views

Related Articles