A Backup Copy job creates 1 restore point per copy interval. (If per-vm is turned on in the repository setting, this would of course be 1 restore point per VM.)
The Backup Copy job does not literally copy restore points, but more so uses restore point data from the source to create restore points on the destination.
At the beginning of the interval the Backup Copy job determines if new data is available, if so it will use that data from the source to create a restore point on the destination. If no new data is available the backup copy job will watch for new data to be created on the source. If during the copy interval new data is created, it will only be used if there was no new data at the start of the copy interval.
For example if a customer has a backup job that is set to run every hour, and an associated backup copy job is set to interval once a day. The backup job will create 24 restore points, but the backup copy job will only create 1. That one restore point created by the backup copy job will always be point-in-time, so with this configuration granularity is lost on the destination.
Personally I advise that customers who are matching backup jobs to backup copy jobs to set the backup copy interval to start at the same time as the backup job itself. The reason is if in your example of the backup job set to run at 8PM fails to create a restore point for some reason, then the copy job that intervals at midnight will find no new data. It will then end up waiting till the next backup job run at 8PM. Now the backup copy job has waited 20 hours for new data. If we assume the 8PM backup job completes at 10PM, then this now leaves the backup copy job only 2 hours to try and create the restore point on the destination.
More information on Backup Copy can be found here:https://helpcenter.veeam.com/docs/backu ... tml?ver=95https://helpcenter.veeam.com/docs/backu ... tml?ver=95