Grandfathered customers
A permanent discount may be part of a real promise. Mark it as reviewed before changing anything.
Stripe no-expiry coupon audit
A coupon with no end date is not always wrong. It becomes a problem when a launch promo, trial save, or manual make-good keeps applying long after the reason is gone.
Read-only Stripe Connect or Stripe JSON export. No write access, no coupon edits, and no paid decision before the free teaser.
Discount still applies to paid plans
May outlive the original save offer
Needs a human decision
Manual check
Coupon drift usually starts as a reasonable exception. The audit question is whether the discount still matches the customer, plan, invoice, and promise that created it.
Look for forever discounts, blank redemption windows, or coupons that no longer match their campaign name.
Check whether the discount sits on the customer, subscription, invoice, or promotion path.
Review whether discounted accounts are still on paid plans where the promo was meant to end.
Confirm the discount is still reducing real invoices instead of only sitting on inactive records.
Check whether a plan upgrade carried an old coupon onto a higher-priced subscription.
Separate intentional lifetime discounts from cleanup work before anyone touches billing.
Coupon drift
LeakCheck does not decide your pricing policy. It gives you the account-wide list so you can make the decision with evidence instead of memory.
A permanent discount may be part of a real promise. Mark it as reviewed before changing anything.
Annual, partner, or make-good discounts may need to stay in place until a renewal conversation.
Old launch codes can keep reducing invoices long after the campaign finished.
A churn-save discount can become permanent if it was never given an end date.
Discounts attached to a customer can keep applying as subscriptions change.
Repeated customers can split context, so one record looks discounted without the reason nearby.

How LeakCheck helps
LeakCheck reads Stripe billing data, ranks no-expiry coupon findings beside the other leak types, and gives you a report to review before making any billing change.
Free activation path
Open the sample report first. Then run your own free check by uploading a Stripe export or connecting read-only. The free teaser shows the headline total and leak count before any paid unlock.
Inspect synthetic findings and the report format.
Upload a Stripe export or connect read-only.
Pricing lives on the main page: $49 full report, optional $19/mo monitoring.
FAQ
No. Some discounts are intentional. The useful work is finding which ones still apply, why they exist, and whether they should be reviewed.
No. LeakCheck is read-only through Stripe Connect or an export upload. It reports findings, then you decide what to do in Stripe.
No. It is a diagnostic report. It helps you find billing leaks before you buy or configure recovery workflows.
For this check, Stripe objects such as coupons, discounts, customers, subscriptions, invoices, prices, and products are useful.
LeakCheck also checks failed charges, stale trials, duplicate customers, past-due subscriptions, and mismatched invoices.
Start with the sample report, then run a free read-only audit with a Stripe export or Connect.
Start with the sample report Run your free check