I will look into this. It does make sense. Prorate remainder left from today, then full charge the new term and bump the renew date from today + term (ie today + 1 year). I think this would be less confusing.
Thank you for providing this plugin. Very useful information.
A couple of things I noticed and wondered about:
1) Top Revenue by Gateway - Doesn't seem to include non merchant gateways (offline payment, etc)
2) Top clients by services - The active tab includes cancelled services as well
Have you tried the latest centovacast module from https://github.com/blesta/module-centovacast ? It was updated 28 days ago, so this is a newer version than is included with the current Blesta release.
I believe you spoke with @GosuHost about this. The password is updated by TCAdmin, I believe, in part, because otherwise the module would be unable to send the customer their TCAdmin password, as it would be unknown. If you have anything to add, or any other questions, let us know.
The two applications don't share identical hashing algorithms or secret keys so they wouldn't generate the same hashed passwords, nor should they. This is more of a use case solvable using a single sign-on approach instead, i.e., create the user in Blesta with a random password and when they log in to Laravel have them initialize a session with their account in Blesta using the Shared Login plugin.