'Refreshing' SSRS subscriptions (parameter values not valid due to lack of data in the tables)
What you do is to create your subscription to run only once. Then you go to the agent job it created and copy the step's code. This you can then run in a stored procedure after checking if there are data:

if (select * from table where date = '2018/05/18')
exec [ReportServer].dbo.AddEvent
    @EventType='TimedSubscription',
    @EventData='xxx data copied from job xxx'


The AddEvent will then execute the report to execute.