You see many fans and media members articulate term «Expected Goals Share» (xGF%) and we all hear «goals above expected» and «saves above expected» all the time.
I read a lot of write ups about different xG models and there is no simple explanation of how the xG values assigned or generated and to be honest it is for the reason, since this thing is not simple and it is based on advanced mathematics, statistics and data-analysis methods.
However, I'm here to try and explain how these guys create (they call it «build») their models and then produce and assign xG values for every unblocked shot in a game.
So let's make it clear first:
xG value is the statistical chance of the unblocked shot to become a goal.
xG is literally the most direct way to measure shot quality that exists, given the current Play-By-Play data.
This PBP data is made by NHL available to the public, but it has its inaccuracies, inconsistencies and omissions. Anyway that is the data that all public xG models are using, so nothing is perfect, obviously. These errors are also random, i.e. there's not a specific type of mistake that happens the same way very often. That means that in a large sample, the mistakes should mostly wash out (e.g. for every shot listed as too close, there's one listed as too far)
There are three public models that provide real-time xG values in public space:
� Money Puck (Creator: Peter Tanner)
� Natural Stat Trick (Creator: Brad Timmins)
� Evolving-hockey (Creators: Josh and Luke Younggren)