Tactical examples below, but the high level takeaway is communication prevents chargebacks. Say what you're going to charge, remind people when a charge is due, and ensure people can self-manage their subscriptions (or make it easier to request a refund than it is to dispute a charge with their credit card company). You seem to have a good handle on the post-chargeback process and are using the right evidence submission processes to at least counter some of them. You could consider adding an explicit agreement to your T&Cs to bolster any claims: stripe.com/docs/payments/checkout/customization#collect-a-terms-of-service-agreement.
---
1. On "accidental" chargebacks: Use a service that lets your customers self-manage their subscriptions. Unfortunately, particularly in the US, it seems some customers opt to dispute payments as it's easier than talking to a business. (https://stripe.com/docs/customer-management)
2. On forgetting: Configure emails to send renewal reminders and receipts if you're using subscription payments and include a link to a hosted page that lets your customers unsubscribe or change their plan if applicable. Especially if you have subscriptions over time frames longer than ~a month.
3. On fraudulent charges: You can dial up your fraud risk tolerance on dashboard.stripe.com/settings/radar/risk-controls.
[Bonus]
4. SEO: Is it easy for Prepfully customers to find out how to get a refund by searching for it? I'd recommend having a dedicated FAQ page with direct links so it takes as few steps as possible to get there. (https://www.google.com/search?q=prepfully+refund)
5. Is your statement descriptor up to date? Your customers might not recognize charges if the statement descriptor is vague. I've seen folks get good results by displaying a hosted refund page (like "prepfully.com/r") that explains the charge, what a customer has signed up for, and how to manage their subscription. Tricky to manage as statement descriptors are short but something to explore.