I don't think this is really achievable currently. So just brainstorming and welcoming ideas! Lets say...
All users start in community via usergroup 1 (free)
"Subscription A" is purchased and user is then moved to usergroup 2 (which has more features). THIS IS NORMAL FUNCTIONAILITY
How can you award "Subscription A" to user based on activity levels? You can set up usergroup promotions to move to usergroup 2 but not award them "Subscription A" for free.
Possible solution #1: T