The masthead

About the editor

DF
Daniel Flavin

Data scientist in Bozeman, Montana, writing about models, evidence, and the places where useful simplifications break.

Retail pricing · demand forecasting · experimentation · model evaluation

I'm Daniel Flavin — a data scientist who can't stop writing about the things the data turns up. Wrong Models Only is my one-person paper: part portfolio, part open notebook, written for anyone who likes to know how the world actually works.

By day I work on retail pricing, demand forecasting, and the measurement systems that decide whether a model actually helped. The blog is where I slow that work down, separate the useful simplification from the convenient fiction, and explain the idea well enough that a curious stranger can audit the reasoning.

I write toward the job I want: somewhere between the analysis and the story, where rigor and curiosity aren't a trade-off.

Download resume ↓ Email ↗ LinkedIn ↗ GitHub ↗

How this paper works

I write in spirals. A topic starts with an approachable first pass — the big idea, no jargon, something you could read on a train. Then I circle back with deep dives that add the math, the code, and the caveats, and usually a project where I actually build the thing.

Each spiral is a thread you can trace from first curiosity to finished tool — so you can stop at whatever depth you came for, or follow me all the way down. I'm learning in public; the threads are the trail.

A thread, end to end
FIRST PASS An approachable explainer, no jargon
↓ deeper
DEEP DIVE The math, the code, the caveats
↓ shipped
PROJECT A case study, chart, or shipped demo
Selected work
79.5% coverage

Forecasting Citi Bike demand

A decision layer for one-day Citi Bike demand: conformalized quantile forecasts that restore 80% interval coverage, a 90th-percentile newsvendor rule for rebalancing, and an ops memo that turns uncertainty into a truck plan.

Python · LightGBM · scikit-learn
20 models × 6 horizons

Which forecast should you trust?

A granularity-and-horizon audit of ten demand-model families on 110M Citi Bike trips: the daily champion is the worst annual accountant, nothing honest beats "same day last year" at 90 days, and equal information makes a zero-shot foundation model tie a tuned tree. Final champion: the arithmetic mean.

Python · XGBoost · statsforecast · Chronos
1,110 stations

Citi Bike weather station explorer

A MapLibre station explorer for 2023 Citi Bike demand: filter by temperature band, rain, time of day, and day type to see which parts of the network move with the weather.

MapLibre GL · Python · station-hour data

The beats

Methods 1 piece
Models 1 piece
Orbits 1 piece

The toolkit

Technologies represented in the published projects and this site.

Pythonpandasscikit-learnLightGBMXGBooststatsforecastAstroReactp5.jsGit
Currently

Open to data-science roles where the work is rigorous and the explaining matters. The resume is available here, and the clearest public sample of the work is the project archive.