from app import stripe from collections import defaultdict EXCLUDE_CID = {'cus_2iVlmwz8CpHgOj'} offset = 0 total_monthly_revenue = 0 def empty_tuple(): return (0, 0) plan_revenue = defaultdict(empty_tuple) batch = stripe.Customer.all(count=100, offset=offset) while batch.data: for cust in batch.data: if cust.id not in EXCLUDE_CID and cust.subscription: sub = cust.subscription total_monthly_revenue += sub.plan.amount * sub.quantity subscribers, revenue = plan_revenue[sub.plan.id] plan_revenue[sub.plan.id] = (subscribers + 1, revenue + sub.plan.amount * sub.quantity) offset += len(batch.data) batch = stripe.Customer.all(count=100, offset=offset) def format_money(total_cents): dollars = total_cents / 100 cents = total_cents % 100 return dollars, cents for plan_id, (subs, rev) in plan_revenue.items(): d, c = format_money(rev) print '%s: $%d.%02d(%s)' % (plan_id, d, c, subs) d, c = format_money(total_monthly_revenue) print 'Monthly revenue: $%d.%02d' % (d, c)