Timeline
Everything on this site that carries a date, placed at the precision the date is actually known to.
Dates are shown at the precision they are known to and no finer. A project recorded as 2025 appears as 2025, not as 1 January 2025 — the day is not information anyone has, and printing one would be inventing a fact at a resolution precise enough to be quoted back.
11 of 12 entries here are known only to the year, which is why they are written that way.
Undated work is not shown here and is not missing: see kinds of thing for everything, dated or not.
2025
Case study
Choosing a recommender by evaluating the evaluation
Three approaches were run against the same play-count dataset: a popularity baseline, user-user collaborative filtering, and item-item collaborative filtering. Both similarity models beat the baseline, by a margin small enough that the evaluation could not clearly distinguish them from it. The conclusion is that the metric was the problem: accuracy against held-out play counts rewards reproducing a concentrated distribution, which all three models can do. The recommendation is to fix the evaluation before choosing a model.
Research note
Charts that survive without color
An independent demonstration of chart encodings that do not rely on hue.
Research note
What collaborative filtering assumes about people
A written-up account of how user-user and item-item recommendation differ, and what each one quietly assumes about the people it is describing.
Research note
Measuring local economic resilience
Independent research exploring a resilience measure that small towns could compute.
Application
Reading a recommender notebook in the open
A published Jupyter notebook comparing three recommendation approaches, rendered as readable prose rather than a download.
Insight
The popularity baseline was harder to beat than expected
What the recommender notebook actually showed. Tuned collaborative filtering improved on recommending the most-played titles by less than the evaluation's own noise.
Research note
What a good statistical brief does in four pages
A close reading of an NCHS mortality brief, embedded in full, as an example of publishing a document without making the reader download it blind.
Dataset
Taste Profile play counts
The play-count data behind the recommender comparison: what a row of it actually records, and why the extract that was modelled is the dense middle of a distribution rather than the whole of one.
Project
Community needs assessment framework
A demonstration of how mixed evidence could inform a funding decision.
Application
Microsimulation explorer
An interactive policy microsimulation, framed on the page so a reader can change an assumption and watch the result move.
Project
Spending transparency dashboard prototype
A demonstration of a low-maintenance approach to publishing municipal spending data.
2024
Project
Turning policy research into a decision-ready brief
A portfolio sample showing how synthesis, uncertainty, and affected groups can be presented to a decision-maker in one document.