Found a post the other day from the developer of a football betting advice site, who talks about his personal experience in setting up the site.


How to create a successful online betting shop Treble Red Media
Found a post the other day from the developer of a football betting advice site,

Many people will probably be interested in this article, because apart from the story itself, there are a couple of things to pay attention to.  Firstly, as I understand it, the site simply posts match predictions based on certain algorithms. That's it. There's no registration or subscription to recommendations (although the Terms and Conditions do say Member Account). Secondly, there are no referral links. You just go to a match you are interested in and then you are offered a list of betting shops -see Betting Sites in India - recommended bets and a link to the shop itself. 

Well, thirdly, the site only covers football and only some countries (England, Spain, Italy, Germany, France). There is a good opportunity to create a similar site for a user. And then you know everything yourself :) Okay, moving on to the story itself.

Let's begin

Two years ago I and a colleague of mine were discussing a project we had been working on for a long time. The essence of the project was to predict the outcome of football matches and make that information freely available on the site.  Since I work as a software engineer in a company where machine learning is the core of their business, I decided to revive the project and try, as many people like to say, "to beat the bookies".

Evaluating our capabilities 

At first it seemed impossible to us to create a site that could predict the outcome of football games. But in fact there are good reasons to believe otherwise.  No one will dispute that betting shops invest huge sums of money in obtaining large amounts of data and various statistical models. But even so, they manage to make mistakes. Take 2002, for example, when William Hill generously offered 200/1 on the victory of the two-time world ski jumping champion. Other bookmakers on the same day offered far less - 10/1. In the end that same athlete won, hitting William Hill's pockets hard.

Naturally, we did not expect that such incidents would happen every week. But we realized that we don't need such critical mistakes from the bookmakers to make a decent and stable profit.  We began to delve even deeper into the subject and slowly began to notice certain patterns. For example, the competition among bookmakers, which greatly cuts into the profits of each company. This can be seen with the naked eye. Take the same English Premier League - teams from the big four always attract betting fans. Because of this, bookmakers have to make concessions and offer good odds.  Another funny trend. The higher the bet, the higher the bookmaker's revenue. For this reason, it is wise to bet on stable favourites rather than looking for underdogs.  With a relatively small amount of knowledge, we decided it's time to go for it.  

Choosing a technology stack 

We needed 2 elements: the system responsible for collecting information and building prediction algorithms and the website itself where we are going to publish results.  For convenience and simplicity we decided to use the same language for both elements - Python (easy to learn + lots of libraries). Given the relatively small amount of data we will manipulate, we chose Scikit-Learn for machine learning and Scrapy for scanning match results and bookmaker history from online sources.  On paper it all seemed like a perfect plan, but there was one hitch - I didn't know Python and had never made a website before. This is where the fun part started.  

From scribbled notes to a finished website 

I was well acquainted with C# and Java, so learning Python was very easy. Additionally I watched Andrew Ng's lectures on YouTube. After a while I was ready to start getting my hands dirty.