Interactive demos
All six demos below run the JavaScript port of the thurstone Python package in your browser. No servers; the price–ability map is recomputed live as you change inputs.
The Triple Crown
Three generative models — identical winning probabilities, completely different shapes. The case for Thurstone over Luce.
Forward pricing
Drag ability sliders for a 5-runner race. Watch state prices and dividends update live.
Inverse calibration
Type dividends; recover implied abilities and check the round-trip back to prices.
Multi-race stitching
Paste several races sharing runners; recover a single global $\theta$ vector.
Density playground
Play with skew-normal performance densities, integer/fractional shifts, convolution, dilation.
Walkovers & ties
Hang runners off the lattice. See walkover and equal-share behaviour of the cluster splitter.
2D (loc, scale) inversion
Per-runner scale interpreted as consistency. Inverse calibration in two dimensions.