Since Canada, driver and constructor prices fluctuated significantly and players struggled to follow the pattern. Selecting a team with high scoring and high price gain potential provides a distinct advantage for long term success. F1 Fantasy Tools changed the game again by introducing a price change prediction model that sits in the Team Calculator used to predict scoring. The mastermind behind both prediction models is Rhter, an American transplant currently residing in Australia. I had the pleasure of interviewing Rhter to learn about the origins of the model and better understand how it works.
FanAmp: Each week, you publish beautiful simulations that model expected race performance that is translated into predicted fantasy points. Do you have a background in statistics or programming that enables you to do this?
Rhter: I work in academia. My PhD thesis dealt with the matrix structure of polarimetric measurement. To unpack that a bit, a lot of linear algebra and various decompositions along the way. This training definitely helped on the statistics front. In terms of the programming front, I would say an academic does not generally become the best developer. Having said that, my thesis had more computational components than most, so I got good enough within the prototyping environment. None of my stuff is its most efficient version, but certainly fast enough to not invest too many more hours trying to shave off seconds.
FanAmp: What was your inspiration behind modeling the price adjustments?
Rhter: Not sure how to describe the inspiration. Just throw whatever fantasy data on hand at the problem and see what sticks? The base model can be argued to have 57 parameters, but many of those have been cramped away as they didn't have much impact on predicting price changes. On a more global scale, there was a paper that I wrote in 2020.
It's a peculiar one, where I wasn't sure how to geometrically (in 16 dimensions) derive something. So instead of doing it the analytical way, I've gone the computation way. Generated a bunch of numerical results that contained the things that I wanted to have a nice expression for, then looked at various things like Fourier series coefficients, Taylor polynomial stuff, etc. Eventually I built up an arsenal for recognizing the functionality and getting the right answer. I guess this fantasy exercise benefited from that.
FanAmp: How long did it take to develop something that was reasonably accurate?
Rhter: Majority of the undivided attention work was in getting all the data tidied up (mostly just fantasy points breakdowns). Maybe 3-4 hours? Once I had that in place, it was all about iteration of the model's "eval function" and optimizing from a disturbed set of previously found sets of parameters. Each optimization run might be 10 minutes, so it was probably 5 minutes of trying something, running it, seeing where I landed. This was done in parallel with other things, so I'm not sure how to count this time. probably after 15-20 optimization runs, I've gotten to something decently workable.
FanAmp: Without giving away the secret sauce what are the different factors in predicting an upcoming price change?
Rhter: The biggest observation at the start was that there seemed to be discrete buckets of price change. The game seems to have: -0.5, -0.2, -0.1, 0.0, +0.1, +0.2, +0.3, +0.5, +1.0, +1.5. But the way those are scattered across assets is a bit peculiar. Higher priced assets typically experience +0.1, +0.2, +0.3 and lower priced assets experience +0.5, +1.0 and +1.5 as some sort of equivalents. Currently, the model eval function calculates a version of PPM, where each identifiable fantasy points component is alternatively weighted and divided by the asset's prices. There are regularization and offset terms to enable enough "stretchiness" to all things. That number is than placed into one of five buckets (-0.1, 0.0, +0.1, +0.2, +0.3): we need four parameters that dictate the boundaries between them (-0.1, 0.0, +0.1, +0.2, +0.3).
There is a secondary layer where the price and DoTD [Driver of the Day] determine what kind of multiplier is applied to an asset, those available being 1x, 2x, 3x, 5x. This part of the model is probably the weakest on a technical level as it requires rounding of 0.6 down to 0.5 and 0.9 to 1.0 to operate on the grid that has so far been made obvious through actual price increases. So +0.5 in the model could be a result of 0.1 x 5 = 0.5, or 0.2 x 3 = 0.6 rounded to 0.5, or 0.3 x 2 = 0.6 rounded to 0.5. This is most certainly incorrect (as in this is not what's being done), but it is likely that as long as the correct kinds of data are provided to the optimization routine it is possible to get a fit that is generally going in the right direction. As we get more data from more races, there will likely be an increasing number of cases, where something doesn't fit - those extremes are key in trying to posit a new "shape" for the function. Perhaps, [-0.5, -0.2, -0.1, 0.0, +0.1, +0.2, +0.3, +0.5, +1.0, +1.5] are just [-3,-2,-1,0,1,2,3,4,5,6] and then depending on price, you get a multiplier on the number of steps, not the size of the step? Who knows.
When it comes down to good enough though, it's probably not critical to evaluate price prediction exactly for one set of conditions. You want the average or expected budget change to be right. You might have the feeling that resurgent McLaren has the potential to gain more money than any other constructor, but the question of how much is key. For example, in Monza, Ferrari gained +0.3, but they could have easily been +0.5 if one more thing went better for them; whereas while McLaren got +1.0, they could have easily gotten +0.5 if one more thing went wrong for them. The +0.7 spread here is quite peaky here.
FanAmp: For new users, when they see the predicted change for an asset how should they interpret that? What does that prediction mean?
Rhter: At the end of the day, the team that scores the most points is likely to also stand a reasonable chance to gain a good amount of budget. You get scored by points, not by budget. The one thing that the larger budget provides is the ability to run a better 5th driver in peaky scenarios, and more broadly enables teams with better mids, i.e., 3xRED+3xMCL. That additional flexibility is desirable, but getting there is never a guarantee. On Discord, I publish more than just the average prediction of all prices raises, but also the likelihood of landing in a certain price change band. If you are behind in budget and your makeup can hardly compete, then it could make sense to lick the stamp and send it. I guess, be cognizant of the assets that have the largest upside and prioritize having them.
FanAmp: A question on everyone’s mind – we know that Rhter was the result of some button mashing but if you HAD to pronounce it, how would you do that?
Rhter: Ha! I rarely pronounce it myself, so my opinion matters less? My default would be: rye-ter, but I'm also aware of rit-ter. Don't want to start a GIF vs. GIF thing.
Fantasy players now have more tools than ever to dominate their leagues. Consistently building modest budget gains over your mini league opponents allows us to add better drivers in the long run. Thank you to Rhter and F1 Fantasy Tools for raising the bar once again.