Hi Travis,
Yes, to use an attribute as a legend variable for a map, it does need to be at the same level as the point or boundaries. The reason for this is that if you attempt to use a lower level attribute, CODAP makes no assumption about what aggregate measure you want to display; e.g. a mean or median of numeric values, a modal category, etc. So, by creating an attribute at the same (or higher) level and giving that new attribute a formula to compute a measure, you specify what you want to use for coloration.
Hope that helps,
Bill