Create Stripe customer cohorts for a useful business overview.
If you're interested in getting a cohort based overview of your Stripe customers, then this library might be of help.
It currently supports the following stats (by cohort):
- Total number of customers
- Monthly recurring revenue
- Number of subscriptions
- Subscriptions by plan
$ npm install stripe-cohort
Create a new Stripe cohort (by the customer's created
date):
cohort(new Date('1/1/2014'), new Date('2/1/2014'), function (err, customers) {
console.log(customers.count() + ' created in January!');
});
And the returned customers
object lets you dive deeper into the cohort.
You can query the total amount of customers returned:
customers.count();
or filter further inside the cohort by the customers' created
date:
customers.count(new Date('1/15/2014'), new Date('1/24/2014'));
customers.list()
[
{
id: 'cus_2983jd92d2d',
name: 'Patrick Collison',
..
},
]
or filter further by the customers' created
date:
customers.list(new Date('1/15/2014'), new Date('1/24/2014'));
or get all the delinquent
customers:
customers.delinquent().count();
You can learn about your active subscriptions too:
customers.subscriptions().count();
Or the ones created between the date provided:
customers.subscriptions(new Date('1/15/2014'), new Date('1/24/2014')).count();
Or just get the list of Stripe subscription objects:
var objects = customers.subscriptions().list();
You can get the monthly recurring revenue from the active subscriptions on the customers:
customers.subscriptions().active().mrr();
And for the trialing accounts:
customers.subscriptions().trialing().mrr();
And for any status really:
customers.subscriptions().status('unpaid').mrr();
And you can query the monthly recurring revenue by subscription start
within a cohort:
customers.subscriptions().active().mrr(new Date('1/15/2014'), new Date('1/16/2014'));
Remember that the montly recurring revenue does not equal charges. For example, if a customer upgrades from a $29 plan to a $79 plan today, they will pro-rated for the rest of their billing period. That means you did not make the $79 yet, but you'll make the difference next month. For hard cash, use stripe-charges.
It's also interesting to know what plans the subscriptions are being set at. You can select the subscriptions that fall under that plan:
var mrr = customers.subscriptions().active().plan('startup').mrr();
console.log('We made $' + mrr + ' off the startup plan!');
MIT