Skip to content

Create Stripe customer cohorts for a useful business overview

Notifications You must be signed in to change notification settings

richardonrails/stripe-cohort

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

stripe-cohort

Create Stripe customer cohorts for a useful business overview.

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

Installation

$ npm install stripe-cohort

Example

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.

Number of Customers

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'));

Customer List

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();

Subscriptions

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();

Monthly Recurring Revenue

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.

Plans

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!');

License

MIT

About

Create Stripe customer cohorts for a useful business overview

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 99.2%
  • Makefile 0.8%