Best practices for automated payments?

Yep! We’ve started graphing daily declined orders alongside declined shipping charges - we operate on a weekly shipping schedule rather than daily so there’s a cyclical nature to shipping charges -
zooming in on an arbitrary date with shipping charges being ran:
Apr 19 (timezone conversion done so dates are mislabled, but data is from 4/19), declines happen around 6:00PM PDT:

Specific example on that date:
charge_id RoQwOVLxjwaDEyBCt8EhTMKZUFbZY for shipping charge rejected with GENERIC_DECLINE, associated with a user that successfully had orders throughout Apr - one successful charge id from 4/15 is 9IfHnJLVsl28GW3VZF3oWZBWbuRZY. Eventually there was a successful shipping charge for that customer a few days later JI6W1GpQjDBBfire8EIgtNKXm56YY when we ran our shipping charge retry job