Вы просто включаете / создаете кеширование, поэтому отчет генерируется несколько раз в день (cronjob / time generation) или путем активации пользователя, а затем разрешаете этому отчету «жить» в течение нескольких часов (или любого другогопараметры:).
По сути, вам нужно создать часть PHP для кэширования.Я бы создал копию отчета, а затем отправил бы ее пользователям и обновлял бы ее в течение дня без их взаимодействия.
ОБНОВЛЕНИЕ
Быстрый пример, который я нашел: http://www.devshed.com/c/a/PHP/Output-Caching-with-PHP/