Evaluating my bot bets with hit-rate

During the last few weeks I have noticed a drop in turnover and especially in number of bets placed by my bot. Is my edge vanishing? What is the problem?!

To answer these questions I needed to create three KPI’s that describes how my models are performing in terms of generating bets and turnover; Hit-rate%, Try-rate% and Model%. I define them as:

Hit-rate = # Matched markets / # Potential markets
Try-rate = # Amt req markets / # Potential markets
Model-rate = # Potential markets / # Followed markets

The gross number of markets followed by the bot is labeled “Followed markets”, the number of markets that are within my risk appetite (meaning a betting situation can occur) is labeled “Potential markets”, “Amt req markets” are the number of markets where I asked for a bet and finally the “Matched markets” is the number of markets where I at least got a bet partially matched.

Plotting these KPI’s for the last couple of years:


From the above chart we can see at least three important things:

a. The difference between my Try-rate and Hit-rate is constant => I still get at least partially matched in 90 % of my bets.
b. There seem to be a lift in hit-rate/try-rate in January 2017, which is contrary to what my intuition says. A rise from around 10 % to 15 %, which can be explained by the new strategies I have added for 2017 (they are only tested with minimum stakes and therefor their presence is only visible here and not in turnover).
c. The Model-rate is also constant at around 85%, meaning that my risk appetite have the same impact in relative terms as previous years.

In the above chart we see the absolute number of markets followed and markets within my risk appetite. We can clearly see two things:

a. The cyclic nature of soccer markets, with many markets played in April and October and less markets in December/January/June.
b. The increase of markets followed by the bot during the last years, explained mainly by improving my code and therefor making it possible to follow more markets simultaneously.

From these two charts I conclude that the low in bets generated is simply a problem with few markets played. When a market is followed I still have the same probability to find a betting opportunity and the same probability to get a bet through. I am also positive surprised that the test strategies lifts my hit-rate from 10 % to 15 %, now I only hope that they also will deliver a ROI of +101%.


Top10 supported soccer teams – Looking for edges – Part 3 of 3

This is the third post in the following series:

1. If many “play-for-fun” supporters bet on their favorite team, can laying them pre-game be a winning strategy?
2. What if one of these teams take a one goal lead in-play. Should I back or lay?
3. What if their opponent takes the lead by one goal. Should I back or lay?

In this last exercise we examine the situation where the Top10 team suddenly is trailing by one goal. This doesn’t happen often so there is only a small amount of data.

There seem to be value in laying the Top10 team if it is the home team, and the match is a domestic league match. It seems like the market overestimates the comeback potential in those cases!

Now we have mined through some data and found a few angles that could be interesting to exploit, so in the next blog post I intend to create some strategies from these insights for 2017 – and will follow up on them during the year. So check back in a few days!


Summing up 2016 and prognosis for 2017

It has been a fantastic year for the bot! Looking back for my 2016 prognosis one year ago, I wrote:

“So what do I hope for 2016? Its not of any value to have financial goals, I will just try to improve the model, bot and risk management as much as possible and hope for the best… But walking into 2016 with much better starting point than in 2015, a reasonable guess would be to turn at least 4 MSEK, and reach a ROI of 1 %. If that’s the case it would mean a profit around 40000 SEK.”

The actual performance for 2008-2016:


I managed to increase both turnover and ROI, instead of the prognosis to turn 4 MSEK I turned 6.1 MSEK and instead of 1 % yield I got 1.2%. Increasing both of them gave me a profit of 75 865 SEK (instead of the anticipated 40 000 SEK).

Breaking down the bets for 2016 on bet types:


I am happy to see that I am “green all over”, although the Draw and Over/Under models are performing below expectations.

The plan for 2017 is to keep the good models for Home and Away, and do some minor changes to Draw and Over/Under to slightly improve their yield. I aim to get all models +1.0% yield. My total yield goal is to improve from 1.24% to 1.30%.  A bigger wallet for 2017 will also mean bigger stakes and more turnover. Projecting the turn for the last few months indicates that 2017 could turn around 10 MSEK in total. If both these conditions hold I guess that the bot will generate around 130 000 SEK. That would be very satisfying!

I have also implemented two new models, one for Home and one for Over/Under. These are non-competitive with the other models (meaning that they wont ever bet on the same market). I will start these models with very small stakes, and evaluate during the year. If I could get these models going on full stakes later this year it would increase turnover a lot….

Finally, happy new year to you all and let us make 2017 a magic betting year!