A readout to a client's leadership team
Case study

EVERFI cut sponsor report generation time by 90% on Snowflake

A legacy warehouse buckled under 100M+ learning events a month, so sponsor reports took hours and upkeep ate the data team's week.

EVERFI

EVERFI · Client onboarding and service

90%less time generating reports for sponsors

The workflow before#

EVERFI teaches financial literacy, wellness and workplace skills to more than 30 million learners, and much of that work is funded by corporate sponsors. Sponsors keep funding courses when EVERFI can show them reach and outcomes, so the reports aren't a side task. They're how the business renews. The on-premise warehouse behind those reports was struggling with more than 100 million learning events a month. A sponsor report took hours to generate, an average query took 30 seconds, and adding a new data source took weeks. The data team spent about 60% of its time keeping pipelines running, which left little room for the analysis sponsors were actually asking for.

What we built#

We moved EVERFI's learning data to Snowflake and rebuilt the path from raw events to sponsor dashboards. Data now loads automatically, every model is tested before anyone sees a number, and sponsor reports come from one trusted layer. The data team gets its week back, and business users can answer many of their own questions without filing a request.

Managed loading from every source

Fivetran connectors load learning management, enrollment, content interaction and sponsor reporting data, and Airflow runs the schedule. We used change data capture instead of full reloads, so each run moves only what changed. That keeps loads small and fast even as event volume keeps growing.

Tested data in three layers

We moved EVERFI's existing SQL logic into dbt models organized in bronze, silver and gold layers, refactoring legacy SQL for Snowflake along the way. Every model has tests and generated documentation. A sponsor-facing number is checked before it ships, and an analyst can look up exactly how it was built.

Sponsor dashboards and self-service

We rebuilt EVERFI's reports and sponsor dashboards in Tableau and opened self-service analytics to more than 30 business users. Everything reads from the gold layer. That was deliberate: a program manager exploring a question and a sponsor reading a quarterly report see the same definitions, so the numbers never have to be reconciled by hand.

How we delivered it

The migration ran over 32 weeks. We stood up ingestion first, then moved and tested the SQL logic layer by layer, then rebuilt the dashboards. Old and new systems ran in parallel until the numbers matched, and we cut over with minimal downtime. Business users were onboarded to self-service as their dashboards moved, so adoption grew alongside the migration.

Before and after#

MeasureBeforeAfter
Report generation timeHours90% less
Average query time30 seconds6 seconds
Data infrastructure costOn-premise baseline40% lower
Pipeline maintenance timeAbout 60% of the data team's week60% less
Self-service analytics usersRequests through the data team30+ business users

What's next#

With tested, documented learning data in Snowflake, EVERFI can put an assistant in front of sponsors and program teams. Instead of waiting for a report, a sponsor could ask how many learners finished a course in a region last quarter and get an answer drawn straight from governed data.

ShareLinkedInEmail

Fivetran handles ingestion with change data capture from the learning platform and supporting systems into Snowflake. Airflow DAGs schedule loads and trigger dbt runs, and Terraform manages the Snowflake infrastructure.

dbt models follow a bronze, silver and gold layout with tests on every model and generated documentation. GitHub Actions runs CI for dbt and Airflow changes, so a broken model or DAG is caught before it merges.

Separate Snowflake virtual warehouses run loading, dbt transformation and BI workloads, so a heavy transformation run doesn't slow a sponsor dashboard. Tableau reads the gold layer for both internal and sponsor-facing dashboards. The setup handles 100M+ learning events a month.

Next step

Let's build the case study we tell next.