One of our instructors approached me today with a situation that has me a bit confused. Two students have been turning in most of their work and getting great grades, in fact they are A students in the 96+ percentile. But they both showed having a D for their current course.
As I inspected I could not find anything just looking at the moodle interface, so I had a look at the data and found that the final grade is being calculated differently than instructed. Student records in mdl_grade_grades have a rawgrademax of 70 for the final grade. In mdl_grade_items the grademax column has a value of 100. Strangely, sometimes the grades are being calculated using the final score divided by the mdl_grade_grades.rawgrademax, and the correct score (96%) shows. But a few mouse clicks later, the final grade is obviously being calcuated by the final score divided by the mdl_grade_items.grademax, which in this case is 100, and so the 68 score is being divided by a higher number and giving a poor final score.
My thoughts were to fix the data in mdl_grade_grades by setting the rawgrademax to 100. After doing that, it got overwritten by another instance of the course recalculating grades. And once again the rawgrademax is 70 instead of 100.
My questions are,
- What causes the mdl_grade_grade.rawgrademax to be a different value than mdl_grade_items.grademax?
- Shouldn't they be the same values?
- How do I fix this situation?
- How do I find these problems before students start attending? Can I simply run queries looking for mismatching rawgrademax and grademax? (there are many records like this by the way)
- How do I cause moodle to recalculate grades without changing some values or overriding some values somewhere?