Projects
Each project states how it was evaluated and what its results do not show.
Hospital Readmission Risk on Medicare Claims (synthetic)
A SQL Server data mart built from 66,705 inpatient claims for 37,780 beneficiaries in CMS DE-SynPUF synthetic Medicare data. Window functions merge transfers into stays and compute a HEDIS-style 30-day all-cause readmission measure, and every count reconciles to an independent Python build. A logistic GLM trained on 2009 discharges and tested on 2010 beat a two-variable baseline (AUC 0.612 vs 0.552; paired bootstrap 95% interval for the gain 0.03 to 0.09). Gradient boosting added nothing (AUC difference 0.000, interval -0.019 to 0.016). The GLM predicted a 6.7% readmission rate where 3.9% occurred in 2010, so it needs recalibration before use. The data are synthetic, so the coefficients say nothing about real patients.
SQL Server Python GLMs Calibration Healthcare claims
Code public soon
Motor Insurance Ratemaking and Mock Rate Filing
Exposure-offset Poisson frequency GLMs on 668,874 French motor liability policies (freMTPL2). On a 133,775-policy holdout, the 8-variable plan cut Poisson deviance 5.09% vs exposure only (paired bootstrap 95% interval 4.56% to 5.60%) and 0.55% vs a 3-variable incumbent plan (0.35% to 0.73%). The data have no policy dates, so the holdout is random, not later in time. A gradient boosting challenger beat the GLM (deviance 1.68% lower, 1.38% to 2.00%), and the Gamma severity model did not beat a flat mean, so the plan uses flat severity. The mock filing covers credibility-weighted relativities with 15% caps, a +5.9% indication on labeled illustrative assumptions, lift and double lift charts, and premium dislocation.
R GLMs Insurance pricing Credibility
Code public soon
Credit Card Charge-Off Forecasting
Federal Reserve charge-off and delinquency rates and unemployment (FRED, 166 quarters) loaded into SQL Server with reconciliation checks, then forecast 1 to 4 quarters ahead in a rolling-origin backtest with 82 refits from 2005 to 2025. A regression with ARIMA errors cut 4-quarter MASE 28% vs a no-change forecast (2.99 vs 4.14), but Diebold-Mariano tests were not significant (p 0.10 to 0.70), so no reliable gain is claimed. The no-change forecast’s own 80% intervals covered only 69.5% of outcomes four quarters ahead; split-conformal intervals built from past out-of-sample errors covered 79% to 90% across all models and horizons.
Python SQL Server Forecasting Conformal prediction Credit risk
Code public soon
Bayesian Healthcare No-Shows
Hierarchical logistic regression of healthcare appointment attendance. Neighborhood random intercepts partially pool local effects, and patient and scheduling variables enter as fixed effects. Longer waits are associated with lower attendance odds. The negative SMS-reminder coefficient is reported as confounded by scheduling, not as a causal effect. Posterior summaries and figures rebuild from 7,500 saved draws without patient data.
R JAGS Hierarchical models Public health
TF2 Player-Count Forecasting
Monthly Team Fortress 2 player counts from July 2012 to September 2025, modeled with ARIMA/SARIMA, a piecewise pandemic-period term, and calendar-event regressors. On the October 2023 to September 2025 window, the refined event-regressor model had RMSE 14,505 against 26,950 for the automatic SARIMA baseline. That window also guided model selection, so it is not an untouched test set.
R Time series Forecasting
EvidenceOps: Business Sentinel
A Python pipeline that validates and reconciles CRM, billing, and operations exports, then writes management and exception reports with SHA-256 provenance. Malformed schemas are rejected before any report is written, and repeat runs produce byte-identical outputs in the checked environment. Tested against a locked benchmark of constructed defects.
Python Data validation Reproducibility
Draft Expert (in development)
A real-time draft recommendation system for League of Legends. A nightly pipeline ingests pro and collegiate games, runs evaluations before each build, and turns off any model term whose effect no longer clears its confidence interval. The bundle serves to a live client during champion select. Built for VCU’s collegiate team.
Python ML systems Esports
Write-up coming