The site report auto send functionality built into the Pro version of the plugin uses WordPress’ scheduling functionality called WP Cron. While it is a valuable piece of functionality, it often does not operate the way that people think it should.
WP Cron by itself uses a “simple” version of scheduling that cannot check for an action by itself, but rather relies on the traffic visiting the website to “trigger” actions at the right time. Often this means that an action that was scheduled to happen at 7:00 am does not get triggered until 7:08 am when someone visits the website.
If you have a website that does not get a lot of web traffic, it could be hours, or even days later!
This problem can get even trickier when a caching plugin or host-based request caching is added to speed up a website. Often this means that a page is cached for hours at a time and no requests come in to WordPress until it is time to refresh that page cache.
This applies to sending automated reports with WP Client Reports. You may schedule the report to be sent at 1am on a Sunday morning, but if no one visits the site overnight, then it won’t be sent until then. For some clients this may be just fine, for others, they may be concerned with the irregularity of the schedule.
The best way to fix this is to implement a real server “CRON” job that helps WordPress to check for tasks every minute. You can read more about this in several helpful articles:
WordPress Plugin Handbook: WP Cron
Smashing Magazine: Schedule Events Using WP Cron
Most web hosts will either give you instructions on how to set up a CRON job yourself, or will help you implement it by talking to them through a support channel. Try searching on google for the name of your web host and “wp cron” and you are likely to find a helpful article.
If that is not an option, there are several web services available that will ping your server’s wp-cron.php file every few minutes for you. Search on google for something like “crontab web service” and you are likely to pull some up.