Seon Min Kim
SoloCUPEDSequential testing

A/B testing studies

A simulation where the naive result reversed once measured on the full population, and a dashboard over more than 1.2 million sensor records.

6.4% → 14.4%
Naive comparison, which reversed to 19.1% → 11.6% on the full population
1.2M+
Sensor records in the mHealth dashboard
When
September 2025 and August 2026
Context
Personal projects
Team
Solo
My role
Design, simulation, analysis and dashboards
Tools
CUPED, Sequential testing, Heterogeneous treatment effects, Streamlit
Links
Match-score write-up, match-score-ab-test on GitHub, mhealth_abtesting on GitHub

match-score-ab-test

Does showing job candidates their AI match score help them? Candidates, postings and match scores come from more than 150,000 real application records. Only the reaction to seeing a score was simulated, and how is documented in src/simulate_behavior.py.

Looking only at people who applied, the offer rate rose from 6.4% to 14.4%. That comparison is misleading: seeing the score changed who applied, and applications dropped 70%. Measured on the full population, the chance of landing any offer fell from 19.1% to 11.6%. CUPED made the selection effect visible, and a causal forest showed candidates with less traditional backgrounds were discouraged most.

Methods: candidate-level randomization with SRM checks, power analysis, CUPED, always-valid sequential testing, causal forest CATE.

mhealth_abtesting

A Streamlit dashboard built on more than 1.2 million readings from the UCI mHealth sensor dataset (10 subjects, 13 activities, 24 channels). It runs a stratified quasi-randomized A/B assignment, Welch’s t-test, Cohen’s d and 95% confidence intervals. The intervention is simulated on observational data, so the effects are illustrative, not clinical outcomes.