Shouldn't we be able to use aggregate queries here to grab the numbers for the calculation? Should have less load on the database. https://docs.djangoproject.com/en/1.3/ref/models/querysets/#aggregation-functions