Gradebook calculation changes

Jump to: navigation, search

Note: You are currently viewing documentation for Moodle 3.3. Up-to-date documentation for the latest stable version of Moodle is probably available here: Gradebook calculation changes.

Note: The following information only applies if you see a message displayed in the gradebook following a site upgrade, or after restoring a course backup from a different version of Moodle.

Occasionally there are error fixes which can affect gradebook calculations in certain courses. As part of the upgrade process, such courses are identified and a message is displayed in the gradebook informing teachers that error fixes may result in some grades being changed. Details of these changes are provided below. The 8-digit version number is the date of the fix.

It is recommended that the errors are fixed by clicking the button 'Accept grade changes and fix calculation errors'. Until this is done, the message will continue to be displayed in the gradebook (only for teachers; students can't see it). The old gradebook calculations will still be used (ensuring grades remain unchanged), however they are likely to result in more errors if grades are updated in the future.

20150619 - Calculation of extra credit item weights when using natural aggregation

Two errors were fixed:

  1. Overriding the weight of the extra credit item can lead to changes in other items' weights and random final grades
  2. The automatic weight of an extra credit item was dependent on the overrides of the normal item's weights

The second error was especially noticeable for students with excluded grade items (for example, when they are hidden or empty).

For example, a category has two normal grade items and one extra credit item. If the maximum grades for each item are the same, the weights of the three items will be: 50%, 50% and 50%. However if the weights of the normal items are overridden to be 50% and 50%, then the weight of the extra credit item would become 0%. If the teacher overrode the weight of the first item to 80%, the second item would automatically become 20% (correct) and the extra credit would also become 20% (incorrect).

The correct behaviour (after the fix): If the weight of extra credit item is not overridden, it should be itemmaxgrade / totalmaxgrade , where totalmaxgrade does not include the extra credit item. In the example, the weight of the extra credit item should always be 50%.

See MDL-49257 for further details including screenshots.

20150627 - Calculated grade items

Two errors affecting grades were fixed:

  1. Changing the maxgrade for a category item with a calculation that has existing grades results in grades displayed out of the old maximum grade, not the updated one. This can cause flow on affects for automatic weights with Natural Aggregation.
  2. Values for grade items with a calculation are always displayed from 0 to 100 regardless of the minimum and maximum grades for the grade item. This can cause flow on affects for automatic weights with Natural Aggregation.

These fixes will impact existing grades by correcting the maximum grade for existing grade items.

See MDL-48239 for further details.

20160518 - letter grade boundary issue

Some letter boundaries, when achieved by a student, would not give the student the associated grade. For example. If the letter grades were updated so that the letter boundary for a C was 57 and a D was 50, a student that received 57 for a grade would get a D instead of a C. This problem only affects sites that have edited the letter grades, and not all letter boundaries have this problem. The default settings do not produce this error. This has now been fixed, but the course gradebook will be frozen if the system has detected that the course has been affected by an altered letter grade boundary. There is a possibility that student's letter grades will change after the gradebook freeze has been accepted. see MDL-45390 for further details.

The upgrade step that freezes the gradebook above for the letter grade boundary is not 100% accurate. The upgrade step was optimised for speed and will freeze any course that has the potential to be a problem. The script may freeze more courses than it needs to. To determine if a course is definitely affected requires a lot of processing. We have created a script that will go through each of the courses and analyse the grades to see if the grade displayed will actually change. Due to the complex nature of the gradebook, this requires checking how the grade will displayed from a teachers perspective as well as the student perspective and is consequently very slow.

If you wish to check your site and see which courses are definitely affected then you can find the script on issue MDL-55066.


  • The script can only be run after the upgrade has been done. The upgrade step is cautious with the courses it freezes and so the script uses the frozen courses as a base to do its calculations.
  • The script is a Command Line Interface (CLI) and is to be run from the command line.
  • The script has two settings.
php 57script.php

Running the script with no options will only produce a report of which courses should be frozen and which should not. No alterations to the freeze will be made.

php 57script.php --update

Running the script with the "update" option will unfreeze courses that it deems do not actually require freezing.