← ALL POSTS

25 DEC 2025

My Georgia Tech practicum

data-sciencemachine-learninggeorgia-tech

The practicum is the applied capstone of my Georgia Tech master's: instead of a final exam, you spend a semester embedded with an industry partner, working on their real data and their real problems. Mine was with a SaaS company that makes a "call centre in a box" for sales teams. They gave me an export of their own sales pipeline: about 1.2 million records covering roughly 86,000 leads across several years — every call, message, status change, and payment, timestamped and linked to a lead.

Coursework hands you a clean CSV and a rubric. This handed me a database and a mandate: make it useful. I shaped the semester around three questions.

Which marketing actually pays?

The company, like most, judged its marketing by last-click attribution — whichever channel touched the lead last got all the credit. Across dozens of channels and roughly $1.8M in attributed revenue, I built a family of multi-touch attribution models — first-touch, last-touch, linear, position-based, time-decay — to see how credit shifts when the whole journey counts, then layered K-Means segmentation on top to find the high-value pockets the channel averages were hiding. The part I'm proudest of wasn't the models; it was defending the differences. Bootstrap confidence intervals turned "channel A looks better" into "channel A is better, and here's the range" — the difference between a chart and a budget decision.

Who will buy — and how fast?

The modelling heart of the project was lead scoring, and it was really two questions: will this lead convert, and will they convert quickly? I engineered around 250 features per lead from the raw behavioural logs, under one strict rule: a feature only counts if its value exists at the moment you score the lead. Scoring systems live at the start of the story, so every feature had to be built point-in-time, and every model was evaluated on time-based splits — always predicting forward, never grading itself on hindsight.

With conversions running at about 6%, class imbalance was the other quiet enemy; resampling techniques like SMOTE kept the models from learning to just say "no" to everyone. I ran a proper bake-off — logistic regression as the honest baseline, then Random Forest, then tuned XGBoost — and landed at an ROC-AUC just under 0.9 on features that would survive production. Feature importances turned the score into something a sales team could argue with: geographic hotspots, behavioural drivers, the signals that actually move a lead.

Where does effort pay?

The third question was the most fun: what separates good sales effort from wasted effort? I cost-weighted every action — a call is not a WhatsApp message, a message is not a status update — and mined the activity sequences of every lead to see which patterns of engagement actually preceded a sale.

The findings were almost embarrassingly actionable. About 71% of conversions happened in the first 30 days, so speed beats persistence. Leads worked across multiple channels converted at nearly three times the single-channel rate. Call duration predicted conversion far better than call count — and past a threshold, more activity meant less conversion, not more. Roughly a fifth of all effort was going to leads that never produced a dollar, while a small high-potential segment sat under-worked. Same team, same hours, different allocation: that's the whole optimization.

What a semester of real data teaches

The techniques were the syllabus, but the real curriculum was rigor: bootstrap intervals instead of point estimates, time-based splits instead of random ones, cost-weighted effort instead of raw activity counts. And one thing coursework never quite says out loud — the deliverable is a decision, not a model. Nobody deploys a ROC curve. The end product was budget reallocation, rep time, and follow-up cadence; the models were just the argument.

If you get the chance to do a practicum with real company data: take it. The mess is the education.

© 2026 ETHAN

OCCASIONAL WRITING