Real-Time User Behavior Tracking for OneUp, an Edtech Startup

Product Analytics Business Intelligence

I built and deployed a live analytics platform that turned raw product data into a dashboard the founders use regularly to check cohort performance and engagement.

PostgreSQL Metabase AWS EC2 AWS RDS Docker CTEs Window Functions Data Validation

01 The Problem

OneUp is a pre-revenue startup building a text-message-based coaching platform for teenagers. The founders had product data sitting in a production database, but no way to actually see how their beta cohorts were engaging with the product.

Every question about user behavior meant someone manually querying the database and reporting back. There was no live view, no way to track trends over time, and no way to catch problems as they happened.

02 The Approach

1

Data Mapping

Connected to the production database and mapped tables for users, check-ins, and coaching stages.

2

SQL Logic

Wrote all underlying queries using CTEs and generate_series to calculate expected activity per user.

3

Dashboard Build

Built two cohort dashboards covering enrollment, activation, engagement trends, and behavioral growth.

4

Deployment

Deployed Metabase on AWS EC2 on a custom subdomain so the team didn’t need database access.

5

Team Access

Migrated the local build to the live server and set up individual logins.

03 The Result

Live Tracking

Two dashboards tracking real cohorts across 10+ metrics

Enrollment, activation, engagement trends, and behavioral growth — all in one place the team could open anytime.

Bug Fix #1

Completion rates over 100%

Found and fixed a mismatched date range that was inflating completion metrics.

Bug Fix #2

Duplicate profile records

Traced skew to duplicate user profiles, then rebuilt the calc to use actual first activity instead of a stored date.

Real Gap Found

One cohort completed ~78% of check-ins; another ranged 23–64%

A difference worth flagging directly — not a vague “engagement feels low.”

04 Business Impact

Self-Serve Data

Founders check real numbers without asking for a report.

Turned a Hunch into a Number

“Some students seem less engaged” became a specific, verified gap.

Caught Bad Data Early

Fixed two accuracy bugs before they led to a wrong call.

Cohort Comparison

Made it possible to compare cohorts for the first time.

05 What I Learned

This was my first time deploying something live, not just analyzing data in a notebook. I picked up Metabase and Docker on the fly and set up a custom subdomain so the team could reach it without needing AWS access.