Stripe subscriptions plugin for segmentio/dashboards


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

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 }))

You can further filter customers using stripe-cohorts filters:

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

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


  • 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


  • 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


  • 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


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