Latest updates

Check the Important info page for latest updates! (4 April 2024)

Wednesday, May 26, 2010

2010 FIFA World Cup simulation using Elo Ratings

By request :)

According to the Elo ratings, Spain will win the World Cup, defeating Brazil after PSO. England third, after a PSO win against Germany.

You can check the list of probable results. These are not my probable results, but the most likely results generated using the Elo ratings.


- goal difference - that's actually never used, since the only win by more than a goal is Brazil - Korea DPR 4 - 0
- Elo rating - that's why Mexico tops group A, Korea Republic comes second in group B and so on. Japan and Cameroon are still tied even using the Elo ratings, but it doesn't matter in the end.

In the KO stage, if the most likely result is a draw, the team with the higher Elo rating will win after PSO.

Group A

11/Jun South Africa - Mexico 2
11/Jun Uruguay - France X
16/Jun South Africa - Uruguay 2
17/Jun France - Mexico X
22/Jun France - South Africa 1
22/Jun Mexico - Uruguay X

Mexico 5, France 5, Uruguay 5, South Africa 0

Group B

12/Jun Korea Republic - Greece X
12/Jun Argentina - Nigeria 1
17/Jun Argentina - Korea Republic 1
17/Jun Greece - Nigeria X
22/Jun Greece - Argentina 2
22/Jun Nigeria - Korea Republic X

Argentina 9, Korea Republic 2, Greece 2, Nigeria 2

Group C

12/Jun England - USA 1
13/Jun Algeria - Slovenia 2
18/Jun Slovenia - USA X
18/Jun England - Algeria 1
23/Jun USA - Algeria 1
23/Jun Slovenia - England 2

England 9, USA 4, Slovenia 4, Algeria 0

Group D

13/Jun Serbia - Ghana 1
13/Jun Germany - Australia 1
18/Jun Germany - Serbia X
19/Jun Ghana - Australia X
23/Jun Australia - Serbia 2
23/Jun Ghana - Germany 2

Germany 7, Serbia 7, Australia 1, Ghana 1

Group E

14/Jun Netherlands - Denmark 1
14/Jun Japan - Cameroon X
19/Jun Netherlands - Japan 1
19/Jun Cameroon - Denmark X
24/Jun Cameroon - Netherlands 2
24/Jun Denmark - Japan X

Netherlands 9, Denmark 2, Cameroon 2, Japan 2

Group F

14/Jun Italy - Paraguay 1
15/Jun New Zealand - Slovakia X
20/Jun Slovakia - Paraguay X
20/Jun Italy - New Zealand 1
24/Jun Paraguay - New Zealand 1
24/Jun Slovakia - Italy 2

Italy 9, Paraguay 4, Slovakia 2, New Zealand 1

Group G

15/Jun Côte d'Ivoire - Portugal X
15/Jun Brazil - Korea DPR 1
20/Jun Brazil - Côte d'Ivoire 1
21/Jun Portugal - Korea DPR 1
25/Jun Korea DPR - Côte d'Ivoire 2
25/Jun Portugal - Brazil 2

Brazil 9, Portugal 4, Côte d'Ivoire 4, Korea DPR 0

Group H

16/Jun Honduras - Chile 2
16/Jun Spain - Switzerland 1
21/Jun Chile - Switzerland 1
21/Jun Spain - Honduras 1
25/Jun Chile - Spain 2
25/Jun Switzerland - Honduras X

Spain 9, Chile 6, Switzerland 1, Honduras 1

Round of 16

26/Jun Mexico - Korea Republic 1
26/Jun England - Serbia X England PSO
27/Jun Germany - USA 1
27/Jun Argentina - France X Argentina PSO
28/Jun Netherlands - Paraguay 1
28/Jun Brazil - Chile 1
29/Jun Italy - Denmark 1
29/Jun Spain - Portugal 1


02/Jul Netherlands - Brazil X Brazil PSO
02/Jul Mexico - England X England PSO
03/Jul Argentina - Germany X Germany PSO
03/Jul Italy - Spain 2


06/Jul Brazil - England 1
07/Jul Germany - Spain 2

Match for third place

10/Jul England - Germany X England PSO


11/Jul Brazil - Spain X Spain PSO

About me:

