LearnHow Treehouse Built a Company Dashboard from Scratch in Two Months


writes on November 20, 2012

The past several months have seen extraordinary growth at Treehouse.  That’s why it has become much more important to track our business in a robust, scalable and easy to understand way using a company dashboard.

Treehouse is currently organized into six teams:  Teaching, Product, Video, User Growth, Finance, and Sales.

Key performance indicators (KPIs) were developed by each team in conjunction with Treehouse’s founder and CEO, Ryan Carson.

Examples of KPIs developed include: # of courses released per month, # of paid-signups per month, % churn per month, etc.

The Technicals

Like any web-based company, Treehouse has a database that stores tons of information related to the activity of each Team.  The database portion of interest contains records of activity for each student, the content available to students, marketing-related data, and many other bits of useful information that aid in tracking Team progress.  So how do we get this in a dashboard?

The main tool used is called R.  R is a statistical software tool that allows for easy parsing, cleaning, and manipulation of data.  It also makes really neat maps like the one below that shows the geographic distribution of our students:

R is the workhorse of the dashboard. Every night it runs, pulls data from the database, organizes it, makes graphs and tables, and then pushes the output to an FTP site that houses the private dashboard.

The most difficult part is getting R to shake hands with all of our data.  To connect to our main database I used the “RMySQL” package.  For data not housed in our database, we created Google Docs which are pulled into R via the “RGoogleDocs” package.  Finally, there were other various services the dashboard needed to pull from like Google Analytics.  I was able to work this one out with help from the unpublished “GAAuthData” module. As a dashboard builder, there is no question that the hardest part will be pulling data from various sources.  Though it can be difficult, the benefits of being able to represent all of your data in one place and in representations you want is a big benefit.  For example, pulling from our database and matching that data with site traffic data from Google Analytics lets us get a really good luck at our conversion rate.

Packages like “GoogleVis” allow you to insert nifty “touchy-feely” graphics that will bridge the gap between providing information to your dashboard users and allowing them to explore the data themselves.  Give the graphic a try below by pressing the ‘play’ button at the bottom.

The website

The dashboard itself operates as a simple responsive website.  It rescales whether it’s viewed on a desktop, laptop, or iPhone screen.  When I originally set out to build the dashboard, I was lacking in web design and development skills.  Thankfully, I work for a company that teaches those things, heh. Gradually the dashboard moved from basic HTML + CSS to a Twitter Bootstrapped-version.

It looks pretty nice today with tabs and a grid pattern housing modules.  There’s even an LCD display at the entrance of the Treehouse office in Orlando that shows a portion of the dashboard so that my fellow co-workers can see where we stand on certain goals when they arrive in the morning.

So the basic components include

  1.  A database.
  2. R or some other flexible language (Python, Ruby, Java, etc. will work well) to parse data and make graphics.
  3. A basic website design
  4. An secure ftp server.

The benefits

We’ve learned a lot in the process of building and deploying the dashboard.  The first thing is, R works pretty well a dashboard backend.  The second, for most statisticians and data scientists, the limitation is going to be with the actual display of the dashboard.  There are many alternatives from R Markdown, to enterprise solutions, to a full custom website.  I chose the full custom website.

The first advantage is that it’s basically free.  R is free, we already had ftp server space, so there wasn’t really any marginal cost associated with building the site.  The second advantage is that you have complete control.  Enterprise solutions both cost money and also require you to relinquish some control in order to take advantage of the time-benefits that come with standardization.

So how does the dashboard influence the management of Treehouse?

Every Monday, my fellow Treehouse employees get an email with an update on the KPIs.  I pull this straight from the dashboard.  This serves as internal marketing that reminds everyone that we have specific goals that we need to work towards as a company.

Second, once a week the leadership team goes through where they’re at in terms of progress towards KPIs.  This is where I think KPIs and the dashboard is most useful.  It keeps us constantly updated on KPIs, and if we’re not on track to meet them, it forces a productive conversation to happen.


One thing I underestimated was emotions that would surround the KPIs and dashboard.  It definitely took a while for leaders and team members to come to an understanding that while KPIs were “hard” goals, the true benefits came in the form addressing the successes and challenges as they happened.  It has allowed Treehouse to more efficiently allocate resources to consolidate on successes and to evaluate and either take on challenges or to move on to more fruitful goals.

I’d love to hear your take on what makes a successful dashboard and other innovative dashboard designs!  Please jump in to the discussion below!


Learning with Treehouse for only 30 minutes a day can teach you the skills needed to land the job that you've been dreaming about.

Get Started

Leave a Reply

You must be logged in to post a comment.

man working on his laptop

Are you ready to start learning?

Learning with Treehouse for only 30 minutes a day can teach you the skills needed to land the job that you've been dreaming about.

Start a Free Trial
woman working on her laptop