I have been testing the badging system, and it works really good.
The only hiccup (with I have a work-around for) is that when I add new badges to the grid in the future, which includes enabling the "Reserved" badges, this causes a change in the hash values and also in the arrays, so a "new badge alert" is issued.
I created a work-around which reverses the order of the PHP
array_diff_assoc() call and then compares the size of the two arrays (in forward and reverse order), and so when I bring a new badge on line to the grid, there is no alert generated.
So, I may bring all of the badges "online" even though they are now in "reserve" so that all badges will have a default color assigned; and then assigning a new color to a member (assigning the badge a state) will insure a proper alert.
These are small nuances from testing, and actually, could just bring them all on line and turn off alerts for a day or two, and then turn alerts back on, and it would work out as well.
At some point, when we code a new live application, we need to say "it's good enough" and stop trying to make the code perfect, and I'm getting close to that point.
Basically, the badging system and the alerts work fine and I continue to test them for exceptional situations, and basically, not 100% as I would like, but very good