Two years ago I coded up a small python model to simulate the world cup. The results back then were more or line with what the general predictions were; Brazil to win.
I updated the model for the Euro 2016 tournament. My data source for matches had gone, so I had to adjust that and I also introduced weights for previous games. Games that are friendly, or longer ago weigh less. The oldest matches I am taking into account are from just after the World Cup.
The results seem more different from the pundits than last time around. France is the favorite (25%), but that is because the home advantage which I set at 0.25 - historically the model has it between 0.2 and 0.3. Poland is the surprising number two with 21%. They did a decent job qualifying, had some good friendlies, so I find it hard to argue with.
Spain and England are basically tied at 11%. Of course Englands performance could very well decide whether Brexit happens or not, so this is important.
The model does not like Germany's chances much at 8%. The results from two years ago are now weighed only at 30% because of the time gone by.
Just to put my money where my model is, I made an actual bet for Poland to win