Read up!

As described in previous post I went back to the drawing board and redesigned my models. To get some inspiration and motivation I bough a few books and read them carefully. I did not anticipate to get complete “+110% ROI MEGA DELUXE MODELS” but my hope was to get some inspiration which I could use when creating my own models and strategies. The books I read were by James Butler and Joseph Buchdahl and I can certainly recommend them if you are into the game of betting .


“Programming for Betfair” & “Betfair trading techniques” by James Butler, “Squares & Sharps, Suckers & Sharks” by Joseph Buchdahl.

Some of the new things in my models would not have been there without these books, thanks James and Joseph!




Update of Results YTD

The last months have been a real roller coaster ride! As mentioned in previous post my ROI started to decline in February/March, but I stayed with my models all the way into July. There I took the decision to accept that my models had lost their edge, and I went back to my analysis tools and after some hard work came up with a new set of models to implement. They were implemented in the middle of August.

It might sound like a trivial thing to determine when your models are without edge, but it is not! Betting volatility is hard to see through, and my models had served me well for a couple of years (with only minor changes during that time). Betting is a long term game, but in retrospective I held on to my models to long. Lesson learned: Update and improve models more frequent!

My new models are in many ways much better than previous – They contain more pricing variables (and hopefully a more accurate odds calculation)  and they are estimated on more recent data. Now I need to wait and follow them for a while before optimizing them.

I have updated some graphs which contains accumulated figures of turnover, profit/loss and yield for 2016 and 2017 YTD.


I have exactly the same behavior 2017 as I did in 2016, it starts great and then it  declines from February/March. My yield now 2017 YTD is 0.45%, for 2016 same time (week 36) was 0.65%.

The turnover is much bigger than 2016, the only reason for this is that my bank has grown and therefor also my stakes. I just passed 7.000.000 SEK in 2017, and at the same time in 2016 I had staked around 3.000.000 SEK. Due to the fact that I am using new models I decided to change my requested stake size from 3% to 2%. Therefor I expect the accumulated turnover to grow slower for the rest of the year.

Thanks to the higher turnover I also have a higher PL (31.000 SEK 2017 YTD) compared with 20.000 SEK at the same time in 2016.

In 2016 I had a real good 4th quarter, it will be very exciting to see if my new models will continue to perform for the rest of the year.


Betfair Premium Charge simulation

As my bot now has a track record of 2 years in profitability I decided to do some research in the topic of Premium Charge on Betfair. As of today I am not paying any kind of additional charges, but I guess that if my bot keeps moving money to my account I will sooner or later reach the PC limit? Is there some strategy that I could use to optimize my model between profit and charges?

This will be a two part post. This first post will focus on the behavior of PC charges in the context of my model, the second post will focus on optimizing the model with charges as one of the factors.

Right now my total commission to gross profit ratio is 37.8%. All those years turning over money for a small loss are finally paying off! But the ratio is declining and if I have understood everything correct the first magic limit is 20%, when hitting that limit I will always need to pay the difference up to 20% in PC charge.

If I should be even more successful (that is my plan) I could eventually hit the Super Premium Charge (I need to have net profit of £250.000, which is far from my current profit…). In that case I could be eligible to pay the difference up to somewhere between 40-60% based on my actual ratio.

It is hard to get a grip of what that would mean to my kind of betting, so to clarify I created a small simulation where I simulate the behavior of my model (same kind of odds and tested it for different gross ROI%) and this is what I came up with:

The above chart shows which kind of commission/profit ratio (from now C/P Ratio) my model would generate for different edges.

A. This is the current expected yield of my model right now (1.3%). At this point I expect my C/P Ratio to be around 28 %.

B. This is the point to where I can adjust my model without reaching the Premium Charge (around 2% yield).

C. If I ever reach the level of Super Premium Charge (£250.000), I will need to hold my model up to max 0.9 % yield to avoid paying that charge.

The above chart show how my model would be effected by Premium Charge (PC) and Super Premium Charge (SPC). As an example I have plotted the line to show the effect of a model returning a gross yield of 3%. The PC would bring it down to 2.7 %, and finally when hitting SPC it would be brought down to 2.1 %.

How to conclude on this?

I now know that I can calibrate my model up to a gross yield of 2 % without paying the PC, and if I reach the SPC limit I must keep the model below 0.9% yield to avoid SPC.

In the next post I will apply these curves to my own models, calibrate them at different yield% and see how many bets are generated at different levels and finally calculate my expected monetary win (yes, I prefer to maximize money and not minimize charges!).




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%.


