I'm not sure how it works , but I guess as soon as the promotion is set , as soon as the requirements are met the promotion does its job , but what about the ones who already completed the requirements? Example:
A set a promotion for 5 minimum posts to get it. user gets 5 posts and gets the promotion , but does an old member of 100 posts gets it right away?
Existing members who already meet the criteria will be awarded the promotion. It isn't instant. Promotions are handled by a cron that runs hourly. And the cron only processes recently active users (active in the last 3 days). So existing users will be awarded the promotion within an hour of its creation, assuming they are active. Otherwise they won't receive the promotion until up to an hour after they login.