Some JSON feeds have or had several types of systemic errors. They are usually fixed programmatically.
The errors that we were able to detect so far are:
Sometimes, especially in the old boxscores, there are goals that do not have a goalie marked, nor are they marked with the Empty Net flag.
There is a general inconsistency about the misconduct/bench penalties and the assigned 'servedby' player. Sometimes the penalty minutes get added to his boxscore, sometimes they do not. Sometimes he's marked as the offender, but the penalty is a bench penalty.
As mentioned elsewhere, sometimes players who actually took part in the game are listed as scratches without any stats attributed to them as well as sometimes their jersey numbers are off.
For some obscure reason goalies' penalty minutes stat is 'pim', whereas for the skaters it is 'penaltyMinutes'.
Early games sometimes do not have the coaches listed.
In some games, both goalies on a team do not have a W|L|O|T decision.
Please note that the errors that didn't affect the data we ourselves look for may have flown under our radar. Such is for example, an invalid on-ice listing, where two goalies may be listed for the same team.
All this work would not be possible if not for the magnificent HTML::TreeBuilder module.