We repeat the check for grade range exceptions a lot, so maybe we should add an attribute like
```
    self.effective_priority_limit = self.priority_limit+2 if self.grade_range_exceptions else self.priority_limit+1
```