I think I would add a column to the user table that would be used to record the last level for which a voucher was awarded, and initialize it with 200 * FLOOR(posts / 200). Then you could use a scheduled task to check once a day to see if their posts is more than 200 greater than the last level column, and if it is, reset the last level column and add that user to the report. You can use a plugin on hook cron_script_cleanup_daily to add to the existing daily cleanup task (or if you'd prefer you could put a new script in includes/cron and add a new scheduled task).
|