If a user has no IPN_signup_vars and cancels his subscription via the paypal button (not link) then the date s2member enters for EOT is 1 day into the future, instead of the end of the paid term. So I’m pretty sure this does not happen if it’s just the link and the user goes into his paypal profile to cancel. At least I haven’t had any complaints in this regard yet.
I don’t think this happens if the user cancels via following the link to paypal. In that case the date I think is correct.
I think this only applies to paypal - not sure about stripe. I don’t know what happens once the subscription actually fully runs out as the fallback option is less than one year old and with Stripe there is no date entered at all on cancellation with fallback ipn vars.
Actually the best behaviour would be to delete the subscription ID on cancellation and put in the EOT - otherwise it’s also impossible to show a field to the user so he can see how long his account is still active.
I think there really needs to be some check up of what actually happens concerning EOT when users without signup_vars cancel and harmonise it over all ways of cancellation. Right now it’s clearly somewhat broken.

