This is very well done! The only suggestion I have is maybe a small penalty for missing items. If there is one, I was very fortunate not to deal with it :-)
Thanks for the suggestion!