Does the list of subs in a channel include expired subscriptions?

If you dont want to poll the API every minute, perhaps don’t check their presence in chat that often either. That every user needs to say something every minute (not counting the time out for being inactive in chat) to be rewarded doesn’t seem like a good idea to me. Maybe you could reward users for being active at least once within five minute intervals and poll the API every interval?