Building a scalable data foundation
LessonUp is a Dutch-based learning platform that enables teachers to make each lesson better than the last. Their learning management system (LMS) provides educators with tools ability to craft, deliver, and archive materials for virtual and hybrid instruction. Today, over 35,000 educators worldwide have delivered over 1 million lessons through LessonUp.
LessonUp is a business that has largely bootstrapped itself into success. Data is part of its founding team’s DNA, and the company invested in using as many turnkey tools as possible to cost-efficiently guide company strategy and business intelligence.
Valueseries B stage
Prior to the engagement, their data stack consisted of:
- MongoDB for backend services
- BigQuery for data warehousing
- Mixpanel and Google Analytics for product and marketing analytics
- Metabase for visualisation
After 5 years of operation, they had exhausted off-the-shelf tools, and the growing complexity of their data environment hampered the reliability of their analytical insights. Strategic decisions lacked conviction because of conflicting analytical insights, while investor conversations were manually tedious to compile and also suffered from a lack of confidence.
LessonUp needed to reorganise the data foundation they had built into a systematic, reliable, and scalable stack that the whole company could use.
- Model LessonUp’s data to support strategic insights and external reporting 95%+ analytical reliability
- Re-wire the data models to function with Metabase for visualisation
- Audit and clean data sources to solve ‘garbage in, garbage out’ data issues, and implement automated pipeline testing for error-free data ingestion
- Build infrastructure and train the team so LessonUp could to continue adding new data sources and visualisations after the project
“Before, we would just grab a database, pull in into a table, and then analyse in BigQuery or Metabase. Tasman rebuilt our foundation.”
Data modelling in dbt
The root cause of LessonUp’s reliability issues was the fragmentation of its data sources. To analyse their data, they would extract and load tables directly into BigQuery. This created conflicting results when the data wasn’t normalised and restructured to a common standard. Using dbt, we implemented a series of 4 modelling layers to address the issue:
- Source layer: extracted the data from it’s original source
- Staging layer: cleansed the data from the source layer
- Domain layer: modelled the clean data into usable schemas for analysis
- Presentation layer: prepared the cleaned, modelled data for visualisation
With these 4 layers implemented with BigQuery, LessonUp had a master source of truth that accurately mapped each part of the business. Any analytics done on the domain or presentation layer would align amongst all sources.
Marketing data with Stitch
LessonUp needed a reliable way to view Marketing data in a single view in order to analyse customer acquisition costs, conversion, and channel effectiveness. Each platform, however, reported data in different ways that required normalisation and interpretation. Using Stitch, we created links that extracted the data from Facebook, LinkedIn, and Google Ads, centralising it before storage and data modelling. Stitch allows the team to have flexible, normalised inputs that treat Marketing data in a uniform way for analysis.
Product tracking with Snowplow and Avo
A core objective of the project was to enable error-proof product analytics. After working with the team to understand the events that needed tracking, we implemented Snowplow to generate a data events stream for their platform. To ensure the inputs were always functioning properly, we implemented Avo, a no-code data testing automation tool, to automatically test and validate the pipeline. Because Avo is no-code, LessonUp could easily troubleshoot pipeline issues without needing a full-time Analytics Engineer after the project.
Visualisations in Metabase
LessonUp had already been using Metabase as a low-cost visualisation tool, and they wanted to stick with it. After modelling the data, we re-wired the presentation layer to replace the inconsistent data tables they had previously used. With the pipeline functional, we created a series of internal and external dashboards to serve as validated sources of truth for marketing, product, and investor reporting. The visualisations update automatically, and LessonUp’s team are equipped to update Metabase when the modelling changes.
Our engagement with LessonUp lasted 7 months, and in that period we delivered:
- Reliable data stack: a new, flexible foundation for LessonUp to scale on, with 95%+ analytical reliability that met their needs
- Growth & product analytics: enabling their team to perform accurate, self-service analytics to guide strategic decisions
- Reporting: centralised, single source of truth dashboards for internal company reporting and external investor updates (e.g., MAU and MRR)
- Data-driven culture adoption: we grew the number of data-fluent consumers from 5 to 15 team members — roughly half of LessonUp’s team — by building confidence and user-friendliness into the data ecosystem.
After the project, LessonUp was able to maintain their function in a lean way, hiring a full-time Business Analyst and contracting with a part-time Analytics Engineer.