What is it about?

Must of you who end up at this blog are probably quite deep into the business and are well aware of the basic principles of betting. But for you who are not this post will give you a brief insight.

Let us take a real example from today’s soccer matches, West Ham vs Manchester United (Third round FA Cup). The odds pre kick off on Betfair were:

West Ham – 4.5
Draw – 3.75
Manchester United – 1.93

These odds can be converted to implied probabilities by taking 1/odds, in this case:

West Ham – 22.2%
Draw – 26.7%
Manchester United – 51,8%

If we add them up we get 100.7%. If we had a perfect fair market it would sum up to 100% (as one of the three options must incur). The 0.7% is what we call overround, it can be considered as the “unfairness” of the bet. That “unfairness” is what normal bookmakers make a living of (such as Svenska Spel), the bigger it is the better I have to be if I wanna make a long term profit. Playing at Svenska Spel is not an option for me for many reasons, the main reason is that their over-rounds (= their guaranteed profits) is in the range of 10-25% instead of 0.x%.

Anyway, in this example my own math calculated the probabilities and the corresponding odds to:

West Ham – 3.64
Draw – 3.73
Manchester United – 2.14

In this case my algorithm made a buy on West Ham, because the odds given on Betfair was about 4.5/3.64 = 1.24 <=> 24% value!

So the idea is that if I keep betting on overvalues the I will in the long run make a profit. The outcome of one single match is not relevant, it is the trend over many matches that makes the story.

In this special case Manchester United managed to make a goal in (90+1) minute of the match, which sent my bet from heaven to hell…. But that is the nature of randomness, something I probably will bring up many times on this blog.

Have a good one!




I am now entering my 8 (eight!) year as an amateur punter on Betfair. So where am I after all those years?

My lifetime Profit/Loss on betfair is as we speak -3.900 SEK, made from about 35.000 bets with a total turnover around 4.100.000 SEK (ROI -0.1%).

There have been LOT of work for no profit at all … But I still I don’t doubt a second that I can start to make descent profits from my models, I am getting closer and closer and I really think that this year will be a break point where I turn my lifetime PL into plus side and actually starts making some money.

Atleast my competence within betting has improved significantly during those years. When I started out in 2008 I tested simple ideas (like long shot bias) and spent hours every day to place bets.

In 2009 I started to automatise it by using screen scraping methods in combination with excel, I still didn’t do real mathematical models – I just filtered the outputs and adjusted my betting criterion’s from that.

In 2010 I took interest in the mathematical side of betting, started to build models and calculate my own odds.

In 2011 I developed my first bot, totally automatising the process of collecting odds and data as well as placing bets. I programmed my bot to connect to the Betfair API which finally gave me something more stable than excel (and imacros..).

Since then its been a battle of finding better models with a real edge, as well as developing the bot.

2014 – Went Inplay instead of Pregame, and from this point I think that my models actually have edge (although a small one). During the last year I also learned the importance of having good money management…

2015 – Aim to improve betting turnover and ROI, I will keep you up-to-date with my progress 🙂

My key driver for all those years is probably more the “treasure hunt” than the treasure itself….


Is it possible to beat the professionals?

Cassini, writer of the excellent blog Green all Over wrote a very interesting piece a few days ago regarding hobby traders vs the pro’s in the betting industry. He meant that its impossible for the average hobby trader to get some kind of edge over the pro’s on those markets where there is much action (for example inplay soccer). He means that the pro’s have an advantage in information which in the long run will win over the hobby trader.

Well, I dont agree with Cassini… I think its very much possible, if you are smart and choose your battles.

I know that it would be impossible for me to compete with pro’s in all markets and all kind of situations. My trick is that I have choosed to become a “real” specialist within a very narrow scenario in inplay soccer.

I dont model all situations in all soccer matches, and I dont try to model all kind of markets. I choose my battles!

I am sure that I now beat most of the pro’s in my little well defined box, just because I spend all my available time to learn everything in that little box.

So my tip to you who struggle with your strategies and cant find an edge:

Choose a league, situation, team or whatever and be the best in that field, by doing so you will eventually find edge there. Good luck!


New place to blog

Hi and welcome to my new place! Since a couple of years blogging on I now decided to make it even more serious as well as shifting focus towards bot betting and data analytics.

I will transfer the most relevant posts from my old blog to this one. Always feel free to comment a post or send me a mail!

Happy betting.