meta_query compare not doing what I want it to do

Your code looks valid for me. The only thing you can try is ‘NUMERIC’ instead of ‘numeric’ and to cast $current to int as date() will return a string.

$current = (int)date('Ymd');

To debug this further you can place this directly under your code:

global $wpdb;
var_dump( $wpdb->last_query );

You’ll then have the complete query and can paste it into a sql-shell (phpMyAdmin or whatever you prefer) to see what’s wrong with it.

If this doesn’t solve your question feel free to edit your question with the complete SQL query and I’ll have a look at it.