Right. So on August 1st, this code runs and only looks at the last 30 days which is either July 3rd through August 1st or July 2nd through July 31st. So it skips some data there. When it runs on March 1st, February has 28 days, so it'll pick up some days in January which were already accounted for in the February 1st run.

I don't know if that makes a big deal or not, but "30 days" is definitely a mismatch for a cron job that runs on the first of the month.