Editor’s note: this post comes from our engineering team, for those interested in a technical view under the hood.
It’s important to make data-driven decisions when you can. Sometimes at a startup it can be hard to set this infrastructure up quickly. We prioritized being data-driven from day 1 at Kindbody. We’re pleased to share that within the first three months of opening our first clinic, we were well on our way. Our goals were:
Transparency: everyone should be able to see how the company and different departments were progressing towards goals, whether it’s customer satisfaction, intake form completion, or revenue.
Actionability: the ability to dig into the “why” across marketing, clinical, ops, or finance.
As engineers coming from a range of data science and engineering backgrounds, we have seen a number of business intelligence solutions. These range from cron jobs spitting out CSVs, and semi-automated R scripts, to Tableau and Domo setups. In recent years, a number of dashboarding and ETL tools have come on to the market, making it faster and easier to get access to your data. We pieced together our data suite, which we affectionately call KindSight, in anticipation of data-driven requests as soon as we opened up shop.
About our Stack
KindSight has two main pieces, a data engineering stack and an analytics stack. We chose a data engineering stack that was cheap, easy to set up, and fairly future proof. The basics of the stack include replicating our production database powering our EMR into a data warehouse, Segment analytics populating the same data warehouse, and data from a few other sources that we hook together with Stitch into (you guessed it!) our data warehouse. We didn’t go with a fancy warehousing database like Vertica or even Redshift because we simply don’t have Big Data (yet).
Our data analytics stack is even simpler. To manage data that requires decoration or data joins that we do often, we write views and materialized views directly on our data warehouse. One major area for improvement is version control of our views.
Our dashboarding and query tool is Metabase, one of our favorite new tools in the past 3-4 years. I dabbled with Metabase at previous companies and have monitored its progression over time. I previously worked with Tableau, Looker, and Domo. But the cost of these solutions was considerable, and the feature set and potential for improvement of privately sourced solutions seemed limited. In contrast, Metabase is open source and free, so it is constantly improving with community feedback. It deploys super easily on Heroku. You can also do a number of really easy installs on other infrastructure. There’s even a Helm chart out there if you want to Kubernetes your dashboarding tool.
Here is our Highlights dashboard, blurred out for privacy reasons:
We can easily tell what our KPIs and goals are for previous, current, and future months and how we’re tracking. Our KPIs include revenue numbers, appointment bookings, customer service metrics, and most of these are overlaid with goals. The KindSight data engineering stack refreshes about once an hour, which is a feat we’re extremely proud of!
Our dashboard did not always look like this. Because Metabase makes it so easy to edit cards (one or more graphs) and add/remove cards, we’re able to iterate quickly. Initially, I chose the metrics that either I was interested in or that I anticipated others would be interested in. As people joined the team and functional teams grew, we moved cards to more focused dashboards. For example, we moved breakdowns of conversion cards to our Marketing dashboard. We also created and refined the set of revenue based cards to ensure team alignment on goals and progress.
To keep company goals top of mind, we display our Highlights dashboard on a TV screen that refreshes every 1 minute. The dashboard operates in full screen mode with auto-refresh via the Metabase UI, powered by a small Raspberry Pi. We also enabled users to log into Metabase themselves via SSO to view the dashboard anywhere.
Now, every employee in the company has access to our business metrics in real-time, so everyone can take ownership of making our product a great experience for our patients. We review this dashboard weekly, and many individuals, including myself, review it daily. In addition to our Highlights board, we have Marketing and Customer Service (CX) dashboards to allow different teams to track in real time how they are performing. Additionally, data pulls for sanity checks, one time access, or other one offs are done via the table format and export features.
KindSight impacts the engineering team as well. We no longer have to manually pull data. We still make minor updates to the data warehouse and complicated queries. But now that dashboards and tools are available, we do not need to repeat work. This means we can spend our time on developing new features and product work instead.
The accessibility to data allows teammates to make data-driven decisions in real time. I had not anticipated the eagerness to learn how to dig into our data more thoroughly. With access to data, certain members have enrolled in SQL classes. Even very non-technical teammates have been able to create basic charts and access data without engineering team help. I’m thrilled by the culture of the data-driven independence!
There is no doubt Kindbody will continue to heavily utilize data as we grow. Given the success of Metabase during our first year, we decided to harden our data engineering and analytics infrastructure. We migrated our Metabase instance off Heroku to Elastic Kubernetes Service. From the time I started this post to its publication, we revamped our Highlights dashboard to take into account the opening of our first California office in San Francisco. Being data-driven is important to us, and we’re looking forward to continued actionability and transparency!
Sr. Director of Engineering— Sarah Griffis is a seasoned engineering leader with expertise in systems architecture, data trends, and engineering management. She leads the Kindbody engineering team building applications to improve clinical efficiencies and patient experience.