Gmail algorithm doesn't depend entirely on those factors you mention, it's a message per message basis, the problem is that people are marking you as spam.
You have to check your emails and detect what's triggering the spam filter inside the content, give it some time to send the next one, and clean your list urgently, even confirming your users if they want to be in your list.