dashboards-stripe-subscriptions

Stripe subscriptions plugin for segmentio/dashboards

dashboards-stripe-subscriptions

A Stripe subscriptions plugin for segmentio/dashboards.

Use this plugin to visualize Stripe subscription and MRR changes over time.

$ npm install dashboards-stripe-subscriptions
var Dashboards = require('dashboards');
var subscriptions = require('dashboards-stripe-subscriptions');
 
new Dashboards()
  .use(subscriptions('stripe-key'))
  .run();

If you provide the Stripe plan name to plan id mapping, then the module can get you plan level statistics.

var plans = {
  project: 'project-id',
  startup: 'startup-id',
  growth: 'growth-id'
};
 
var dashboards = new Dashboards()
  .use(subscriptions('stripe-key', { plans: plans }))
  .run();

You can further filter customers using stripe-cohorts filters:

new Dashboards()
  .use(subscriptions('stripe-key', { filter: filter }))
  .run();
 
function filter (customer) {
  return customer.id !== 'cus_8239d2jd9j'; // filter enterprise customer X 
}

The metrics exposed by this plugin are divided by date granularity.

Daily:

  • stripe.active new subscriptions today
  • stripe.active new MRR today
  • stripe.active new subscriptions yesterday
  • stripe.active new MRR yesterday
  • stripe.active new subscriptions 2 days ago
  • stripe.active new MRR 2 days ago

Weekly:

  • stripe.active new MRR 0-1 weeks ago
  • stripe.active new subscriptions 0-1 weeks ago
  • stripe.active new MRR 1-2 weeks ago
  • stripe.active new subscriptions 1-2 weeks ago

Monthly:

  • stripe.active new MRR 0-1 months ago
  • stripe.active new subscriptions 0-1 months ago
  • stripe.active new MRR 1-2 months ago
  • stripe.active new subscriptions 1-2 months ago

Total:

  • stripe.active self service MRR
  • stripe.active subscription

Weekly Sparkline:

  • stripe.active new subscriptions for the last week
  • stripe.active new mrr for the last week

Here's a full example of a Geckoboard dashboard showing Stripe subscription dashboards:

var Dashboards = require('dashboards');
var subscriptions = require('dashboards-stripe-subscriptions');
var pipe = require('parallel-ware-pipe');
var geckoboard = require('geckoboard')('api-key');
 
new Dashboards()
  .use(subscriptions('stripe-key'))
  .use(pipe('stripe.active new mrr for the last week', widget('widget-id').sparkline))
  .use(pipe('stripe.total charged 0-1 months ago', 'stripe.total charged 1-2 months ago', widget('widget-id').percentageChange))
  .use(pipe('stripe.active new subscriptions for the last week', widget('widget-id').sparkline))
  .use(pipe('stripe.active new subscriptions 0-1 months ago', 'stripe.active new subscriptions 1-2 months ago', widget('widget-id').percentageChange))
  .run();

MIT