Keith, that's some good work, thanks for posting.
I've done something similar in the past using downloaded elevation data from mapmyride and using a simple Rise/Run = Slope to determine grade. Keep in mind that many maps, including mapmyride, don't take into consideration bridges and elevated roads, so be wary if you suddenly see large changes that could be attributed to dropping you in a lake and back up again.