Everything we publish traces back to the same stack: possession-level event data, a hierarchical rating layer, and Monte Carlo simulation — ten thousand runs per matchup, re-seeded daily.
This post documents each layer, what it’s fed, where it’s validated, and the known limitations we correct for by hand.