KENOSHA
In 2019, a paper by Bill Benter sent me down a rabbit hole. He had built a profitable horse-betting system using a statistical model to estimate each horse’s chance of winning. Could a similar approach still find an edge in another market, decades later? That became Kenosha: a personal research project adapting Benter’s multinomial-logit approach from Hong Kong thoroughbreds to European harness racing. I suspected any edge would be difficult to find: the data and computing tools available to me were available to other bettors too. To be profitable even in principle, a strategy would have needed to overcome both PMU’s deductions from the betting pool and Germany’s then-applicable 5% betting tax. I wasn’t about to quit my job over it. Building the whole thing nevertheless sounded like a blast: collecting and cleaning data, constructing features, testing models, and bringing live predictions into a race-day dashboard.
The difficult part was making different data sources agree…
01 / 03… Dates, distances and race times needed consistent formats and units; result codes needed to distinguish a missing time from a failure to finish. Horse names varied, so I combined name normalisation and fuzzy matching with birth-year checks and manual review. I resolved duplicate horse–race entries, checked join keys, and merged race context, driver statistics and odds into the working tables. Those tables supported features such as recent form, normalised speed and Elo ratings. Only then could I estimate the model and evaluate it on unseen races.