Christian, husband, father x 3, programmer, Romanian. Started the blog in March 2007. Quit in April 2018. You can find me on LinkedIn.


  1. Thank you very much, great job! We all know that this is just a simulation, even me (I'm spanish); and it's really difficult for Spain to reach not only the final, but the semifinals, specially If we look back the history of Spain national football team. It would be a dream come true!

    It would be interesting to know your probable results, what do you think it's gonna happen at this WC, Edgar? Which are your favourite teams?

    Best regards,


  2. You're welcome Juan!

    I don't know what will happen - probably one of the big favorites will win it. I'm not very good at predictions :)

    Favorite teams? Hmm... Since Romania are not there, I'll root for (in alphabetical order): Australia, Chile, New Zealand, Korea Republic, Paraguay, Serbia, South Africa, USA. I hope teams from CAF/CONCACAF/AFC/OFC perform well.

  3. I like it, it predicts a lot of entertaining matches and results.

    But it's too simple. England winning 2 matches in a row by PSO. That's not gonna happen.

    I personally stand for Slovakia, USA and Argentina. Hope the WC2010 will be the best ever ;)

  4. I put together a spreadsheet to simulate WC2010 results. You can get it here.

  5. Hi Edgar:

    You could make this simulation while thw WC, after each round (after first round, 1/8, 1/4, etc.). What do you think about it?

    It's really interesting, after the WC we can test if this is a good way or not to know what's gonna happen at a WC, EURO, etc. (specially with the ranking before the WC). Perhaps you can make a new one before the WC, only if with the results of the friendlies there have been changes. I don't know if this means too much work.

    Once again, great job.

    Best regards,


  6. Juan, there have been no big changes. Some matches changed from PSO win to 90 minutes win, but it's still Spain defeating Brazil in the final after PSO.

    I'll see about the simulations - if I'll have the time between rounds.

  7. Edgar, concerning your Tukhi spreadsheet:

    The sheet isn't working (Tukhi is, however). From line 22 down (group stage predictions) on sheet Simulation, there are all #VALUE! errors.

    The problem stems from the ARRAY.SORT function in those cells. What is that? C, Java, or something? In any case, the sheet does not work with that function being called. Perhaps you've created a macro in your sheet that defines this function?

  8. My bad, not Edgar's. Reinstall Tukhi from here and you should be good.

    ARRAY.SORT is my function that calls the C++ library function std::sort. Dunno why Excel doesn't have something like this as a built-in.

  9. Oh, sorry Kal. Didn't realize that was your post. In any case, Tukhi looks exactly the same as before...

    I recreated the spreadsheet with updated ELO ratings and a different system where you used the array sort (max, and second largest). Here's a link to the file.

    Unless I did something wrong, in the aggregate, it just always predicts the winners in the exact order and proportion of their ELO ratings. For example, Brazil always wins 6% of the time. Either I messed up, or the logic here is not right. All this does is use random numbers which converge by the law of large numbers to Brazil winning due to its superior ELO rating.

    The results SHOULD be something like Brazil: 52% win, Spain: 43% win, Argentina: 4% win....and the rest near 0. Korea DPR is never going to win the whole thing, or at least .000001% of the time. Currently, its always at ~1.2%.

    We should make a spreadsheet that reflects these facts, and can ultimately fill in a bracket. How would we go about that? My brain is fried :/

  10. Oops, here's the link

  11. That shows the spreadsheet logic is correct. :-)

    I use the incorrect assumption that the probability of winning is proportional to their rating. Are the FIFA rating Elo ratings? I know a lot about chess Elo ratings but make no such claim when it comes to football.

    If team A has rating x and team B has rating y, what are the win/lose/tie probabilities?

    One nice feature of the spreadsheet is that you can just fill in the match results as they happen.

  12. I've updated my spreadsheet to use ELO ratings and now model the individual group stage games.

    One parameter I'm not sure how to set is called DrawRating. It determines how often draws occur in units of ELO rating points. Value 0 means no draws ever, large values mean all group stage matches are drawn.

    I'm getting Spain slightly edging out Brazil, 27% vs. 25%, which makes me think there are still some bugs in my implementation.

    Same link as before. The new spreadsheet is

  13. Any idea what has happened to the maintainer at ?

  14. I believe Kiril has a limited bandwidth for his website or something like that.

  15. Great job, it was a really good simulation! With this method, you were right with the champion (most important prediction), a semifinal (2 teams), 2 1/4 final matches(4 teams), 2 1/8 final matches (12 teams).

    I think that It would be great if you could do posts like this in the future (EURO, AFC cup, Gold cup, etc.), and also for the qualifying groups (for example, with the EURO 2012 qualification). I suppose that it's too much work, it's just an idea.

    Once again, great job! It's really interesting this blog, I check it almost every day!

    Best regards,


  16. Thanks Juan!

    I'll try - maybe after the August 11th friendlies.