So a little something I've been working on, it's still a work in progress but thought I would share it.
I basically look at all shots on target and look at the net difference in xG for each situation. So for example if a goalkeeper faces 10 shots in open play each with an xG of .5 and saves 6 he has has a net positive xG recorded of 0.5 *. If on the other hand he concedes 6 he will have a negative 0.5, and if he saves 5 shots the net balance will be 0.
That way we can look at shot quality in effect for each situation. I'm still trying to figure out how to mitigate sample size here. Even though it's a net balance I'm still concerned whether the result is distorted if some gk's face twice the number of shots others do (compare Hart to Alisson for an example of this). In the meantime I have restricted my analysis to Goalkeepers who have played more than 450 mins (5 games).
I also prefer to remove Penalties as they are 'rare' events with high xG values and therefore can skew the results but have included it here in the 2nd viz if you're interested.
* edit: Actually just realised that the net balance would be +/-1 but you get the gist