I love your project. As far as reports go, you could gather historical data in the background (or on initial user load) and store them by month/year for that actual zone - No need to run through all that data more than once. If a new zone is added, of course, you can scan through all the old...