Now that I think about this, self.predicted_score gets all the predicted scores, and then also adds in the score (which makes sense, since the predicted score is (in pseudocode) ```points_known + points_predicted/points_total.```

But in student_data, predicted_score = ```@predicted_score ||= @score + grades.where(course: course).predicted_score```, where ```@score ||= sums.released_grade_score + sums.earned_badge_score + team_score```

So I think I'm double dipping a bit here -- predicted_score has the score, and then it adds score in again in student_data. I think I should either leave off the score here in the predicted_score method (ie, don't add self.score)

Or, in student data, do 

```ruby
@predicted_score ||= grades.where(course: course).predicted_score + sums.earned_badge_score + team_score
```

Does that analysis seem correct @JangoSteve ?