<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.moodle.org/dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bobpuffer</id>
	<title>MoodleDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.moodle.org/dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bobpuffer"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/Special:Contributions/Bobpuffer"/>
	<updated>2026-06-09T03:36:51Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46129</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46129"/>
		<updated>2014-08-07T15:34:24Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* User interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
# All of the gradebook default settings - at the admin level - should be forcible and hideable. Similar to what is done for the site admin &amp;gt; Grades &amp;gt; Grade category settings - ex: Drop the lowest&lt;br /&gt;
# Default values should be called ‘checked’ or ‘unchecked’ instead of Default:Yes or Default:No unless the values are ‘Yes/No’ (see attachment)&lt;br /&gt;
# Dropdowns that contain 2 or 3 items should be radio buttons or a checkbox depending on the options. If a yes/no, checkbox&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
[[File:GraderReportPrefs.png|200px|thumb|left|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Re-organize the user report admin settings: Each report needs a cog that takes you straight to the settings and preferences for that report instead of having a settings tab with all report settings.&lt;br /&gt;
# Preferences and settings for a report should be combined on the same pop-up screen&lt;br /&gt;
# As noted in the example, the default value should be clearly displayed in its own column&lt;br /&gt;
# Access to these Prefs and settings should be through using the standard cog icon&lt;br /&gt;
# Each gradebook report should have a Preferences and settings pop-up&lt;br /&gt;
# &amp;quot;Preferences&amp;quot; and &amp;quot;Settings&amp;quot; should be removed from the drop down and tabs for the gradebook&lt;br /&gt;
# It should be clearly noted on the pop-up which items affect anyone using the course (Settings) and which only affect the view of the current user (Preferences)&lt;br /&gt;
&lt;br /&gt;
 [[File:CatsAndItemsSettings.png|200px|thumb|left|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Create a &amp;quot;Setup&amp;quot; (Categories and items) pop-up whereby the current user can change what columns are displayed in the Setup screen&lt;br /&gt;
# Access through the standard cog icon&lt;br /&gt;
# Standard Moodle add/ remove arrow interface&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
==New functionality==&lt;br /&gt;
# UMN has added additional navigation: Report item order; Import order;Export order&lt;br /&gt;
# Sort order ability for scales&lt;br /&gt;
# Adding a toggle for view hide multiplicator and the offset (similar to toggle for keep lowest)&lt;br /&gt;
# Add the calculation setting to administrative settings giving them the ability to make it available or not available.&lt;br /&gt;
# Preconfigured setting packs&lt;br /&gt;
&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46128</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46128"/>
		<updated>2014-08-07T15:24:28Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* User interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
# All of the gradebook default settings - at the admin level - should be forcible and hideable. Similar to what is done for the site admin &amp;gt; Grades &amp;gt; Grade category settings - ex: Drop the lowest&lt;br /&gt;
# Default values should be called ‘checked’ or ‘unchecked’ instead of Default:Yes or Default:No unless the values are ‘Yes/No’ (see attachment)&lt;br /&gt;
# Dropdowns that contain 2 or 3 items should be radio buttons or a checkbox depending on the options. If a yes/no, checkbox&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
[[File:GraderReportPrefs.png|150px|thumb|left|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Re-organize the user report admin settings: Each report needs a cog that takes you straight to the settings and preferences for that report instead of having a settings tab with all report settings.&lt;br /&gt;
# Preferences and settings for a report should be combined on the same pop-up screen&lt;br /&gt;
# As noted in the example, the default value should be clearly displayed in its own column&lt;br /&gt;
# Access to these Prefs and settings should be through using the standard cog icon&lt;br /&gt;
# Each gradebook report should have a Preferences and settings pop-up&lt;br /&gt;
# &amp;quot;Preferences&amp;quot; and &amp;quot;Settings&amp;quot; should be removed from the drop down and tabs for the gradebook&lt;br /&gt;
# It should be clearly noted on the pop-up which items affect anyone using the course (Settings) and which only affect the view of the current user (Preferences)&lt;br /&gt;
&lt;br /&gt;
 [[File:CatsAndItemsSettings.png|150px|thumb|left|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Create a &amp;quot;Setup&amp;quot; (Categories and items) pop-up whereby the current user can change what columns are displayed in the Setup screen&lt;br /&gt;
# Access through the standard cog icon&lt;br /&gt;
# Standard Moodle add/ remove arrow interface&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
==New functionality==&lt;br /&gt;
# UMN has added additional navigation: Report item order; Import order;Export order&lt;br /&gt;
# Sort order ability for scales&lt;br /&gt;
# Adding a toggle for view hide multiplicator and the offset (similar to toggle for keep lowest)&lt;br /&gt;
# Add the calculation setting to administrative settings giving them the ability to make it available or not available.&lt;br /&gt;
# Preconfigured setting packs&lt;br /&gt;
&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46127</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46127"/>
		<updated>2014-08-07T15:23:54Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* User interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
# All of the gradebook default settings - at the admin level - should be forcible and hideable. Similar to what is done for the site admin &amp;gt; Grades &amp;gt; Grade category settings - ex: Drop the lowest&lt;br /&gt;
# Default values should be called ‘checked’ or ‘unchecked’ instead of Default:Yes or Default:No unless the values are ‘Yes/No’ (see attachment)&lt;br /&gt;
# Dropdowns that contain 2 or 3 items should be radio buttons or a checkbox depending on the options. If a yes/no, checkbox&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
[[File:GraderReportPrefs.png|150px|thumb|left|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Re-organize the user report admin settings: Each report needs a cog that takes you straight to the settings and preferences for that report instead of having a settings tab with all report settings.&lt;br /&gt;
# Preferences and settings for a report should be combined on the same pop-up screen&lt;br /&gt;
# As noted in the example, the default value should be clearly displayed in its own column&lt;br /&gt;
# Access to these Prefs and settings should be through using the standard cog icon&lt;br /&gt;
# Each gradebook report should have a Preferences and settings pop-up&lt;br /&gt;
# &amp;quot;Preferences&amp;quot; and &amp;quot;Settings&amp;quot; should be removed from the drop down and tabs for the gradebook&lt;br /&gt;
# It should be clearly noted on the pop-up which items affect anyone using the course (Settings) and which only affect the view of the current user (Preferences)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [[File:CatsAndItemsSettings.png|150px|thumb|left|Category and item columns]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Create a &amp;quot;Setup&amp;quot; (Categories and items) pop-up whereby the current user can change what columns are displayed in the Setup screen&lt;br /&gt;
# Access through the standard cog icon&lt;br /&gt;
# Standard Moodle add/ remove arrow interface&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
==New functionality==&lt;br /&gt;
# UMN has added additional navigation: Report item order; Import order;Export order&lt;br /&gt;
# Sort order ability for scales&lt;br /&gt;
# Adding a toggle for view hide multiplicator and the offset (similar to toggle for keep lowest)&lt;br /&gt;
# Add the calculation setting to administrative settings giving them the ability to make it available or not available.&lt;br /&gt;
# Preconfigured setting packs&lt;br /&gt;
&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46126</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46126"/>
		<updated>2014-08-07T15:23:16Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* User interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
# All of the gradebook default settings - at the admin level - should be forcible and hideable. Similar to what is done for the site admin &amp;gt; Grades &amp;gt; Grade category settings - ex: Drop the lowest&lt;br /&gt;
# Default values should be called ‘checked’ or ‘unchecked’ instead of Default:Yes or Default:No unless the values are ‘Yes/No’ (see attachment)&lt;br /&gt;
# Dropdowns that contain 2 or 3 items should be radio buttons or a checkbox depending on the options. If a yes/no, checkbox&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
[[File:GraderReportPrefs.png|150px|thumb|left|Report Preferences/ Settings]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Re-organize the user report admin settings: Each report needs a cog that takes you straight to the settings and preferences for that report instead of having a settings tab with all report settings.&lt;br /&gt;
# Preferences and settings for a report should be combined on the same pop-up screen&lt;br /&gt;
# As noted in the example, the default value should be clearly displayed in its own column&lt;br /&gt;
# Access to these Prefs and settings should be through using the standard cog icon&lt;br /&gt;
# Each gradebook report should have a Preferences and settings pop-up&lt;br /&gt;
# &amp;quot;Preferences&amp;quot; and &amp;quot;Settings&amp;quot; should be removed from the drop down and tabs for the gradebook&lt;br /&gt;
# It should be clearly noted on the pop-up which items affect anyone using the course (Settings) and which only affect the view of the current user (Preferences)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [[File:CatsAndItemsSettings.png|150px|thumb|left|Category and item columns]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Create a &amp;quot;Setup&amp;quot; (Categories and items) pop-up whereby the current user can change what columns are displayed in the Setup screen&lt;br /&gt;
# Access through the standard cog icon&lt;br /&gt;
# Standard Moodle add/ remove arrow interface&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
==New functionality==&lt;br /&gt;
# UMN has added additional navigation: Report item order; Import order;Export order&lt;br /&gt;
# Sort order ability for scales&lt;br /&gt;
# Adding a toggle for view hide multiplicator and the offset (similar to toggle for keep lowest)&lt;br /&gt;
# Add the calculation setting to administrative settings giving them the ability to make it available or not available.&lt;br /&gt;
# Preconfigured setting packs&lt;br /&gt;
&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46125</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46125"/>
		<updated>2014-08-07T15:22:53Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* User interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
# All of the gradebook default settings - at the admin level - should be forcible and hideable. Similar to what is done for the site admin &amp;gt; Grades &amp;gt; Grade category settings - ex: Drop the lowest&lt;br /&gt;
# Default values should be called ‘checked’ or ‘unchecked’ instead of Default:Yes or Default:No unless the values are ‘Yes/No’ (see attachment)&lt;br /&gt;
# Dropdowns that contain 2 or 3 items should be radio buttons or a checkbox depending on the options. If a yes/no, checkbox&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
[[File:GraderReportPrefs.png|150px|thumb|left|Report Preferences/ Settings]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Re-organize the user report admin settings: Each report needs a cog that takes you straight to the settings and preferences for that report instead of having a settings tab with all report settings.&lt;br /&gt;
# Preferences and settings for a report should be combined on the same pop-up screen&lt;br /&gt;
# As noted in the example, the default value should be clearly displayed in its own column&lt;br /&gt;
# Access to these Prefs and settings should be through using the standard cog icon&lt;br /&gt;
# Each gradebook report should have a Preferences and settings pop-up&lt;br /&gt;
# &amp;quot;Preferences&amp;quot; and &amp;quot;Settings&amp;quot; should be removed from the drop down and tabs for the gradebook&lt;br /&gt;
# It should be clearly noted on the pop-up which items affect anyone using the course (Settings) and which only affect the view of the current user (Preferences)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [[File:CatsAndItemsSettings.png|150px|thumb|left|Category and item columns]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Create a &amp;quot;Setup&amp;quot; (Categories and items) pop-up whereby the current user can change what columns are displayed in the Setup screen&lt;br /&gt;
# Access through the standard cog icon&lt;br /&gt;
# Standard Moodle add/ remove arrow interface&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
==New functionality==&lt;br /&gt;
# UMN has added additional navigation: Report item order; Import order;Export order&lt;br /&gt;
# Sort order ability for scales&lt;br /&gt;
# Adding a toggle for view hide multiplicator and the offset (similar to toggle for keep lowest)&lt;br /&gt;
# Add the calculation setting to administrative settings giving them the ability to make it available or not available.&lt;br /&gt;
# Preconfigured setting packs&lt;br /&gt;
&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46124</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46124"/>
		<updated>2014-08-07T15:22:16Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* User interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
# All of the gradebook default settings - at the admin level - should be forcible and hideable. Similar to what is done for the site admin &amp;gt; Grades &amp;gt; Grade category settings - ex: Drop the lowest&lt;br /&gt;
# Default values should be called ‘checked’ or ‘unchecked’ instead of Default:Yes or Default:No unless the values are ‘Yes/No’ (see attachment)&lt;br /&gt;
# Dropdowns that contain 2 or 3 items should be radio buttons or a checkbox depending on the options. If a yes/no, checkbox&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
[[File:GraderReportPrefs.png|150px|thumb|left|Report Preferences/ Settings]]&lt;br /&gt;
&lt;br /&gt;
Re-organize the user report admin settings: Each report needs a cog that takes you straight to the settings and preferences for that report instead of having a settings tab with all report settings.&lt;br /&gt;
# Preferences and settings for a report should be combined on the same pop-up screen&lt;br /&gt;
# As noted in the example, the default value should be clearly displayed in its own column&lt;br /&gt;
# Access to these Prefs and settings should be through using the standard cog icon&lt;br /&gt;
# Each gradebook report should have a Preferences and settings pop-up&lt;br /&gt;
# &amp;quot;Preferences&amp;quot; and &amp;quot;Settings&amp;quot; should be removed from the drop down and tabs for the gradebook&lt;br /&gt;
# It should be clearly noted on the pop-up which items affect anyone using the course (Settings) and which only affect the view of the current user (Preferences)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [[File:CatsAndItemsSettings.png|150px|thumb|left|Category and item columns]]&lt;br /&gt;
Create a &amp;quot;Setup&amp;quot; (Categories and items) pop-up whereby the current user can change what columns are displayed in the Setup screen&lt;br /&gt;
# Access through the standard cog icon&lt;br /&gt;
# Standard Moodle add/ remove arrow interface&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
==New functionality==&lt;br /&gt;
# UMN has added additional navigation: Report item order; Import order;Export order&lt;br /&gt;
# Sort order ability for scales&lt;br /&gt;
# Adding a toggle for view hide multiplicator and the offset (similar to toggle for keep lowest)&lt;br /&gt;
# Add the calculation setting to administrative settings giving them the ability to make it available or not available.&lt;br /&gt;
# Preconfigured setting packs&lt;br /&gt;
&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46123</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46123"/>
		<updated>2014-08-07T15:21:57Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* User interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
# All of the gradebook default settings - at the admin level - should be forcible and hideable. Similar to what is done for the site admin &amp;gt; Grades &amp;gt; Grade category settings - ex: Drop the lowest&lt;br /&gt;
# Default values should be called ‘checked’ or ‘unchecked’ instead of Default:Yes or Default:No unless the values are ‘Yes/No’ (see attachment)&lt;br /&gt;
# Dropdowns that contain 2 or 3 items should be radio buttons or a checkbox depending on the options. If a yes/no, checkbox&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
[[File:GraderReportPrefs.png|150px|thumb|left|Report Preferences/ Settings]]&lt;br /&gt;
&lt;br /&gt;
Re-organize the user report admin settings: Each report needs a cog that takes you straight to the settings and preferences for that report instead of having a settings tab with all report settings.&lt;br /&gt;
# Preferences and settings for a report should be combined on the same pop-up screen&lt;br /&gt;
# As noted in the example, the default value should be clearly displayed in its own column&lt;br /&gt;
# Access to these Prefs and settings should be through using the standard cog icon&lt;br /&gt;
# Each gradebook report should have a Preferences and settings pop-up&lt;br /&gt;
# &amp;quot;Preferences&amp;quot; and &amp;quot;Settings&amp;quot; should be removed from the drop down and tabs for the gradebook&lt;br /&gt;
# It should be clearly noted on the pop-up which items affect anyone using the course (Settings) and which only affect the view of the current user (Preferences)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [[File:CatsAndItemsSettings.png|150px|thumb|left|Category and item columns]]&lt;br /&gt;
Create a &amp;quot;Setup&amp;quot; (Categories and items) pop-up whereby the current user can change what columns are displayed in the Setup screen&lt;br /&gt;
# Access through the standard cog icon&lt;br /&gt;
# Standard Moodle add/ remove arrow interface&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
==New functionality==&lt;br /&gt;
# UMN has added additional navigation: Report item order; Import order;Export order&lt;br /&gt;
# Sort order ability for scales&lt;br /&gt;
# Adding a toggle for view hide multiplicator and the offset (similar to toggle for keep lowest)&lt;br /&gt;
# Add the calculation setting to administrative settings giving them the ability to make it available or not available.&lt;br /&gt;
# Preconfigured setting packs&lt;br /&gt;
&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46122</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46122"/>
		<updated>2014-08-07T15:21:06Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* User interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
# All of the gradebook default settings - at the admin level - should be forcible and hideable. Similar to what is done for the site admin &amp;gt; Grades &amp;gt; Grade category settings - ex: Drop the lowest&lt;br /&gt;
# Default values should be called ‘checked’ or ‘unchecked’ instead of Default:Yes or Default:No unless the values are ‘Yes/No’ (see attachment)&lt;br /&gt;
# Dropdowns that contain 2 or 3 items should be radio buttons or a checkbox depending on the options. If a yes/no, checkbox&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
[[File:GraderReportPrefs.png|150px|thumb|left|Report Preferences/ Settings]]&lt;br /&gt;
&lt;br /&gt;
Re-organize the user report admin settings: Each report needs a cog that takes you straight to the settings and preferences for that report instead of having a settings tab with all report settings.&lt;br /&gt;
# Preferences and settings for a report should be combined on the same pop-up screen&lt;br /&gt;
# As noted in the example, the default value should be clearly displayed in its own column&lt;br /&gt;
# Access to these Prefs and settings should be through using the standard cog icon&lt;br /&gt;
# Each gradebook report should have a Preferences and settings pop-up&lt;br /&gt;
# &amp;quot;Preferences&amp;quot; and &amp;quot;Settings&amp;quot; should be removed from the drop down and tabs for the gradebook&lt;br /&gt;
# It should be clearly noted on the pop-up which items affect anyone using the course (Settings) and which only affect the view of the current user (Preferences)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [[File:CatsAndItemsSettings.png|150px|thumb|left|Category and item columns]]&lt;br /&gt;
Create a &amp;quot;Setup&amp;quot; (Categories and items) pop-up whereby the current user can change what columns are displayed in the Setup screen&lt;br /&gt;
# Access through the standard cog icon&lt;br /&gt;
# Standard Moodle add/ remove arrow interface&lt;br /&gt;
&lt;br /&gt;
==New functionality==&lt;br /&gt;
# UMN has added additional navigation: Report item order; Import order;Export order&lt;br /&gt;
# Sort order ability for scales&lt;br /&gt;
# Adding a toggle for view hide multiplicator and the offset (similar to toggle for keep lowest)&lt;br /&gt;
# Add the calculation setting to administrative settings giving them the ability to make it available or not available.&lt;br /&gt;
# Preconfigured setting packs&lt;br /&gt;
&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46121</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46121"/>
		<updated>2014-08-07T15:20:44Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* User interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
# All of the gradebook default settings - at the admin level - should be forcible and hideable. Similar to what is done for the site admin &amp;gt; Grades &amp;gt; Grade category settings - ex: Drop the lowest&lt;br /&gt;
# Default values should be called ‘checked’ or ‘unchecked’ instead of Default:Yes or Default:No unless the values are ‘Yes/No’ (see attachment)&lt;br /&gt;
# Dropdowns that contain 2 or 3 items should be radio buttons or a checkbox depending on the options. If a yes/no, checkbox&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
[[File:GraderReportPrefs.png|150px|thumb|left|Report Preferences/ Settings]]&lt;br /&gt;
&lt;br /&gt;
Re-organize the user report admin settings: Each report needs a cog that takes you straight to the settings and preferences for that report instead of having a settings tab with all report settings.&lt;br /&gt;
# Preferences and settings for a report should be combined on the same pop-up screen&lt;br /&gt;
# As noted in the example, the default value should be clearly displayed in its own column&lt;br /&gt;
# Access to these Prefs and settings should be through using the standard cog icon&lt;br /&gt;
# Each gradebook report should have a Preferences and settings pop-up&lt;br /&gt;
# &amp;quot;Preferences&amp;quot; and &amp;quot;Settings&amp;quot; should be removed from the drop down and tabs for the gradebook&lt;br /&gt;
# It should be clearly noted on the pop-up which items affect anyone using the course (Settings) and which only affect the view of the current user (Preferences)&lt;br /&gt;
&lt;br /&gt;
 [[File:CatsAndItemsSettings.png|150px|thumb|left|Category and item columns]]&lt;br /&gt;
Create a &amp;quot;Setup&amp;quot; (Categories and items) pop-up whereby the current user can change what columns are displayed in the Setup screen&lt;br /&gt;
# Access through the standard cog icon&lt;br /&gt;
# Standard Moodle add/ remove arrow interface&lt;br /&gt;
&lt;br /&gt;
==New functionality==&lt;br /&gt;
# UMN has added additional navigation: Report item order; Import order;Export order&lt;br /&gt;
# Sort order ability for scales&lt;br /&gt;
# Adding a toggle for view hide multiplicator and the offset (similar to toggle for keep lowest)&lt;br /&gt;
# Add the calculation setting to administrative settings giving them the ability to make it available or not available.&lt;br /&gt;
# Preconfigured setting packs&lt;br /&gt;
&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46120</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46120"/>
		<updated>2014-08-07T15:20:00Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* User interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
# All of the gradebook default settings - at the admin level - should be forcible and hideable. Similar to what is done for the site admin &amp;gt; Grades &amp;gt; Grade category settings - ex: Drop the lowest&lt;br /&gt;
# Default values should be called ‘checked’ or ‘unchecked’ instead of Default:Yes or Default:No unless the values are ‘Yes/No’ (see attachment)&lt;br /&gt;
# Dropdowns that contain 2 or 3 items should be radio buttons or a checkbox depending on the options. If a yes/no, checkbox&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
[[File:GraderReportPrefs.png|200px|thumb|left|Report Preferences/ Settings]]&lt;br /&gt;
&lt;br /&gt;
Re-organize the user report admin settings: Each report needs a cog that takes you straight to the settings and preferences for that report instead of having a settings tab with all report settings.&lt;br /&gt;
# Preferences and settings for a report should be combined on the same pop-up screen&lt;br /&gt;
# As noted in the example, the default value should be clearly displayed in its own column&lt;br /&gt;
# Access to these Prefs and settings should be through using the standard cog icon&lt;br /&gt;
# Each gradebook report should have a Preferences and settings pop-up&lt;br /&gt;
# &amp;quot;Preferences&amp;quot; and &amp;quot;Settings&amp;quot; should be removed from the drop down and tabs for the gradebook&lt;br /&gt;
# It should be clearly noted on the pop-up which items affect anyone using the course (Settings) and which only affect the view of the current user (Preferences)&lt;br /&gt;
&lt;br /&gt;
 [[File:CatsAndItemsSettings.png|200px|thumb|left|Category and item columns]]&lt;br /&gt;
Create a &amp;quot;Setup&amp;quot; (Categories and items) pop-up whereby the current user can change what columns are displayed in the Setup screen&lt;br /&gt;
# Access through the standard cog icon&lt;br /&gt;
# Standard Moodle add/ remove arrow interface&lt;br /&gt;
&lt;br /&gt;
==New functionality==&lt;br /&gt;
# UMN has added additional navigation: Report item order; Import order;Export order&lt;br /&gt;
# Sort order ability for scales&lt;br /&gt;
# Adding a toggle for view hide multiplicator and the offset (similar to toggle for keep lowest)&lt;br /&gt;
# Add the calculation setting to administrative settings giving them the ability to make it available or not available.&lt;br /&gt;
# Preconfigured setting packs&lt;br /&gt;
&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46119</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46119"/>
		<updated>2014-08-07T15:16:38Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* User interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
# All of the gradebook default settings - at the admin level - should be forcible and hideable. Similar to what is done for the site admin &amp;gt; Grades &amp;gt; Grade category settings - ex: Drop the lowest&lt;br /&gt;
# Default values should be called ‘checked’ or ‘unchecked’ instead of Default:Yes or Default:No unless the values are ‘Yes/No’ (see attachment)&lt;br /&gt;
# Dropdowns that contain 2 or 3 items should be radio buttons or a checkbox depending on the options. If a yes/no, checkbox&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
[[File:GraderReportPrefs.png|200px|thumb|left|Report Preferences/ Settings]] [[File:CatsAndItemsSettings.png|200px|thumb|left|Category and item columns]]&lt;br /&gt;
&lt;br /&gt;
Re-organize the user report admin settings: Each report needs a cog that takes you straight to the settings and preferences for that report instead of having a settings tab with all report settings.&lt;br /&gt;
# Preferences and settings for a report should be combined on the same pop-up screen&lt;br /&gt;
# As noted in the example, the default value should be clearly displayed in its own column&lt;br /&gt;
# Access to these Prefs and settings should be through using the standard cog icon&lt;br /&gt;
# Each gradebook report should have a Preferences and settings pop-up&lt;br /&gt;
# &amp;quot;Preferences&amp;quot; and &amp;quot;Settings&amp;quot; should be removed from the drop down and tabs for the gradebook&lt;br /&gt;
# It should be clearly noted on the pop-up which items affect anyone using the course (Settings) and which only affect the view of the current user (Preferences)&lt;br /&gt;
&lt;br /&gt;
==New functionality==&lt;br /&gt;
# UMN has added additional navigation: Report item order; Import order;Export order&lt;br /&gt;
# Sort order ability for scales&lt;br /&gt;
# Adding a toggle for view hide multiplicator and the offset (similar to toggle for keep lowest)&lt;br /&gt;
# Add the calculation setting to administrative settings giving them the ability to make it available or not available.&lt;br /&gt;
# Preconfigured setting packs&lt;br /&gt;
&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46118</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46118"/>
		<updated>2014-08-07T15:15:54Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* User interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
# All of the gradebook default settings - at the admin level - should be forcible and hideable. Similar to what is done for the site admin &amp;gt; Grades &amp;gt; Grade category settings - ex: Drop the lowest&lt;br /&gt;
# Default values should be called ‘checked’ or ‘unchecked’ instead of Default:Yes or Default:No unless the values are ‘Yes/No’ (see attachment)&lt;br /&gt;
# Dropdowns that contain 2 or 3 items should be radio buttons or a checkbox depending on the options. If a yes/no, checkbox&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
[[File:GraderReportPrefs.png|200px|thumb|left|Report Preferences/ Settings]] [[File:CatsAndItemsSettings|200px|thumb|left|Category and item columns]]&lt;br /&gt;
&lt;br /&gt;
Re-organize the user report admin settings: Each report needs a cog that takes you straight to the settings and preferences for that report instead of having a settings tab with all report settings.&lt;br /&gt;
# Preferences and settings for a report should be combined on the same pop-up screen&lt;br /&gt;
# As noted in the example, the default value should be clearly displayed in its own column&lt;br /&gt;
# Access to these Prefs and settings should be through using the standard cog icon&lt;br /&gt;
# Each gradebook report should have a Preferences and settings pop-up&lt;br /&gt;
# &amp;quot;Preferences&amp;quot; and &amp;quot;Settings&amp;quot; should be removed from the drop down and tabs for the gradebook&lt;br /&gt;
# It should be clearly noted on the pop-up which items affect anyone using the course (Settings) and which only affect the view of the current user (Preferences)&lt;br /&gt;
&lt;br /&gt;
==New functionality==&lt;br /&gt;
# UMN has added additional navigation: Report item order; Import order;Export order&lt;br /&gt;
# Sort order ability for scales&lt;br /&gt;
# Adding a toggle for view hide multiplicator and the offset (similar to toggle for keep lowest)&lt;br /&gt;
# Add the calculation setting to administrative settings giving them the ability to make it available or not available.&lt;br /&gt;
# Preconfigured setting packs&lt;br /&gt;
&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=File:CatsAndItemsSettings.png&amp;diff=46117</id>
		<title>File:CatsAndItemsSettings.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=File:CatsAndItemsSettings.png&amp;diff=46117"/>
		<updated>2014-08-07T15:15:06Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46116</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46116"/>
		<updated>2014-08-07T15:14:24Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* User interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
# All of the gradebook default settings - at the admin level - should be forcible and hideable. Similar to what is done for the site admin &amp;gt; Grades &amp;gt; Grade category settings - ex: Drop the lowest&lt;br /&gt;
# Default values should be called ‘checked’ or ‘unchecked’ instead of Default:Yes or Default:No unless the values are ‘Yes/No’ (see attachment)&lt;br /&gt;
# Dropdowns that contain 2 or 3 items should be radio buttons or a checkbox depending on the options. If a yes/no, checkbox&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
[[File:GraderReportPrefs.png|200px|thumb|left|Report Preferences/ Settings]] [[File:CatsAndItemsSettings.png|200px|thumb|left|Category and item columns]]&lt;br /&gt;
&lt;br /&gt;
Re-organize the user report admin settings: Each report needs a cog that takes you straight to the settings and preferences for that report instead of having a settings tab with all report settings.&lt;br /&gt;
# Preferences and settings for a report should be combined on the same pop-up screen&lt;br /&gt;
# As noted in the example, the default value should be clearly displayed in its own column&lt;br /&gt;
# Access to these Prefs and settings should be through using the standard cog icon&lt;br /&gt;
# Each gradebook report should have a Preferences and settings pop-up&lt;br /&gt;
# &amp;quot;Preferences&amp;quot; and &amp;quot;Settings&amp;quot; should be removed from the drop down and tabs for the gradebook&lt;br /&gt;
# It should be clearly noted on the pop-up which items affect anyone using the course (Settings) and which only affect the view of the current user (Preferences)&lt;br /&gt;
&lt;br /&gt;
==New functionality==&lt;br /&gt;
# UMN has added additional navigation: Report item order; Import order;Export order&lt;br /&gt;
# Sort order ability for scales&lt;br /&gt;
# Adding a toggle for view hide multiplicator and the offset (similar to toggle for keep lowest)&lt;br /&gt;
# Add the calculation setting to administrative settings giving them the ability to make it available or not available.&lt;br /&gt;
# Preconfigured setting packs&lt;br /&gt;
&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46115</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46115"/>
		<updated>2014-08-07T15:04:55Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* User interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
# All of the gradebook default settings - at the admin level - should be forcible and hideable. Similar to what is done for the site admin &amp;gt; Grades &amp;gt; Grade category settings - ex: Drop the lowest&lt;br /&gt;
# Default values should be called ‘checked’ or ‘unchecked’ instead of Default:Yes or Default:No unless the values are ‘Yes/No’ (see attachment)&lt;br /&gt;
# Dropdowns that contain 2 or 3 items should be radio buttons or a checkbox depending on the options. If a yes/no, checkbox&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
[[File:GraderReportPrefs.png|200px|thumb|left|Report Preferences/ Settings]]&lt;br /&gt;
&lt;br /&gt;
Re-organize the user report admin settings: Each report needs a cog that takes you straight to the settings and preferences for that report instead of having a settings tab with all report settings.&lt;br /&gt;
# Preferences and settings for a report should be combined on the same pop-up screen&lt;br /&gt;
# As noted in the example, the default value should be clearly displayed in its own column&lt;br /&gt;
# Access to these Prefs and settings should be through using the standard cog icon&lt;br /&gt;
# Each gradebook report should have a Preferences and settings pop-up&lt;br /&gt;
# &amp;quot;Preferences&amp;quot; and &amp;quot;Settings&amp;quot; should be removed from the drop down and tabs for the gradebook&lt;br /&gt;
# It should be clearly noted on the pop-up which items affect anyone using the course (Settings) and which only affect the view of the current user (Preferences)&lt;br /&gt;
&lt;br /&gt;
==New functionality==&lt;br /&gt;
# UMN has added additional navigation: Report item order; Import order;Export order&lt;br /&gt;
# Sort order ability for scales&lt;br /&gt;
# Adding a toggle for view hide multiplicator and the offset (similar to toggle for keep lowest)&lt;br /&gt;
# Add the calculation setting to administrative settings giving them the ability to make it available or not available.&lt;br /&gt;
# Preconfigured setting packs&lt;br /&gt;
&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46114</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46114"/>
		<updated>2014-08-07T15:03:57Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* User interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
# All of the gradebook default settings - at the admin level - should be forcible and hideable. Similar to what is done for the site admin &amp;gt; Grades &amp;gt; Grade category settings - ex: Drop the lowest&lt;br /&gt;
# Default values should be called ‘checked’ or ‘unchecked’ instead of Default:Yes or Default:No unless the values are ‘Yes/No’ (see attachment)&lt;br /&gt;
# Dropdowns that contain 2 or 3 items should be radio buttons or a checkbox depending on the options. If a yes/no, checkbox&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
[[File:GraderReportPrefs.png|200px|thumb|left|Report Preferences/ Settings]]&lt;br /&gt;
&lt;br /&gt;
Re-organize the user report admin settings: Each report needs a cog that takes you straight to the settings and preferences for that report instead of having a settings tab with all report settings.&lt;br /&gt;
# Preferences and settings for a report should be combined on the same pop-up screen&lt;br /&gt;
# Access to these Prefs and settings should be through using the standard cog icon&lt;br /&gt;
# Each gradebook report should have a Preferences and settings pop-up&lt;br /&gt;
# &amp;quot;Preferences&amp;quot; and &amp;quot;Settings&amp;quot; should be removed from the drop down and tabs for the gradebook&lt;br /&gt;
# It should be clearly noted on the pop-up which items affect anyone using the course (Settings) and which only affect the view of the current user (Preferences)&lt;br /&gt;
&lt;br /&gt;
==New functionality==&lt;br /&gt;
# UMN has added additional navigation: Report item order; Import order;Export order&lt;br /&gt;
# Sort order ability for scales&lt;br /&gt;
# Adding a toggle for view hide multiplicator and the offset (similar to toggle for keep lowest)&lt;br /&gt;
# Add the calculation setting to administrative settings giving them the ability to make it available or not available.&lt;br /&gt;
# Preconfigured setting packs&lt;br /&gt;
&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46113</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46113"/>
		<updated>2014-08-07T15:02:55Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* User interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
# All of the gradebook default settings - at the admin level - should be forcible and hideable. Similar to what is done for the site admin &amp;gt; Grades &amp;gt; Grade category settings - ex: Drop the lowest&lt;br /&gt;
# Default values should be called ‘checked’ or ‘unchecked’ instead of Default:Yes or Default:No unless the values are ‘Yes/No’ (see attachment)&lt;br /&gt;
# Dropdowns that contain 2 or 3 items should be radio buttons or a checkbox depending on the options. If a yes/no, checkbox&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
[[File:GraderReportPrefs.png|300px|thumb|left|Grader Report Preferences/ Settings example]]&lt;br /&gt;
&lt;br /&gt;
Re-organize the user report admin settings: Each report needs a cog that takes you straight to the settings and preferences for that report instead of having a settings tab with all report settings.&lt;br /&gt;
# Preferences and settings for a report should be combined on the same pop-up screen&lt;br /&gt;
# Access to these Prefs and settings should be through using the standard cog icon&lt;br /&gt;
# Each gradebook report should have a Preferences and settings pop-up&lt;br /&gt;
# &amp;quot;Preferences&amp;quot; and &amp;quot;Settings&amp;quot; should be removed from the drop down and tabs for the gradebook&lt;br /&gt;
# It should be clearly noted on the pop-up which items affect anyone using the course (Settings) and which only affect the view of the current user (Preferences)&lt;br /&gt;
&lt;br /&gt;
==New functionality==&lt;br /&gt;
# UMN has added additional navigation: Report item order; Import order;Export order&lt;br /&gt;
# Sort order ability for scales&lt;br /&gt;
# Adding a toggle for view hide multiplicator and the offset (similar to toggle for keep lowest)&lt;br /&gt;
# Add the calculation setting to administrative settings giving them the ability to make it available or not available.&lt;br /&gt;
# Preconfigured setting packs&lt;br /&gt;
&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46112</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46112"/>
		<updated>2014-08-07T15:02:33Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* User interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
# All of the gradebook default settings - at the admin level - should be forcible and hideable. Similar to what is done for the site admin &amp;gt; Grades &amp;gt; Grade category settings - ex: Drop the lowest&lt;br /&gt;
# Default values should be called ‘checked’ or ‘unchecked’ instead of Default:Yes or Default:No unless the values are ‘Yes/No’ (see attachment)&lt;br /&gt;
# Dropdowns that contain 2 or 3 items should be radio buttons or a checkbox depending on the options. If a yes/no, checkbox&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
[[File:GraderReportPrefs.png|400px|thumb|left|Grader Report Preferences/ Settings example]]&lt;br /&gt;
&lt;br /&gt;
Re-organize the user report admin settings: Each report needs a cog that takes you straight to the settings and preferences for that report instead of having a settings tab with all report settings.&lt;br /&gt;
# Preferences and settings for a report should be combined on the same pop-up screen&lt;br /&gt;
# Access to these Prefs and settings should be through using the standard cog icon&lt;br /&gt;
# Each gradebook report should have a Preferences and settings pop-up&lt;br /&gt;
# &amp;quot;Preferences&amp;quot; and &amp;quot;Settings&amp;quot; should be removed from the drop down and tabs for the gradebook&lt;br /&gt;
# It should be clearly noted on the pop-up which items affect anyone using the course (Settings) and which only affect the view of the current user (Preferences)&lt;br /&gt;
&lt;br /&gt;
==New functionality==&lt;br /&gt;
# UMN has added additional navigation: Report item order; Import order;Export order&lt;br /&gt;
# Sort order ability for scales&lt;br /&gt;
# Adding a toggle for view hide multiplicator and the offset (similar to toggle for keep lowest)&lt;br /&gt;
# Add the calculation setting to administrative settings giving them the ability to make it available or not available.&lt;br /&gt;
# Preconfigured setting packs&lt;br /&gt;
&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46111</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46111"/>
		<updated>2014-08-07T15:01:26Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* User interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
# All of the gradebook default settings - at the admin level - should be forcible and hideable. Similar to what is done for the site admin &amp;gt; Grades &amp;gt; Grade category settings - ex: Drop the lowest&lt;br /&gt;
# Default values should be called ‘checked’ or ‘unchecked’ instead of Default:Yes or Default:No unless the values are ‘Yes/No’ (see attachment)&lt;br /&gt;
# Dropdowns that contain 2 or 3 items should be radio buttons or a checkbox depending on the options. If a yes/no, checkbox&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
Re-organize the user report admin settings: Each report needs a cog that takes you straight to the settings and preferences for that report instead of having a settings tab with all report settings.&lt;br /&gt;
&lt;br /&gt;
[[File:GraderReportPrefs.png|400px|thumb|left|Grader Report Preferences/ Settings example]]&lt;br /&gt;
# Preferences and settings for a report should be combined on the same pop-up screen&lt;br /&gt;
# Access to these Prefs and settings should be through using the standard cog icon&lt;br /&gt;
# Each gradebook report should have a Preferences and settings pop-up&lt;br /&gt;
# &amp;quot;Preferences&amp;quot; and &amp;quot;Settings&amp;quot; should be removed from the drop down and tabs for the gradebook&lt;br /&gt;
# It should be clearly noted on the pop-up which items affect anyone using the course (Settings) and which only affect the view of the current user (Preferences)&lt;br /&gt;
&lt;br /&gt;
==New functionality==&lt;br /&gt;
# UMN has added additional navigation: Report item order; Import order;Export order&lt;br /&gt;
# Sort order ability for scales&lt;br /&gt;
# Adding a toggle for view hide multiplicator and the offset (similar to toggle for keep lowest)&lt;br /&gt;
# Add the calculation setting to administrative settings giving them the ability to make it available or not available.&lt;br /&gt;
# Preconfigured setting packs&lt;br /&gt;
&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46110</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46110"/>
		<updated>2014-08-07T14:56:56Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* User interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
# All of the gradebook default settings - at the admin level - should be forcible and hideable. Similar to what is done for the site admin &amp;gt; Grades &amp;gt; Grade category settings - ex: Drop the lowest&lt;br /&gt;
# Default values should be called ‘checked’ or ‘unchecked’ instead of Default:Yes or Default:No unless the values are ‘Yes/No’ (see attachment)&lt;br /&gt;
# Dropdowns that contain 2 or 3 items should be radio buttons or a checkbox depending on the options. If a yes/no, checkbox&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
Re-organize the user report admin settings: Each report needs a cog that takes you straight to the settings and preferences for that report instead of having a settings tab with all report settings.&lt;br /&gt;
&lt;br /&gt;
[[File:GraderReportPrefs.png|400px|thumb|left|Grader Report Preferences/ Settings example]]&lt;br /&gt;
&lt;br /&gt;
==New functionality==&lt;br /&gt;
# UMN has added additional navigation: Report item order; Import order;Export order&lt;br /&gt;
# Sort order ability for scales&lt;br /&gt;
# Adding a toggle for view hide multiplicator and the offset (similar to toggle for keep lowest)&lt;br /&gt;
# Add the calculation setting to administrative settings giving them the ability to make it available or not available.&lt;br /&gt;
# Preconfigured setting packs&lt;br /&gt;
&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46109</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46109"/>
		<updated>2014-08-07T14:55:40Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* User interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
# All of the gradebook default settings - at the admin level - should be forcible and hideable. Similar to what is done for the site admin &amp;gt; Grades &amp;gt; Grade category settings - ex: Drop the lowest&lt;br /&gt;
# Default values should be called ‘checked’ or ‘unchecked’ instead of Default:Yes or Default:No unless the values are ‘Yes/No’ (see attachment)&lt;br /&gt;
# Dropdowns that contain 2 or 3 items should be radio buttons or a checkbox depending on the options. If a yes/no, checkbox&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
Re-organize the user report admin settings: Each report needs a cog that takes you straight to the settings and preferences for that report instead of having a settings tab with all report settings.&lt;br /&gt;
&lt;br /&gt;
[[File:GraderReportPrefs.png]]&lt;br /&gt;
&lt;br /&gt;
==New functionality==&lt;br /&gt;
# UMN has added additional navigation: Report item order; Import order;Export order&lt;br /&gt;
# Sort order ability for scales&lt;br /&gt;
# Adding a toggle for view hide multiplicator and the offset (similar to toggle for keep lowest)&lt;br /&gt;
# Add the calculation setting to administrative settings giving them the ability to make it available or not available.&lt;br /&gt;
# Preconfigured setting packs&lt;br /&gt;
&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46108</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46108"/>
		<updated>2014-08-07T14:55:18Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* User interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
# All of the gradebook default settings - at the admin level - should be forcible and hideable. Similar to what is done for the site admin &amp;gt; Grades &amp;gt; Grade category settings - ex: Drop the lowest&lt;br /&gt;
# Default values should be called ‘checked’ or ‘unchecked’ instead of Default:Yes or Default:No unless the values are ‘Yes/No’ (see attachment)&lt;br /&gt;
# Dropdowns that contain 2 or 3 items should be radio buttons or a checkbox depending on the options. If a yes/no, checkbox&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
Re-organize the user report admin settings: Each report needs a cog that takes you straight to the settings and preferences for that report instead of having a settings tab with all report settings.&lt;br /&gt;
[[File:GraderReportPrefs.png]]&lt;br /&gt;
&lt;br /&gt;
==New functionality==&lt;br /&gt;
# UMN has added additional navigation: Report item order; Import order;Export order&lt;br /&gt;
# Sort order ability for scales&lt;br /&gt;
# Adding a toggle for view hide multiplicator and the offset (similar to toggle for keep lowest)&lt;br /&gt;
# Add the calculation setting to administrative settings giving them the ability to make it available or not available.&lt;br /&gt;
# Preconfigured setting packs&lt;br /&gt;
&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=File:GraderReportPrefs.png&amp;diff=46107</id>
		<title>File:GraderReportPrefs.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=File:GraderReportPrefs.png&amp;diff=46107"/>
		<updated>2014-08-07T14:54:20Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46106</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46106"/>
		<updated>2014-08-07T14:50:51Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* New functionality */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
# All of the gradebook default settings - at the admin level - should be forcible and hideable. Similar to what is done for the site admin &amp;gt; Grades &amp;gt; Grade category settings - ex: Drop the lowest&lt;br /&gt;
# Default values should be called ‘checked’ or ‘unchecked’ instead of Default:Yes or Default:No unless the values are ‘Yes/No’ (see attachment)&lt;br /&gt;
# Dropdowns that contain 2 or 3 items should be radio buttons or a checkbox depending on the options. If a yes/no, checkbox&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
Re-organize the user report admin settings: Each report needs a cog that takes you straight to the settings and preferences for that report instead of having a settings tab with all report settings.&lt;br /&gt;
&lt;br /&gt;
==New functionality==&lt;br /&gt;
# UMN has added additional navigation: Report item order; Import order;Export order&lt;br /&gt;
# Sort order ability for scales&lt;br /&gt;
# Adding a toggle for view hide multiplicator and the offset (similar to toggle for keep lowest)&lt;br /&gt;
# Add the calculation setting to administrative settings giving them the ability to make it available or not available.&lt;br /&gt;
# Preconfigured setting packs&lt;br /&gt;
&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46105</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46105"/>
		<updated>2014-08-07T14:48:40Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* Future work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
# All of the gradebook default settings - at the admin level - should be forcible and hideable. Similar to what is done for the site admin &amp;gt; Grades &amp;gt; Grade category settings - ex: Drop the lowest&lt;br /&gt;
# Default values should be called ‘checked’ or ‘unchecked’ instead of Default:Yes or Default:No unless the values are ‘Yes/No’ (see attachment)&lt;br /&gt;
# Dropdowns that contain 2 or 3 items should be radio buttons or a checkbox depending on the options. If a yes/no, checkbox&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
Re-organize the user report admin settings: Each report needs a cog that takes you straight to the settings and preferences for that report instead of having a settings tab with all report settings.&lt;br /&gt;
&lt;br /&gt;
==New functionality==&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46104</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46104"/>
		<updated>2014-08-07T14:47:48Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* User interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
# All of the gradebook default settings - at the admin level - should be forcible and hideable. Similar to what is done for the site admin &amp;gt; Grades &amp;gt; Grade category settings - ex: Drop the lowest&lt;br /&gt;
# Default values should be called ‘checked’ or ‘unchecked’ instead of Default:Yes or Default:No unless the values are ‘Yes/No’ (see attachment)&lt;br /&gt;
# Dropdowns that contain 2 or 3 items should be radio buttons or a checkbox depending on the options. If a yes/no, checkbox&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
Re-organize the user report admin settings: Each report needs a cog that takes you straight to the settings and preferences for that report instead of having a settings tab with all report settings.&lt;br /&gt;
&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46103</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46103"/>
		<updated>2014-08-07T14:47:16Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* Future work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
# All of the gradebook default settings - at the admin level - should be forcible and hideable. Similar to what is done for the site admin &amp;gt; Grades &amp;gt; Grade category settings - ex: Drop the lowest&lt;br /&gt;
# Default values should be called ‘checked’ or ‘unchecked’ instead of Default:Yes or Default:No unless the values are ‘Yes/No’ (see attachment)&lt;br /&gt;
# Dropdowns that contain 2 or 3 items should be radio buttons or a checkbox depending on the options. If a yes/no, checkbox&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46102</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46102"/>
		<updated>2014-08-07T14:45:38Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* Default Settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
# All of the gradebook default settings - at the admin level - should be forcible and hideable. Similar to what is done for the site admin &amp;gt; Grades &amp;gt; Grade category settings - ex: Drop the lowest&lt;br /&gt;
# Default values should be called ‘checked’ or ‘unchecked’ instead of Default:Yes or Default:No unless the values are ‘Yes/No’ (see attachment)&lt;br /&gt;
# Dropdowns that contain 2 or 3 items should be radio buttons or a checkbox depending on the options. If a yes/no, checkbox&lt;br /&gt;
&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46101</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46101"/>
		<updated>2014-08-07T14:41:34Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* Default Settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;Recover grades&amp;quot; default should be set to &#039;Yes&#039;&lt;br /&gt;
# Remove &amp;quot;Aggregate including subcategories&amp;quot; from settings altogether because when used it blows up the grades.&lt;br /&gt;
# Scales: &amp;quot;Include scales in aggregation&amp;quot; should be off by default b/c assignments allow an integer vs. a pulldown menu that can be set at a max by admin&lt;br /&gt;
&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46100</id>
		<title>Gradebook configuration improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Gradebook_configuration_improvements&amp;diff=46100"/>
		<updated>2014-08-07T14:38:39Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* Future work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Gradebook configuration improvements&lt;br /&gt;
|state = Implementation&lt;br /&gt;
|tracker = MDL-46177&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=???&lt;br /&gt;
|assignee = ???&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=???}}&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
==Default Settings==&lt;br /&gt;
== Future work ==&lt;br /&gt;
&lt;br /&gt;
XXX&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* XXX&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=46087</id>
		<title>Natural weighting</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=46087"/>
		<updated>2014-08-04T13:20:05Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* Functional Logic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Natural Weighting&lt;br /&gt;
|state = Specification&lt;br /&gt;
|tracker = MDL-43378&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=263318&lt;br /&gt;
|assignee = Moodle HQ&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=263318}}&lt;br /&gt;
&lt;br /&gt;
Natural weighting is a modification to how grades are combined.&lt;br /&gt;
&lt;br /&gt;
When &#039;Sum of Grades&#039; aggregation is chosen (and natural weighting is active), there will be a weight column with form fields, looking like &amp;quot;Weighted mean&amp;quot; is in 2.7.  By default, the weight column shows the natural weights given to all categories and items based on gradebook structure.&lt;br /&gt;
&lt;br /&gt;
Weights can be overridden by modifying the values in the form fields.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Reset weights&amp;quot; button in each category resets the weights to their defaults.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;A clear overview of what is proposed here can be seen in https://www.youtube.com/watch?v=Qw9xtl9pGac&amp;amp;feature=youtu.be from about 1:30:00 to about 1:38:00. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rationale==&lt;br /&gt;
&lt;br /&gt;
;In grading, &#039;&#039;&#039;weight&#039;&#039;&#039; is the proportion of an item&#039;s value in relation to all the other items in its container (category or course). &lt;br /&gt;
;Value is most often represented as &#039;points&#039;. &lt;br /&gt;
;Every grade has a weight. &lt;br /&gt;
;There are three fundamental approaches to dealing with weighting in a gradebook&lt;br /&gt;
:- Simple (or natural) weighting, maximum points earnable for each item are appropriately in relation to one another. Example - If you have two items in a category, one worth 10 points and the other worth 30, then item 1 is 25% (10/40) and item 2 is 75% (30/40).&lt;br /&gt;
:- Adjusted weighting. Users often want to adjust categories and even items to have a weight other than the natural weight, essentially ignoring the points entirely. An example would be, Quizzes=40%, Assignments=50%, Attendance=10%. &lt;br /&gt;
:- Mean of grades. If I have a category made up of five quizzes all worth different points and I want a category percentage to just tell the average (or mean) of all the quiz results&#039; percentage correct, I would choose this approach again, disregarding the points.&lt;br /&gt;
;Simplifying the understanding of weighting reduces the aggregation methodology down to &#039;either/ or&#039; &lt;br /&gt;
:- either &#039;leave weights as is -- natural&#039; &lt;br /&gt;
:- or &#039;adjust to suit my needs -- adjusted weights&#039;&lt;br /&gt;
&lt;br /&gt;
;This greatly simplifies the interface needed to present these options&lt;br /&gt;
:- They don&#039;t need to select an aggregation type&lt;br /&gt;
:- They don&#039;t need to know how each aggregation type performs&lt;br /&gt;
:- The &#039;&#039;&#039;actual&#039;&#039;&#039; weight of every item and category is &#039;&#039;&#039;always&#039;&#039;&#039; displayed to them. &lt;br /&gt;
:- If those are not the weights they want, they merely adjust them.&lt;br /&gt;
:- Much easier for the common user to grasp.  &lt;br /&gt;
&lt;br /&gt;
This interface and calculations are expected to suit the needs of all except very edge cases (which can still be handled with formulas).  If it turns out that this is enough for everyone then we can potentially remove quite a lot of aggregation code from the gradebook at a later stage, improving speed and readability.&lt;br /&gt;
&lt;br /&gt;
===How natural weights meets the requirements of the aggregation types===&lt;br /&gt;
;Sum of grades: Moodle determines the &amp;quot;natural weights&amp;quot; for this by default based on point values.&lt;br /&gt;
;Mean of grades: Set all weights equal to each other. Doesn&#039;t matter what the number is, as in legacy behavior Moodle will automatically adjust so the sum equals 100%. However, in this implementation the group wants to have a pop-up warning the user the weights don&#039;t add up to 100% and they will therefore be adjusted uniformly to equal 100%.&lt;br /&gt;
;Weighted mean of grades: Adjust weights as desired. No change from current behavior.&lt;br /&gt;
;Simple weighted mean of grades: Leave all weightings as is, no change necessary. Same as Sum of grades.&lt;br /&gt;
;Mean of grades (with extra credits): Extra credit has a natural weight that takes the total container (category/ course) weight above 100% (hence, &#039;extra&#039;). Extra credit is available at all times no matter what scheme of weighting is chosen.&lt;br /&gt;
;Highest : User would input the value &#039;1&#039; for &#039;Keep highest&#039; in the category&lt;br /&gt;
;Lowest : Of doubtful use.  Not possible using natural weights, but it can also be done by a calculation into a new item.&lt;br /&gt;
;Median / Mode of grades: Not possible using natural weights, but it&#039;s doubtful anyone uses these anyway so perhaps this can be deprecated entirely.&lt;br /&gt;
&lt;br /&gt;
==Implementation stages==&lt;br /&gt;
&lt;br /&gt;
To be safe, we plan to implement this in stages:&lt;br /&gt;
&lt;br /&gt;
STAGE 1) Implement natural weighting as part of the Sum of Grades aggregation type, with admin settings that allow them to disable all other aggregations if they choose. (Moodle 2.8)&lt;br /&gt;
&lt;br /&gt;
STAGE 2) Once people have been using this for a while, explore the possibility of removing other aggregation code or making them into optional plugins. (Moodle 3.0 perhaps)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Interfaces==&lt;br /&gt;
&lt;br /&gt;
=== Category editing ===&lt;br /&gt;
&lt;br /&gt;
Prototype from luther.edu:&lt;br /&gt;
[[Image:NaturalWeights.png]]&lt;br /&gt;
&lt;br /&gt;
In addition the weights should be editable form fields here, and there would be one button per category to &amp;quot;reset weights&amp;quot; back to a natural Sum of Grades.&lt;br /&gt;
&lt;br /&gt;
=== Admin settings ===&lt;br /&gt;
&lt;br /&gt;
New setting to &amp;quot;Force Natural Weighting&amp;quot; (on/off).   This would default to OFF on upgraded sites and ON for new sites.&lt;br /&gt;
&lt;br /&gt;
ON:  this will hide the aggregation menu and all new categories will default to &amp;quot;Sum of grades&amp;quot; and natural weights.  It will not affect existing gradebooks with other aggregations set (see upgrade script below for a conversion strategy).&lt;br /&gt;
&lt;br /&gt;
OFF: aggregation menu is shown, but Sum of Grades will still contain new natural weighting UI and logic.&lt;br /&gt;
&lt;br /&gt;
==Upgrade script==&lt;br /&gt;
&lt;br /&gt;
If a site is switching to forced natural weights, they will probably want to upgrade all existing categories.&lt;br /&gt;
&lt;br /&gt;
This new optional upgrade script will examine all grade categories looking at aggregation methods.  It should report on what exists and allow the admin to perform an automated upgrade as follows:&lt;br /&gt;
&lt;br /&gt;
# If GRADE_AGGREGATE_WEIGHTED_MEAN then:&lt;br /&gt;
#* Store value of &#039;aggregationcoef&#039; fields to &#039;weight&#039; fields in grade_items&lt;br /&gt;
#* Set &#039;weightoverride&#039; field in grade_items&lt;br /&gt;
# If ... then:&lt;br /&gt;
#* &lt;br /&gt;
#* &lt;br /&gt;
&lt;br /&gt;
(We need exact strategies here for ALL aggregation types)&lt;br /&gt;
&lt;br /&gt;
==Database changes==&lt;br /&gt;
&lt;br /&gt;
;Add three fields to grade_items&lt;br /&gt;
# extracredit, tinyint, notnull, default: 0&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
# weightoverride, tinyint, notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
; Add one field to grade_grades&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
;This fixes the use of &#039;&#039;&#039;aggregationcoef&#039;&#039;&#039; representing both extra credit and weight in 2.7.&lt;br /&gt;
&lt;br /&gt;
== Unit test changes==&lt;br /&gt;
&lt;br /&gt;
==Functional test changes ==&lt;br /&gt;
&lt;br /&gt;
==Logic changes==&lt;br /&gt;
&lt;br /&gt;
Sum of Grades aggregation must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; hidden items and to &#039;&#039;&#039;exclude&#039;&#039;&#039; non-graded items&lt;br /&gt;
&lt;br /&gt;
Determination of range (in Grader and User report) and Max grade (in Setup screen) must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; extra credit items&lt;br /&gt;
&lt;br /&gt;
Natural weights must be saved and applied to the form.&lt;br /&gt;
&lt;br /&gt;
Natural weights are calculated for the Setup screen, the Grader report, and the User report. The calculation for the User report is different than that used for the Setup screen and Grader report.&lt;br /&gt;
&lt;br /&gt;
Weights should be stored in grade_items for the Setup screen and the Grader report and in the grade_grades table for the User report.&lt;br /&gt;
&lt;br /&gt;
==Functional Logic==&lt;br /&gt;
&lt;br /&gt;
# calculate up each container’s (category or course items) adjusted weight percentage and grademax associated with the items adjusted (need this for weighting, so could be done here or after the next step)&lt;br /&gt;
# calculate points (must be first, you cannot calculate weights until you have the finalgrade and grademax for categories). For each gtree-&amp;gt;levels starting with highest (items) to lowest (course) for both finalgrade and grademax&lt;br /&gt;
## include hidden only if hidetotalsifcontainhiddenitems is set to GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN&lt;br /&gt;
## ignore ungraded items if aggregateonlygraded is set, does not apply when calculating total points for Setup (Categories and items) screen&lt;br /&gt;
## include extra credit items in finalgrade calculations only, not grademax&lt;br /&gt;
## ignore items that have been dropped from drop low or keep high&lt;br /&gt;
## accumulate all other finalgrades and grademaxes into parent category finalgrade and grademaxes&lt;br /&gt;
# calculate weights (must be done before calculating contributions). For each gtree-&amp;gt;levels starting with highest (items) to lowest (course) &lt;br /&gt;
## weight is always percentage grade * weight... in this case PERCENTAGE:[item grademax / (container grademax - adjusted grademax for the container from step 1)] * WEIGHT:[(100 - adjusted weight for the container from step 1)]&lt;br /&gt;
# Adjust weights in a container to always equal 100&lt;br /&gt;
# calculate contributions (needed in order to accurately drop lowest, keep highest. Also needed to provide the most percentages). For each gtree-&amp;gt;levels starting with highest (items) to lowest (course)  &lt;br /&gt;
## contribution is always the item’s percentage * the item’s weight * the container’s weight… so (finalgrade / grademax) * item weight * container weight&lt;br /&gt;
# limit categories - drop lowest, keep highest (need to have contributions in order to accurately drop low and keep high)&lt;br /&gt;
## remove contribs&lt;br /&gt;
## remove finalgrades from parent finalgrade&lt;br /&gt;
## remove maxgrade from parent maxgrade&lt;br /&gt;
# during the process of limiting categories the points for containers is adjusted so we don’t need to recalculate points&lt;br /&gt;
# recalculate weights since we’ve removed items by dropping&lt;br /&gt;
# Adjust weights in a container to always equal 100&lt;br /&gt;
# recalc contributions since we’ve adjusted weights because of dropped items&lt;br /&gt;
&lt;br /&gt;
==The Math==&lt;br /&gt;
The sum of weights for all containers (categories and course) add up to 100% except in the case where extra credit is used in which case 100% is exceeded by the weight of the extra credit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup screen and Grader report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# ungraded items&#039; points (if aggregateonlygraded is on))&lt;br /&gt;
# any items dropped through container&#039;s drop lowest or keep highest conditions&lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
A multiplicator is used when some natural weights have been manually adjusted = sum(all adjusted weights) / 100&lt;br /&gt;
&lt;br /&gt;
The natural weight for each item contained in a category or course (including extra credit items) is &#039;item maximum points&#039; / &#039;total category or course points&#039; (in which the item is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
The natural weight for each category (including extra credit categories) is &#039;total category points&#039; / &#039;total category or course points&#039; (in which the category is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
==Calculation examples==&lt;br /&gt;
&lt;br /&gt;
===Example 1 simple sum===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you just want their scores added together (out of 50).&lt;br /&gt;
:No action is required of the user regarding weights.&lt;br /&gt;
&lt;br /&gt;
===Example 2 simple mean===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you want the final grade to be the simple mean percentage of all these scores.&lt;br /&gt;
:User should adjust all weights to be the same, i.e., 25%&lt;br /&gt;
&lt;br /&gt;
===Example 3 typical weighted categories===&lt;br /&gt;
User has four categories whose category totals are not in relation to each other as the user desires. They want the &#039;Quizzes&#039; to be worth 20%, the &#039;Exams&#039; to be worth 50% (with the midterm worth 20% and the final worth 30%), &#039;Papers&#039; worth 20%, and &#039;Attendance&#039; worth 10%&lt;br /&gt;
: User would edit the weights and &lt;br /&gt;
::- place the value 20 on the Quizzes category line&lt;br /&gt;
::- place the value 50 on the Exams category line&lt;br /&gt;
::- place the value 20 on the midterm exam item line&lt;br /&gt;
::- place the value 30 on the final exam item line&lt;br /&gt;
::- place the value 20 on the Papers category line&lt;br /&gt;
::- place the value 10 on the Attendance category (or item) line&lt;br /&gt;
: Then the user would save their weight settings&lt;br /&gt;
&lt;br /&gt;
===Example 4 (complex)===&lt;br /&gt;
&lt;br /&gt;
Category 1 contains seven items&lt;br /&gt;
# Item A = 20 points&lt;br /&gt;
# Item B = 10 points is extra credit&lt;br /&gt;
# Item C = 30 points&lt;br /&gt;
# Item D = 40 points is extra credit&lt;br /&gt;
# Item E = 50 points is hidden&lt;br /&gt;
# Item F = 50 points is ungraded&lt;br /&gt;
# Item G = 10 points whose natural weight has been adjusted to 50% of the category grade&lt;br /&gt;
&lt;br /&gt;
; In the Setup screen and the Grader report the following conditions will exist&lt;br /&gt;
:- Category grademax = 120 (10 + 50 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 110 (50 + 30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 8.33% (20 / 120 * .5)&lt;br /&gt;
:- B weight = 4.16% (10 / 120 * .5)&lt;br /&gt;
:- C weight = 12.5% (30 / 120 * .5)&lt;br /&gt;
:- D weight = 33.33% (40 / 120) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 25% (50 / 120 * .5)&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
; In the User report the following conditions will exist&lt;br /&gt;
:- Category grademax = 70 (10 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 60 (30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 16.66% (20 / 60 * .5)&lt;br /&gt;
:- B weight = 8.33% (10 / 60 * .5)&lt;br /&gt;
:- C weight = 25% (30 / 60 * .5)&lt;br /&gt;
:- D weight = 66.66% (40 / 60) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 0%&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
- [https://docs.google.com/document/d/18SCqecGsZT2w6wLaubFvX9nVXoF6I5xoQJ5-kLauLOU/edit Specifications for Natural weighting] (Google Doc) from the Moodle Gradebook Working Group&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=46086</id>
		<title>Natural weighting</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=46086"/>
		<updated>2014-08-04T13:16:26Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* Functional Logic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Natural Weighting&lt;br /&gt;
|state = Specification&lt;br /&gt;
|tracker = MDL-43378&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=263318&lt;br /&gt;
|assignee = Moodle HQ&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=263318}}&lt;br /&gt;
&lt;br /&gt;
Natural weighting is a modification to how grades are combined.&lt;br /&gt;
&lt;br /&gt;
When &#039;Sum of Grades&#039; aggregation is chosen (and natural weighting is active), there will be a weight column with form fields, looking like &amp;quot;Weighted mean&amp;quot; is in 2.7.  By default, the weight column shows the natural weights given to all categories and items based on gradebook structure.&lt;br /&gt;
&lt;br /&gt;
Weights can be overridden by modifying the values in the form fields.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Reset weights&amp;quot; button in each category resets the weights to their defaults.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;A clear overview of what is proposed here can be seen in https://www.youtube.com/watch?v=Qw9xtl9pGac&amp;amp;feature=youtu.be from about 1:30:00 to about 1:38:00. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rationale==&lt;br /&gt;
&lt;br /&gt;
;In grading, &#039;&#039;&#039;weight&#039;&#039;&#039; is the proportion of an item&#039;s value in relation to all the other items in its container (category or course). &lt;br /&gt;
;Value is most often represented as &#039;points&#039;. &lt;br /&gt;
;Every grade has a weight. &lt;br /&gt;
;There are three fundamental approaches to dealing with weighting in a gradebook&lt;br /&gt;
:- Simple (or natural) weighting, maximum points earnable for each item are appropriately in relation to one another. Example - If you have two items in a category, one worth 10 points and the other worth 30, then item 1 is 25% (10/40) and item 2 is 75% (30/40).&lt;br /&gt;
:- Adjusted weighting. Users often want to adjust categories and even items to have a weight other than the natural weight, essentially ignoring the points entirely. An example would be, Quizzes=40%, Assignments=50%, Attendance=10%. &lt;br /&gt;
:- Mean of grades. If I have a category made up of five quizzes all worth different points and I want a category percentage to just tell the average (or mean) of all the quiz results&#039; percentage correct, I would choose this approach again, disregarding the points.&lt;br /&gt;
;Simplifying the understanding of weighting reduces the aggregation methodology down to &#039;either/ or&#039; &lt;br /&gt;
:- either &#039;leave weights as is -- natural&#039; &lt;br /&gt;
:- or &#039;adjust to suit my needs -- adjusted weights&#039;&lt;br /&gt;
&lt;br /&gt;
;This greatly simplifies the interface needed to present these options&lt;br /&gt;
:- They don&#039;t need to select an aggregation type&lt;br /&gt;
:- They don&#039;t need to know how each aggregation type performs&lt;br /&gt;
:- The &#039;&#039;&#039;actual&#039;&#039;&#039; weight of every item and category is &#039;&#039;&#039;always&#039;&#039;&#039; displayed to them. &lt;br /&gt;
:- If those are not the weights they want, they merely adjust them.&lt;br /&gt;
:- Much easier for the common user to grasp.  &lt;br /&gt;
&lt;br /&gt;
This interface and calculations are expected to suit the needs of all except very edge cases (which can still be handled with formulas).  If it turns out that this is enough for everyone then we can potentially remove quite a lot of aggregation code from the gradebook at a later stage, improving speed and readability.&lt;br /&gt;
&lt;br /&gt;
===How natural weights meets the requirements of the aggregation types===&lt;br /&gt;
;Sum of grades: Moodle determines the &amp;quot;natural weights&amp;quot; for this by default based on point values.&lt;br /&gt;
;Mean of grades: Set all weights equal to each other. Doesn&#039;t matter what the number is, as in legacy behavior Moodle will automatically adjust so the sum equals 100%. However, in this implementation the group wants to have a pop-up warning the user the weights don&#039;t add up to 100% and they will therefore be adjusted uniformly to equal 100%.&lt;br /&gt;
;Weighted mean of grades: Adjust weights as desired. No change from current behavior.&lt;br /&gt;
;Simple weighted mean of grades: Leave all weightings as is, no change necessary. Same as Sum of grades.&lt;br /&gt;
;Mean of grades (with extra credits): Extra credit has a natural weight that takes the total container (category/ course) weight above 100% (hence, &#039;extra&#039;). Extra credit is available at all times no matter what scheme of weighting is chosen.&lt;br /&gt;
;Highest : User would input the value &#039;1&#039; for &#039;Keep highest&#039; in the category&lt;br /&gt;
;Lowest : Of doubtful use.  Not possible using natural weights, but it can also be done by a calculation into a new item.&lt;br /&gt;
;Median / Mode of grades: Not possible using natural weights, but it&#039;s doubtful anyone uses these anyway so perhaps this can be deprecated entirely.&lt;br /&gt;
&lt;br /&gt;
==Implementation stages==&lt;br /&gt;
&lt;br /&gt;
To be safe, we plan to implement this in stages:&lt;br /&gt;
&lt;br /&gt;
STAGE 1) Implement natural weighting as part of the Sum of Grades aggregation type, with admin settings that allow them to disable all other aggregations if they choose. (Moodle 2.8)&lt;br /&gt;
&lt;br /&gt;
STAGE 2) Once people have been using this for a while, explore the possibility of removing other aggregation code or making them into optional plugins. (Moodle 3.0 perhaps)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Interfaces==&lt;br /&gt;
&lt;br /&gt;
=== Category editing ===&lt;br /&gt;
&lt;br /&gt;
Prototype from luther.edu:&lt;br /&gt;
[[Image:NaturalWeights.png]]&lt;br /&gt;
&lt;br /&gt;
In addition the weights should be editable form fields here, and there would be one button per category to &amp;quot;reset weights&amp;quot; back to a natural Sum of Grades.&lt;br /&gt;
&lt;br /&gt;
=== Admin settings ===&lt;br /&gt;
&lt;br /&gt;
New setting to &amp;quot;Force Natural Weighting&amp;quot; (on/off).   This would default to OFF on upgraded sites and ON for new sites.&lt;br /&gt;
&lt;br /&gt;
ON:  this will hide the aggregation menu and all new categories will default to &amp;quot;Sum of grades&amp;quot; and natural weights.  It will not affect existing gradebooks with other aggregations set (see upgrade script below for a conversion strategy).&lt;br /&gt;
&lt;br /&gt;
OFF: aggregation menu is shown, but Sum of Grades will still contain new natural weighting UI and logic.&lt;br /&gt;
&lt;br /&gt;
==Upgrade script==&lt;br /&gt;
&lt;br /&gt;
If a site is switching to forced natural weights, they will probably want to upgrade all existing categories.&lt;br /&gt;
&lt;br /&gt;
This new optional upgrade script will examine all grade categories looking at aggregation methods.  It should report on what exists and allow the admin to perform an automated upgrade as follows:&lt;br /&gt;
&lt;br /&gt;
# If GRADE_AGGREGATE_WEIGHTED_MEAN then:&lt;br /&gt;
#* Store value of &#039;aggregationcoef&#039; fields to &#039;weight&#039; fields in grade_items&lt;br /&gt;
#* Set &#039;weightoverride&#039; field in grade_items&lt;br /&gt;
# If ... then:&lt;br /&gt;
#* &lt;br /&gt;
#* &lt;br /&gt;
&lt;br /&gt;
(We need exact strategies here for ALL aggregation types)&lt;br /&gt;
&lt;br /&gt;
==Database changes==&lt;br /&gt;
&lt;br /&gt;
;Add three fields to grade_items&lt;br /&gt;
# extracredit, tinyint, notnull, default: 0&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
# weightoverride, tinyint, notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
; Add one field to grade_grades&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
;This fixes the use of &#039;&#039;&#039;aggregationcoef&#039;&#039;&#039; representing both extra credit and weight in 2.7.&lt;br /&gt;
&lt;br /&gt;
== Unit test changes==&lt;br /&gt;
&lt;br /&gt;
==Functional test changes ==&lt;br /&gt;
&lt;br /&gt;
==Logic changes==&lt;br /&gt;
&lt;br /&gt;
Sum of Grades aggregation must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; hidden items and to &#039;&#039;&#039;exclude&#039;&#039;&#039; non-graded items&lt;br /&gt;
&lt;br /&gt;
Determination of range (in Grader and User report) and Max grade (in Setup screen) must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; extra credit items&lt;br /&gt;
&lt;br /&gt;
Natural weights must be saved and applied to the form.&lt;br /&gt;
&lt;br /&gt;
Natural weights are calculated for the Setup screen, the Grader report, and the User report. The calculation for the User report is different than that used for the Setup screen and Grader report.&lt;br /&gt;
&lt;br /&gt;
Weights should be stored in grade_items for the Setup screen and the Grader report and in the grade_grades table for the User report.&lt;br /&gt;
&lt;br /&gt;
==Functional Logic==&lt;br /&gt;
&lt;br /&gt;
# calculate up each container’s (category or course items) adjusted weight percentage and grademax associated with the items adjusted (need this for weighting, so could be done here or after the next step)&lt;br /&gt;
# calculate points (must be first, you cannot calculate weights until you have the finalgrade and grademax for categories). For each gtree-&amp;gt;levels starting with highest (items) to lowest (course) for both finalgrade and grademax&lt;br /&gt;
## include hidden only if hidetotalsifcontainhiddenitems is set to GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN&lt;br /&gt;
## ignore ungraded items if aggregateonlygraded is set, does not apply when calculating total points for Setup (Categories and items) screen&lt;br /&gt;
## include extra credit items in finalgrade calculations only, not grademax&lt;br /&gt;
## ignore items that have been dropped from drop low or keep high&lt;br /&gt;
## accumulate all other finalgrades and grademaxes into parent category finalgrade and grademaxes&lt;br /&gt;
# calculate weights (must be done before calculating contributions). For each gtree-&amp;gt;levels starting with highest (items) to lowest (course) &lt;br /&gt;
## weight is always item grademax / (container grademax - adjusted grademax for the container from step 1) * (100 - adjusted weight for the container from step 1)&lt;br /&gt;
# Adjust weights in a container to always equal 100&lt;br /&gt;
# calculate contributions (needed in order to accurately drop lowest, keep highest. Also needed to provide the most percentages). For each gtree-&amp;gt;levels starting with highest (items) to lowest (course)  &lt;br /&gt;
## contribution is always the item’s percentage * the item’s weight * the container’s weight… so (finalgrade / grademax) * item weight * container weight&lt;br /&gt;
# limit categories - drop lowest, keep highest (need to have contributions in order to accurately drop low and keep high)&lt;br /&gt;
## remove contribs&lt;br /&gt;
## remove finalgrades from parent finalgrade&lt;br /&gt;
## remove maxgrade from parent maxgrade&lt;br /&gt;
# during the process of limiting categories the points for containers is adjusted so we don’t need to recalculate points&lt;br /&gt;
# recalculate weights since we’ve removed items by dropping&lt;br /&gt;
# Adjust weights in a container to always equal 100&lt;br /&gt;
# recalc contributions since we’ve adjusted weights because of dropped items&lt;br /&gt;
&lt;br /&gt;
==The Math==&lt;br /&gt;
The sum of weights for all containers (categories and course) add up to 100% except in the case where extra credit is used in which case 100% is exceeded by the weight of the extra credit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup screen and Grader report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# ungraded items&#039; points (if aggregateonlygraded is on))&lt;br /&gt;
# any items dropped through container&#039;s drop lowest or keep highest conditions&lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
A multiplicator is used when some natural weights have been manually adjusted = sum(all adjusted weights) / 100&lt;br /&gt;
&lt;br /&gt;
The natural weight for each item contained in a category or course (including extra credit items) is &#039;item maximum points&#039; / &#039;total category or course points&#039; (in which the item is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
The natural weight for each category (including extra credit categories) is &#039;total category points&#039; / &#039;total category or course points&#039; (in which the category is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
==Calculation examples==&lt;br /&gt;
&lt;br /&gt;
===Example 1 simple sum===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you just want their scores added together (out of 50).&lt;br /&gt;
:No action is required of the user regarding weights.&lt;br /&gt;
&lt;br /&gt;
===Example 2 simple mean===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you want the final grade to be the simple mean percentage of all these scores.&lt;br /&gt;
:User should adjust all weights to be the same, i.e., 25%&lt;br /&gt;
&lt;br /&gt;
===Example 3 typical weighted categories===&lt;br /&gt;
User has four categories whose category totals are not in relation to each other as the user desires. They want the &#039;Quizzes&#039; to be worth 20%, the &#039;Exams&#039; to be worth 50% (with the midterm worth 20% and the final worth 30%), &#039;Papers&#039; worth 20%, and &#039;Attendance&#039; worth 10%&lt;br /&gt;
: User would edit the weights and &lt;br /&gt;
::- place the value 20 on the Quizzes category line&lt;br /&gt;
::- place the value 50 on the Exams category line&lt;br /&gt;
::- place the value 20 on the midterm exam item line&lt;br /&gt;
::- place the value 30 on the final exam item line&lt;br /&gt;
::- place the value 20 on the Papers category line&lt;br /&gt;
::- place the value 10 on the Attendance category (or item) line&lt;br /&gt;
: Then the user would save their weight settings&lt;br /&gt;
&lt;br /&gt;
===Example 4 (complex)===&lt;br /&gt;
&lt;br /&gt;
Category 1 contains seven items&lt;br /&gt;
# Item A = 20 points&lt;br /&gt;
# Item B = 10 points is extra credit&lt;br /&gt;
# Item C = 30 points&lt;br /&gt;
# Item D = 40 points is extra credit&lt;br /&gt;
# Item E = 50 points is hidden&lt;br /&gt;
# Item F = 50 points is ungraded&lt;br /&gt;
# Item G = 10 points whose natural weight has been adjusted to 50% of the category grade&lt;br /&gt;
&lt;br /&gt;
; In the Setup screen and the Grader report the following conditions will exist&lt;br /&gt;
:- Category grademax = 120 (10 + 50 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 110 (50 + 30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 8.33% (20 / 120 * .5)&lt;br /&gt;
:- B weight = 4.16% (10 / 120 * .5)&lt;br /&gt;
:- C weight = 12.5% (30 / 120 * .5)&lt;br /&gt;
:- D weight = 33.33% (40 / 120) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 25% (50 / 120 * .5)&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
; In the User report the following conditions will exist&lt;br /&gt;
:- Category grademax = 70 (10 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 60 (30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 16.66% (20 / 60 * .5)&lt;br /&gt;
:- B weight = 8.33% (10 / 60 * .5)&lt;br /&gt;
:- C weight = 25% (30 / 60 * .5)&lt;br /&gt;
:- D weight = 66.66% (40 / 60) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 0%&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
- [https://docs.google.com/document/d/18SCqecGsZT2w6wLaubFvX9nVXoF6I5xoQJ5-kLauLOU/edit Specifications for Natural weighting] (Google Doc) from the Moodle Gradebook Working Group&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=46084</id>
		<title>Natural weighting</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=46084"/>
		<updated>2014-08-04T12:51:08Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* Example 3 typical weighted categories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Natural Weighting&lt;br /&gt;
|state = Specification&lt;br /&gt;
|tracker = MDL-43378&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=263318&lt;br /&gt;
|assignee = Moodle HQ&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=263318}}&lt;br /&gt;
&lt;br /&gt;
Natural weighting is a modification to how grades are combined.&lt;br /&gt;
&lt;br /&gt;
When &#039;Sum of Grades&#039; aggregation is chosen (and natural weighting is active), there will be a weight column with form fields, looking like &amp;quot;Weighted mean&amp;quot; is in 2.7.  By default, the weight column shows the natural weights given to all categories and items based on gradebook structure.&lt;br /&gt;
&lt;br /&gt;
Weights can be overridden by modifying the values in the form fields.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Reset weights&amp;quot; button in each category resets the weights to their defaults.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;A clear overview of what is proposed here can be seen in https://www.youtube.com/watch?v=Qw9xtl9pGac&amp;amp;feature=youtu.be from about 1:30:00 to about 1:38:00. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rationale==&lt;br /&gt;
&lt;br /&gt;
;In grading, &#039;&#039;&#039;weight&#039;&#039;&#039; is the proportion of an item&#039;s value in relation to all the other items in its container (category or course). &lt;br /&gt;
;Value is most often represented as &#039;points&#039;. &lt;br /&gt;
;Every grade has a weight. &lt;br /&gt;
;There are three fundamental approaches to dealing with weighting in a gradebook&lt;br /&gt;
:- Simple (or natural) weighting, maximum points earnable for each item are appropriately in relation to one another. Example - If you have two items in a category, one worth 10 points and the other worth 30, then item 1 is 25% (10/40) and item 2 is 75% (30/40).&lt;br /&gt;
:- Adjusted weighting. Users often want to adjust categories and even items to have a weight other than the natural weight, essentially ignoring the points entirely. An example would be, Quizzes=40%, Assignments=50%, Attendance=10%. &lt;br /&gt;
:- Mean of grades. If I have a category made up of five quizzes all worth different points and I want a category percentage to just tell the average (or mean) of all the quiz results&#039; percentage correct, I would choose this approach again, disregarding the points.&lt;br /&gt;
;Simplifying the understanding of weighting reduces the aggregation methodology down to &#039;either/ or&#039; &lt;br /&gt;
:- either &#039;leave weights as is -- natural&#039; &lt;br /&gt;
:- or &#039;adjust to suit my needs -- adjusted weights&#039;&lt;br /&gt;
&lt;br /&gt;
;This greatly simplifies the interface needed to present these options&lt;br /&gt;
:- They don&#039;t need to select an aggregation type&lt;br /&gt;
:- They don&#039;t need to know how each aggregation type performs&lt;br /&gt;
:- The &#039;&#039;&#039;actual&#039;&#039;&#039; weight of every item and category is &#039;&#039;&#039;always&#039;&#039;&#039; displayed to them. &lt;br /&gt;
:- If those are not the weights they want, they merely adjust them.&lt;br /&gt;
:- Much easier for the common user to grasp.  &lt;br /&gt;
&lt;br /&gt;
This interface and calculations are expected to suit the needs of all except very edge cases (which can still be handled with formulas).  If it turns out that this is enough for everyone then we can potentially remove quite a lot of aggregation code from the gradebook at a later stage, improving speed and readability.&lt;br /&gt;
&lt;br /&gt;
===How natural weights meets the requirements of the aggregation types===&lt;br /&gt;
;Sum of grades: Moodle determines the &amp;quot;natural weights&amp;quot; for this by default based on point values.&lt;br /&gt;
;Mean of grades: Set all weights equal to each other. Doesn&#039;t matter what the number is, as in legacy behavior Moodle will automatically adjust so the sum equals 100%. However, in this implementation the group wants to have a pop-up warning the user the weights don&#039;t add up to 100% and they will therefore be adjusted uniformly to equal 100%.&lt;br /&gt;
;Weighted mean of grades: Adjust weights as desired. No change from current behavior.&lt;br /&gt;
;Simple weighted mean of grades: Leave all weightings as is, no change necessary. Same as Sum of grades.&lt;br /&gt;
;Mean of grades (with extra credits): Extra credit has a natural weight that takes the total container (category/ course) weight above 100% (hence, &#039;extra&#039;). Extra credit is available at all times no matter what scheme of weighting is chosen.&lt;br /&gt;
;Highest : User would input the value &#039;1&#039; for &#039;Keep highest&#039; in the category&lt;br /&gt;
;Lowest : Of doubtful use.  Not possible using natural weights, but it can also be done by a calculation into a new item.&lt;br /&gt;
;Median / Mode of grades: Not possible using natural weights, but it&#039;s doubtful anyone uses these anyway so perhaps this can be deprecated entirely.&lt;br /&gt;
&lt;br /&gt;
==Implementation stages==&lt;br /&gt;
&lt;br /&gt;
To be safe, we plan to implement this in stages:&lt;br /&gt;
&lt;br /&gt;
STAGE 1) Implement natural weighting as part of the Sum of Grades aggregation type, with admin settings that allow them to disable all other aggregations if they choose. (Moodle 2.8)&lt;br /&gt;
&lt;br /&gt;
STAGE 2) Once people have been using this for a while, explore the possibility of removing other aggregation code or making them into optional plugins. (Moodle 3.0 perhaps)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Interfaces==&lt;br /&gt;
&lt;br /&gt;
=== Category editing ===&lt;br /&gt;
&lt;br /&gt;
Prototype from luther.edu:&lt;br /&gt;
[[Image:NaturalWeights.png]]&lt;br /&gt;
&lt;br /&gt;
In addition the weights should be editable form fields here, and there would be one button per category to &amp;quot;reset weights&amp;quot; back to a natural Sum of Grades.&lt;br /&gt;
&lt;br /&gt;
=== Admin settings ===&lt;br /&gt;
&lt;br /&gt;
New setting to &amp;quot;Force Natural Weighting&amp;quot; (on/off).   This would default to OFF on upgraded sites and ON for new sites.&lt;br /&gt;
&lt;br /&gt;
ON:  this will hide the aggregation menu and all new categories will default to &amp;quot;Sum of grades&amp;quot; and natural weights.  It will not affect existing gradebooks with other aggregations set (see upgrade script below for a conversion strategy).&lt;br /&gt;
&lt;br /&gt;
OFF: aggregation menu is shown, but Sum of Grades will still contain new natural weighting UI and logic.&lt;br /&gt;
&lt;br /&gt;
==Upgrade script==&lt;br /&gt;
&lt;br /&gt;
If a site is switching to forced natural weights, they will probably want to upgrade all existing categories.&lt;br /&gt;
&lt;br /&gt;
This new optional upgrade script will examine all grade categories looking at aggregation methods.  It should report on what exists and allow the admin to perform an automated upgrade as follows:&lt;br /&gt;
&lt;br /&gt;
# If GRADE_AGGREGATE_WEIGHTED_MEAN then:&lt;br /&gt;
#* Store value of &#039;aggregationcoef&#039; fields to &#039;weight&#039; fields in grade_items&lt;br /&gt;
#* Set &#039;weightoverride&#039; field in grade_items&lt;br /&gt;
# If ... then:&lt;br /&gt;
#* &lt;br /&gt;
#* &lt;br /&gt;
&lt;br /&gt;
(We need exact strategies here for ALL aggregation types)&lt;br /&gt;
&lt;br /&gt;
==Database changes==&lt;br /&gt;
&lt;br /&gt;
;Add three fields to grade_items&lt;br /&gt;
# extracredit, tinyint, notnull, default: 0&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
# weightoverride, tinyint, notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
; Add one field to grade_grades&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
;This fixes the use of &#039;&#039;&#039;aggregationcoef&#039;&#039;&#039; representing both extra credit and weight in 2.7.&lt;br /&gt;
&lt;br /&gt;
== Unit test changes==&lt;br /&gt;
&lt;br /&gt;
==Functional test changes ==&lt;br /&gt;
&lt;br /&gt;
==Logic changes==&lt;br /&gt;
&lt;br /&gt;
Sum of Grades aggregation must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; hidden items and to &#039;&#039;&#039;exclude&#039;&#039;&#039; non-graded items&lt;br /&gt;
&lt;br /&gt;
Determination of range (in Grader and User report) and Max grade (in Setup screen) must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; extra credit items&lt;br /&gt;
&lt;br /&gt;
Natural weights must be saved and applied to the form.&lt;br /&gt;
&lt;br /&gt;
Natural weights are calculated for the Setup screen, the Grader report, and the User report. The calculation for the User report is different than that used for the Setup screen and Grader report.&lt;br /&gt;
&lt;br /&gt;
Weights should be stored in grade_items for the Setup screen and the Grader report and in the grade_grades table for the User report.&lt;br /&gt;
&lt;br /&gt;
==Functional Logic==&lt;br /&gt;
&lt;br /&gt;
# calculate up each container’s (category or course items) adjusted weight percentage and grademax associated with the items adjusted (need this for weighting, so could be done here or after the next step)&lt;br /&gt;
# calculate points (must be first, you cannot calculate weights until you have the finalgrade and grademax for categories). For each gtree-&amp;gt;levels starting with highest (items) to lowest (course) for both finalgrade and grademax&lt;br /&gt;
## include hidden only if hidetotalsifcontainhiddenitems is set to GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN&lt;br /&gt;
## ignore ungraded items if aggregateonlygraded is set, does not apply when calculating total points for Setup (Categories and items) screen&lt;br /&gt;
## include extra credit items in finalgrade calculations only, not grademax&lt;br /&gt;
## ignore items that have been dropped from drop low or keep high&lt;br /&gt;
## accumulate all other finalgrades and grademaxes into parent category finalgrade and grademaxes&lt;br /&gt;
# calculate weights (must be done before calculating contributions). For each gtree-&amp;gt;levels starting with highest (items) to lowest (course) &lt;br /&gt;
## weight is always item grademax / (container grademax - adjusted grademax for the container from step 1) * (100 - adjusted weight for the container from step 1)&lt;br /&gt;
# Adjust weights in a container to always equal 100&lt;br /&gt;
# calculate contributions (needed in order to accurately drop lowest, keep highest. Also needed to provide the most percentages). For each gtree-&amp;gt;levels starting with highest (items) to lowest (course)  &lt;br /&gt;
## contribution is always the item’s percentage * the item’s weight * the container’s weight… so (finalgrade / grademax) * item weight * container weight&lt;br /&gt;
# limit categories - drop lowest, keep highest (need to have contributions in order to accurately drop low and keep high)&lt;br /&gt;
## remove contribs&lt;br /&gt;
## remove finalgrades from parent finalgrade&lt;br /&gt;
## remove maxgrade from parent maxgrade&lt;br /&gt;
# during the process of limiting categories the points for containers is adjusted so we don’t need to recalculate points&lt;br /&gt;
# recalculate weights since we’ve removed items by dropping&lt;br /&gt;
# Adjust weights in a container to always equal 100&lt;br /&gt;
# recalc contributions since we’ve removed items by dropping&lt;br /&gt;
&lt;br /&gt;
==The Math==&lt;br /&gt;
The sum of weights for all containers (categories and course) add up to 100% except in the case where extra credit is used in which case 100% is exceeded by the weight of the extra credit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup screen and Grader report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# ungraded items&#039; points (if aggregateonlygraded is on))&lt;br /&gt;
# any items dropped through container&#039;s drop lowest or keep highest conditions&lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
A multiplicator is used when some natural weights have been manually adjusted = sum(all adjusted weights) / 100&lt;br /&gt;
&lt;br /&gt;
The natural weight for each item contained in a category or course (including extra credit items) is &#039;item maximum points&#039; / &#039;total category or course points&#039; (in which the item is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
The natural weight for each category (including extra credit categories) is &#039;total category points&#039; / &#039;total category or course points&#039; (in which the category is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
==Calculation examples==&lt;br /&gt;
&lt;br /&gt;
===Example 1 simple sum===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you just want their scores added together (out of 50).&lt;br /&gt;
:No action is required of the user regarding weights.&lt;br /&gt;
&lt;br /&gt;
===Example 2 simple mean===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you want the final grade to be the simple mean percentage of all these scores.&lt;br /&gt;
:User should adjust all weights to be the same, i.e., 25%&lt;br /&gt;
&lt;br /&gt;
===Example 3 typical weighted categories===&lt;br /&gt;
User has four categories whose category totals are not in relation to each other as the user desires. They want the &#039;Quizzes&#039; to be worth 20%, the &#039;Exams&#039; to be worth 50% (with the midterm worth 20% and the final worth 30%), &#039;Papers&#039; worth 20%, and &#039;Attendance&#039; worth 10%&lt;br /&gt;
: User would edit the weights and &lt;br /&gt;
::- place the value 20 on the Quizzes category line&lt;br /&gt;
::- place the value 50 on the Exams category line&lt;br /&gt;
::- place the value 20 on the midterm exam item line&lt;br /&gt;
::- place the value 30 on the final exam item line&lt;br /&gt;
::- place the value 20 on the Papers category line&lt;br /&gt;
::- place the value 10 on the Attendance category (or item) line&lt;br /&gt;
: Then the user would save their weight settings&lt;br /&gt;
&lt;br /&gt;
===Example 4 (complex)===&lt;br /&gt;
&lt;br /&gt;
Category 1 contains seven items&lt;br /&gt;
# Item A = 20 points&lt;br /&gt;
# Item B = 10 points is extra credit&lt;br /&gt;
# Item C = 30 points&lt;br /&gt;
# Item D = 40 points is extra credit&lt;br /&gt;
# Item E = 50 points is hidden&lt;br /&gt;
# Item F = 50 points is ungraded&lt;br /&gt;
# Item G = 10 points whose natural weight has been adjusted to 50% of the category grade&lt;br /&gt;
&lt;br /&gt;
; In the Setup screen and the Grader report the following conditions will exist&lt;br /&gt;
:- Category grademax = 120 (10 + 50 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 110 (50 + 30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 8.33% (20 / 120 * .5)&lt;br /&gt;
:- B weight = 4.16% (10 / 120 * .5)&lt;br /&gt;
:- C weight = 12.5% (30 / 120 * .5)&lt;br /&gt;
:- D weight = 33.33% (40 / 120) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 25% (50 / 120 * .5)&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
; In the User report the following conditions will exist&lt;br /&gt;
:- Category grademax = 70 (10 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 60 (30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 16.66% (20 / 60 * .5)&lt;br /&gt;
:- B weight = 8.33% (10 / 60 * .5)&lt;br /&gt;
:- C weight = 25% (30 / 60 * .5)&lt;br /&gt;
:- D weight = 66.66% (40 / 60) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 0%&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
- [https://docs.google.com/document/d/18SCqecGsZT2w6wLaubFvX9nVXoF6I5xoQJ5-kLauLOU/edit Specifications for Natural weighting] (Google Doc) from the Moodle Gradebook Working Group&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=46073</id>
		<title>Natural weighting</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=46073"/>
		<updated>2014-08-03T20:26:17Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* Functional Logic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Natural Weighting&lt;br /&gt;
|state = Specification&lt;br /&gt;
|tracker = MDL-43378&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=263318&lt;br /&gt;
|assignee = Moodle HQ&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=263318}}&lt;br /&gt;
&lt;br /&gt;
Natural weighting is a modification to how grades are combined.&lt;br /&gt;
&lt;br /&gt;
When &#039;Sum of Grades&#039; aggregation is chosen (and natural weighting is active), there will be a weight column with form fields, looking like &amp;quot;Weighted mean&amp;quot; is in 2.7.  By default, the weight column shows the natural weights given to all categories and items based on gradebook structure.&lt;br /&gt;
&lt;br /&gt;
Weights can be overridden by modifying the values in the form fields.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Reset weights&amp;quot; button in each category resets the weights to their defaults.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;A clear overview of what is proposed here can be seen in https://www.youtube.com/watch?v=Qw9xtl9pGac&amp;amp;feature=youtu.be from about 1:30:00 to about 1:38:00. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rationale==&lt;br /&gt;
&lt;br /&gt;
;In grading, &#039;&#039;&#039;weight&#039;&#039;&#039; is the proportion of an item&#039;s value in relation to all the other items in its container (category or course). &lt;br /&gt;
;Value is most often represented as &#039;points&#039;. &lt;br /&gt;
;Every grade has a weight. &lt;br /&gt;
;There are three fundamental approaches to dealing with weighting in a gradebook&lt;br /&gt;
:- Simple (or natural) weighting, maximum points earnable for each item are appropriately in relation to one another. Example - If you have two items in a category, one worth 10 points and the other worth 30, then item 1 is 25% (10/40) and item 2 is 75% (30/40).&lt;br /&gt;
:- Adjusted weighting. Users often want to adjust categories and even items to have a weight other than the natural weight, essentially ignoring the points entirely. An example would be, Quizzes=40%, Assignments=50%, Attendance=10%. &lt;br /&gt;
:- Mean of grades. If I have a category made up of five quizzes all worth different points and I want a category percentage to just tell the average (or mean) of all the quiz results&#039; percentage correct, I would choose this approach again, disregarding the points.&lt;br /&gt;
;Simplifying the understanding of weighting reduces the aggregation methodology down to &#039;either/ or&#039; &lt;br /&gt;
:- either &#039;leave weights as is -- natural&#039; &lt;br /&gt;
:- or &#039;adjust to suit my needs -- adjusted weights&#039;&lt;br /&gt;
&lt;br /&gt;
;This greatly simplifies the interface needed to present these options&lt;br /&gt;
:- They don&#039;t need to select an aggregation type&lt;br /&gt;
:- They don&#039;t need to know how each aggregation type performs&lt;br /&gt;
:- The &#039;&#039;&#039;actual&#039;&#039;&#039; weight of every item and category is &#039;&#039;&#039;always&#039;&#039;&#039; displayed to them. &lt;br /&gt;
:- If those are not the weights they want, they merely adjust them.&lt;br /&gt;
:- Much easier for the common user to grasp.  &lt;br /&gt;
&lt;br /&gt;
This interface and calculations are expected to suit the needs of all except very edge cases (which can still be handled with formulas).  If it turns out that this is enough for everyone then we can potentially remove quite a lot of aggregation code from the gradebook at a later stage, improving speed and readability.&lt;br /&gt;
&lt;br /&gt;
===How natural weights meets the requirements of the aggregation types===&lt;br /&gt;
;Sum of grades: Moodle determines the &amp;quot;natural weights&amp;quot; for this by default based on point values.&lt;br /&gt;
;Mean of grades: Set all weights equal to each other. Doesn&#039;t matter what the number is, as in legacy behavior Moodle will automatically adjust so the sum equals 100%. However, in this implementation the group wants to have a pop-up warning the user the weights don&#039;t add up to 100% and they will therefore be adjusted uniformly to equal 100%.&lt;br /&gt;
;Weighted mean of grades: Adjust weights as desired. No change from current behavior.&lt;br /&gt;
;Simple weighted mean of grades: Leave all weightings as is, no change necessary. Same as Sum of grades.&lt;br /&gt;
;Mean of grades (with extra credits): Extra credit has a natural weight that takes the total container (category/ course) weight above 100% (hence, &#039;extra&#039;). Extra credit is available at all times no matter what scheme of weighting is chosen.&lt;br /&gt;
;Highest : User would input the value &#039;1&#039; for &#039;Keep highest&#039; in the category&lt;br /&gt;
;Lowest : Of doubtful use.  Not possible using natural weights, but it can also be done by a calculation into a new item.&lt;br /&gt;
;Median / Mode of grades: Not possible using natural weights, but it&#039;s doubtful anyone uses these anyway so perhaps this can be deprecated entirely.&lt;br /&gt;
&lt;br /&gt;
==Implementation stages==&lt;br /&gt;
&lt;br /&gt;
To be safe, we plan to implement this in stages:&lt;br /&gt;
&lt;br /&gt;
STAGE 1) Implement natural weighting as part of the Sum of Grades aggregation type, with admin settings that allow them to disable all other aggregations if they choose. (Moodle 2.8)&lt;br /&gt;
&lt;br /&gt;
STAGE 2) Once people have been using this for a while, explore the possibility of removing other aggregation code or making them into optional plugins. (Moodle 3.0 perhaps)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Interfaces==&lt;br /&gt;
&lt;br /&gt;
=== Category editing ===&lt;br /&gt;
&lt;br /&gt;
Prototype from luther.edu:&lt;br /&gt;
[[Image:NaturalWeights.png]]&lt;br /&gt;
&lt;br /&gt;
In addition the weights should be editable form fields here, and there would be one button per category to &amp;quot;reset weights&amp;quot; back to a natural Sum of Grades.&lt;br /&gt;
&lt;br /&gt;
=== Admin settings ===&lt;br /&gt;
&lt;br /&gt;
New setting to &amp;quot;Force Natural Weighting&amp;quot; (on/off).   This would default to OFF on upgraded sites and ON for new sites.&lt;br /&gt;
&lt;br /&gt;
ON:  this will hide the aggregation menu and all new categories will default to &amp;quot;Sum of grades&amp;quot; and natural weights.  It will not affect existing gradebooks with other aggregations set (see upgrade script below for a conversion strategy).&lt;br /&gt;
&lt;br /&gt;
OFF: aggregation menu is shown, but Sum of Grades will still contain new natural weighting UI and logic.&lt;br /&gt;
&lt;br /&gt;
==Upgrade script==&lt;br /&gt;
&lt;br /&gt;
If a site is switching to forced natural weights, they will probably want to upgrade all existing categories.&lt;br /&gt;
&lt;br /&gt;
This new optional upgrade script will examine all grade categories looking at aggregation methods.  It should report on what exists and allow the admin to perform an automated upgrade as follows:&lt;br /&gt;
&lt;br /&gt;
# If GRADE_AGGREGATE_WEIGHTED_MEAN then:&lt;br /&gt;
#* Store value of &#039;aggregationcoef&#039; fields to &#039;weight&#039; fields in grade_items&lt;br /&gt;
#* Set &#039;weightoverride&#039; field in grade_items&lt;br /&gt;
# If ... then:&lt;br /&gt;
#* &lt;br /&gt;
#* &lt;br /&gt;
&lt;br /&gt;
(We need exact strategies here for ALL aggregation types)&lt;br /&gt;
&lt;br /&gt;
==Database changes==&lt;br /&gt;
&lt;br /&gt;
;Add three fields to grade_items&lt;br /&gt;
# extracredit, tinyint, notnull, default: 0&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
# weightoverride, tinyint, notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
; Add one field to grade_grades&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
;This fixes the use of &#039;&#039;&#039;aggregationcoef&#039;&#039;&#039; representing both extra credit and weight in 2.7.&lt;br /&gt;
&lt;br /&gt;
== Unit test changes==&lt;br /&gt;
&lt;br /&gt;
==Functional test changes ==&lt;br /&gt;
&lt;br /&gt;
==Logic changes==&lt;br /&gt;
&lt;br /&gt;
Sum of Grades aggregation must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; hidden items and to &#039;&#039;&#039;exclude&#039;&#039;&#039; non-graded items&lt;br /&gt;
&lt;br /&gt;
Determination of range (in Grader and User report) and Max grade (in Setup screen) must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; extra credit items&lt;br /&gt;
&lt;br /&gt;
Natural weights must be saved and applied to the form.&lt;br /&gt;
&lt;br /&gt;
Natural weights are calculated for the Setup screen, the Grader report, and the User report. The calculation for the User report is different than that used for the Setup screen and Grader report.&lt;br /&gt;
&lt;br /&gt;
Weights should be stored in grade_items for the Setup screen and the Grader report and in the grade_grades table for the User report.&lt;br /&gt;
&lt;br /&gt;
==Functional Logic==&lt;br /&gt;
&lt;br /&gt;
# calculate up each container’s (category or course items) adjusted weight percentage and grademax associated with the items adjusted (need this for weighting, so could be done here or after the next step)&lt;br /&gt;
# calculate points (must be first, you cannot calculate weights until you have the finalgrade and grademax for categories). For each gtree-&amp;gt;levels starting with highest (items) to lowest (course) for both finalgrade and grademax&lt;br /&gt;
## include hidden only if hidetotalsifcontainhiddenitems is set to GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN&lt;br /&gt;
## ignore ungraded items if aggregateonlygraded is set, does not apply when calculating total points for Setup (Categories and items) screen&lt;br /&gt;
## include extra credit items in finalgrade calculations only, not grademax&lt;br /&gt;
## ignore items that have been dropped from drop low or keep high&lt;br /&gt;
## accumulate all other finalgrades and grademaxes into parent category finalgrade and grademaxes&lt;br /&gt;
# calculate weights (must be done before calculating contributions). For each gtree-&amp;gt;levels starting with highest (items) to lowest (course) &lt;br /&gt;
## weight is always item grademax / (container grademax - adjusted grademax for the container from step 1) * (100 - adjusted weight for the container from step 1)&lt;br /&gt;
# Adjust weights in a container to always equal 100&lt;br /&gt;
# calculate contributions (needed in order to accurately drop lowest, keep highest. Also needed to provide the most percentages). For each gtree-&amp;gt;levels starting with highest (items) to lowest (course)  &lt;br /&gt;
## contribution is always the item’s percentage * the item’s weight * the container’s weight… so (finalgrade / grademax) * item weight * container weight&lt;br /&gt;
# limit categories - drop lowest, keep highest (need to have contributions in order to accurately drop low and keep high)&lt;br /&gt;
## remove contribs&lt;br /&gt;
## remove finalgrades from parent finalgrade&lt;br /&gt;
## remove maxgrade from parent maxgrade&lt;br /&gt;
# during the process of limiting categories the points for containers is adjusted so we don’t need to recalculate points&lt;br /&gt;
# recalculate weights since we’ve removed items by dropping&lt;br /&gt;
# Adjust weights in a container to always equal 100&lt;br /&gt;
# recalc contributions since we’ve removed items by dropping&lt;br /&gt;
&lt;br /&gt;
==The Math==&lt;br /&gt;
The sum of weights for all containers (categories and course) add up to 100% except in the case where extra credit is used in which case 100% is exceeded by the weight of the extra credit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup screen and Grader report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# ungraded items&#039; points (if aggregateonlygraded is on))&lt;br /&gt;
# any items dropped through container&#039;s drop lowest or keep highest conditions&lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
A multiplicator is used when some natural weights have been manually adjusted = sum(all adjusted weights) / 100&lt;br /&gt;
&lt;br /&gt;
The natural weight for each item contained in a category or course (including extra credit items) is &#039;item maximum points&#039; / &#039;total category or course points&#039; (in which the item is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
The natural weight for each category (including extra credit categories) is &#039;total category points&#039; / &#039;total category or course points&#039; (in which the category is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
==Calculation examples==&lt;br /&gt;
&lt;br /&gt;
===Example 1 simple sum===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you just want their scores added together (out of 50).&lt;br /&gt;
:No action is required of the user regarding weights.&lt;br /&gt;
&lt;br /&gt;
===Example 2 simple mean===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you want the final grade to be the simple mean percentage of all these scores.&lt;br /&gt;
:User should adjust all weights to be the same, i.e., 25%&lt;br /&gt;
&lt;br /&gt;
===Example 3 typical weighted categories===&lt;br /&gt;
User has four categories whose category totals are not in relation to each other as the user desires. They want the &#039;Quizzes&#039; to be worth 20%, the &#039;Exams&#039; to be worth 50% (with the midterm worth 20% and the final worth 30%), &#039;Papers&#039; worth 20%, and &#039;Attendance&#039; worth 10%&lt;br /&gt;
: User would edit the weights and &lt;br /&gt;
::- place the value 20 on the Quizzes category line&lt;br /&gt;
::- place the value 50 on the Exams category line&lt;br /&gt;
::- place the value 20 on the midterm exam item line&lt;br /&gt;
::- place the value 30 on the final exam item line&lt;br /&gt;
::- place the value 20 on the Papers category line&lt;br /&gt;
::- place the value 20 on the Attendance category (or item) line&lt;br /&gt;
: Then the user would save their weight settings&lt;br /&gt;
&lt;br /&gt;
===Example 4 (complex)===&lt;br /&gt;
&lt;br /&gt;
Category 1 contains seven items&lt;br /&gt;
# Item A = 20 points&lt;br /&gt;
# Item B = 10 points is extra credit&lt;br /&gt;
# Item C = 30 points&lt;br /&gt;
# Item D = 40 points is extra credit&lt;br /&gt;
# Item E = 50 points is hidden&lt;br /&gt;
# Item F = 50 points is ungraded&lt;br /&gt;
# Item G = 10 points whose natural weight has been adjusted to 50% of the category grade&lt;br /&gt;
&lt;br /&gt;
; In the Setup screen and the Grader report the following conditions will exist&lt;br /&gt;
:- Category grademax = 120 (10 + 50 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 110 (50 + 30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 8.33% (20 / 120 * .5)&lt;br /&gt;
:- B weight = 4.16% (10 / 120 * .5)&lt;br /&gt;
:- C weight = 12.5% (30 / 120 * .5)&lt;br /&gt;
:- D weight = 33.33% (40 / 120) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 25% (50 / 120 * .5)&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
; In the User report the following conditions will exist&lt;br /&gt;
:- Category grademax = 70 (10 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 60 (30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 16.66% (20 / 60 * .5)&lt;br /&gt;
:- B weight = 8.33% (10 / 60 * .5)&lt;br /&gt;
:- C weight = 25% (30 / 60 * .5)&lt;br /&gt;
:- D weight = 66.66% (40 / 60) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 0%&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
- [https://docs.google.com/document/d/18SCqecGsZT2w6wLaubFvX9nVXoF6I5xoQJ5-kLauLOU/edit Specifications for Natural weighting] (Google Doc) from the Moodle Gradebook Working Group&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=46072</id>
		<title>Natural weighting</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=46072"/>
		<updated>2014-08-03T17:38:14Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* Functional Logic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Natural Weighting&lt;br /&gt;
|state = Specification&lt;br /&gt;
|tracker = MDL-43378&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=263318&lt;br /&gt;
|assignee = Moodle HQ&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=263318}}&lt;br /&gt;
&lt;br /&gt;
Natural weighting is a modification to how grades are combined.&lt;br /&gt;
&lt;br /&gt;
When &#039;Sum of Grades&#039; aggregation is chosen (and natural weighting is active), there will be a weight column with form fields, looking like &amp;quot;Weighted mean&amp;quot; is in 2.7.  By default, the weight column shows the natural weights given to all categories and items based on gradebook structure.&lt;br /&gt;
&lt;br /&gt;
Weights can be overridden by modifying the values in the form fields.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Reset weights&amp;quot; button in each category resets the weights to their defaults.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;A clear overview of what is proposed here can be seen in https://www.youtube.com/watch?v=Qw9xtl9pGac&amp;amp;feature=youtu.be from about 1:30:00 to about 1:38:00. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rationale==&lt;br /&gt;
&lt;br /&gt;
;In grading, &#039;&#039;&#039;weight&#039;&#039;&#039; is the proportion of an item&#039;s value in relation to all the other items in its container (category or course). &lt;br /&gt;
;Value is most often represented as &#039;points&#039;. &lt;br /&gt;
;Every grade has a weight. &lt;br /&gt;
;There are three fundamental approaches to dealing with weighting in a gradebook&lt;br /&gt;
:- Simple (or natural) weighting, maximum points earnable for each item are appropriately in relation to one another. Example - If you have two items in a category, one worth 10 points and the other worth 30, then item 1 is 25% (10/40) and item 2 is 75% (30/40).&lt;br /&gt;
:- Adjusted weighting. Users often want to adjust categories and even items to have a weight other than the natural weight, essentially ignoring the points entirely. An example would be, Quizzes=40%, Assignments=50%, Attendance=10%. &lt;br /&gt;
:- Mean of grades. If I have a category made up of five quizzes all worth different points and I want a category percentage to just tell the average (or mean) of all the quiz results&#039; percentage correct, I would choose this approach again, disregarding the points.&lt;br /&gt;
;Simplifying the understanding of weighting reduces the aggregation methodology down to &#039;either/ or&#039; &lt;br /&gt;
:- either &#039;leave weights as is -- natural&#039; &lt;br /&gt;
:- or &#039;adjust to suit my needs -- adjusted weights&#039;&lt;br /&gt;
&lt;br /&gt;
;This greatly simplifies the interface needed to present these options&lt;br /&gt;
:- They don&#039;t need to select an aggregation type&lt;br /&gt;
:- They don&#039;t need to know how each aggregation type performs&lt;br /&gt;
:- The &#039;&#039;&#039;actual&#039;&#039;&#039; weight of every item and category is &#039;&#039;&#039;always&#039;&#039;&#039; displayed to them. &lt;br /&gt;
:- If those are not the weights they want, they merely adjust them.&lt;br /&gt;
:- Much easier for the common user to grasp.  &lt;br /&gt;
&lt;br /&gt;
This interface and calculations are expected to suit the needs of all except very edge cases (which can still be handled with formulas).  If it turns out that this is enough for everyone then we can potentially remove quite a lot of aggregation code from the gradebook at a later stage, improving speed and readability.&lt;br /&gt;
&lt;br /&gt;
===How natural weights meets the requirements of the aggregation types===&lt;br /&gt;
;Sum of grades: Moodle determines the &amp;quot;natural weights&amp;quot; for this by default based on point values.&lt;br /&gt;
;Mean of grades: Set all weights equal to each other. Doesn&#039;t matter what the number is, as in legacy behavior Moodle will automatically adjust so the sum equals 100%. However, in this implementation the group wants to have a pop-up warning the user the weights don&#039;t add up to 100% and they will therefore be adjusted uniformly to equal 100%.&lt;br /&gt;
;Weighted mean of grades: Adjust weights as desired. No change from current behavior.&lt;br /&gt;
;Simple weighted mean of grades: Leave all weightings as is, no change necessary. Same as Sum of grades.&lt;br /&gt;
;Mean of grades (with extra credits): Extra credit has a natural weight that takes the total container (category/ course) weight above 100% (hence, &#039;extra&#039;). Extra credit is available at all times no matter what scheme of weighting is chosen.&lt;br /&gt;
;Highest : User would input the value &#039;1&#039; for &#039;Keep highest&#039; in the category&lt;br /&gt;
;Lowest : Of doubtful use.  Not possible using natural weights, but it can also be done by a calculation into a new item.&lt;br /&gt;
;Median / Mode of grades: Not possible using natural weights, but it&#039;s doubtful anyone uses these anyway so perhaps this can be deprecated entirely.&lt;br /&gt;
&lt;br /&gt;
==Implementation stages==&lt;br /&gt;
&lt;br /&gt;
To be safe, we plan to implement this in stages:&lt;br /&gt;
&lt;br /&gt;
STAGE 1) Implement natural weighting as part of the Sum of Grades aggregation type, with admin settings that allow them to disable all other aggregations if they choose. (Moodle 2.8)&lt;br /&gt;
&lt;br /&gt;
STAGE 2) Once people have been using this for a while, explore the possibility of removing other aggregation code or making them into optional plugins. (Moodle 3.0 perhaps)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Interfaces==&lt;br /&gt;
&lt;br /&gt;
=== Category editing ===&lt;br /&gt;
&lt;br /&gt;
Prototype from luther.edu:&lt;br /&gt;
[[Image:NaturalWeights.png]]&lt;br /&gt;
&lt;br /&gt;
In addition the weights should be editable form fields here, and there would be one button per category to &amp;quot;reset weights&amp;quot; back to a natural Sum of Grades.&lt;br /&gt;
&lt;br /&gt;
=== Admin settings ===&lt;br /&gt;
&lt;br /&gt;
New setting to &amp;quot;Force Natural Weighting&amp;quot; (on/off).   This would default to OFF on upgraded sites and ON for new sites.&lt;br /&gt;
&lt;br /&gt;
ON:  this will hide the aggregation menu and all new categories will default to &amp;quot;Sum of grades&amp;quot; and natural weights.  It will not affect existing gradebooks with other aggregations set (see upgrade script below for a conversion strategy).&lt;br /&gt;
&lt;br /&gt;
OFF: aggregation menu is shown, but Sum of Grades will still contain new natural weighting UI and logic.&lt;br /&gt;
&lt;br /&gt;
==Upgrade script==&lt;br /&gt;
&lt;br /&gt;
If a site is switching to forced natural weights, they will probably want to upgrade all existing categories.&lt;br /&gt;
&lt;br /&gt;
This new optional upgrade script will examine all grade categories looking at aggregation methods.  It should report on what exists and allow the admin to perform an automated upgrade as follows:&lt;br /&gt;
&lt;br /&gt;
# If GRADE_AGGREGATE_WEIGHTED_MEAN then:&lt;br /&gt;
#* Store value of &#039;aggregationcoef&#039; fields to &#039;weight&#039; fields in grade_items&lt;br /&gt;
#* Set &#039;weightoverride&#039; field in grade_items&lt;br /&gt;
# If ... then:&lt;br /&gt;
#* &lt;br /&gt;
#* &lt;br /&gt;
&lt;br /&gt;
(We need exact strategies here for ALL aggregation types)&lt;br /&gt;
&lt;br /&gt;
==Database changes==&lt;br /&gt;
&lt;br /&gt;
;Add three fields to grade_items&lt;br /&gt;
# extracredit, tinyint, notnull, default: 0&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
# weightoverride, tinyint, notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
; Add one field to grade_grades&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
;This fixes the use of &#039;&#039;&#039;aggregationcoef&#039;&#039;&#039; representing both extra credit and weight in 2.7.&lt;br /&gt;
&lt;br /&gt;
== Unit test changes==&lt;br /&gt;
&lt;br /&gt;
==Functional test changes ==&lt;br /&gt;
&lt;br /&gt;
==Logic changes==&lt;br /&gt;
&lt;br /&gt;
Sum of Grades aggregation must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; hidden items and to &#039;&#039;&#039;exclude&#039;&#039;&#039; non-graded items&lt;br /&gt;
&lt;br /&gt;
Determination of range (in Grader and User report) and Max grade (in Setup screen) must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; extra credit items&lt;br /&gt;
&lt;br /&gt;
Natural weights must be saved and applied to the form.&lt;br /&gt;
&lt;br /&gt;
Natural weights are calculated for the Setup screen, the Grader report, and the User report. The calculation for the User report is different than that used for the Setup screen and Grader report.&lt;br /&gt;
&lt;br /&gt;
Weights should be stored in grade_items for the Setup screen and the Grader report and in the grade_grades table for the User report.&lt;br /&gt;
&lt;br /&gt;
==Functional Logic==&lt;br /&gt;
&lt;br /&gt;
# calculate up each container’s (category or course items) adjusted weight percentage and grademax associated with the items adjusted (need this for weighting, so could be done here or after the next step)&lt;br /&gt;
# calculate points (must be first, you cannot calculate weights until you have the finalgrade and grademax for categories). For each gtree-&amp;gt;levels starting with highest (items) to lowest (course) for both finalgrade and grademax&lt;br /&gt;
## include hidden only if hidetotalsifcontainhiddenitems is set to GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN&lt;br /&gt;
## ignore ungraded items if aggregateonlygraded is set, does not apply when calculating total points for Setup (Categories and items) screen&lt;br /&gt;
## include extra credit items in finalgrade calculations only, not grademax&lt;br /&gt;
## ignore items that have been dropped from drop low or keep high&lt;br /&gt;
## accumulate all other finalgrades and grademaxes into parent category finalgrade and grademaxes&lt;br /&gt;
# calculate weights (must be done before calculating contributions). For each gtree-&amp;gt;levels starting with highest (items) to lowest (course) &lt;br /&gt;
## weight is always item grademax / (container grademax - adjusted grademax for the container from step 1) * (100 - adjusted weight for the container from step 1)&lt;br /&gt;
# calculate contributions (needed in order to accurately drop lowest, keep highest. Also needed to provide the most percentages). For each gtree-&amp;gt;levels starting with highest (items) to lowest (course)  &lt;br /&gt;
## contribution is always the item’s percentage * the item’s weight * the container’s weight… so (finalgrade / grademax) * item weight * container weight&lt;br /&gt;
# limit categories - drop lowest, keep highest (need to have contributions in order to accurately drop low and keep high)&lt;br /&gt;
## remove contribs&lt;br /&gt;
## remove finalgrades from parent finalgrade&lt;br /&gt;
## remove maxgrade from parent maxgrade&lt;br /&gt;
# during the process of limiting categories the points for containers is adjusted so we don’t need to recalculate points&lt;br /&gt;
# recalculate weights since we’ve removed items by dropping&lt;br /&gt;
# recalc contributions since we’ve removed items by dropping&lt;br /&gt;
&lt;br /&gt;
==The Math==&lt;br /&gt;
The sum of weights for all containers (categories and course) add up to 100% except in the case where extra credit is used in which case 100% is exceeded by the weight of the extra credit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup screen and Grader report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# ungraded items&#039; points (if aggregateonlygraded is on))&lt;br /&gt;
# any items dropped through container&#039;s drop lowest or keep highest conditions&lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
A multiplicator is used when some natural weights have been manually adjusted = sum(all adjusted weights) / 100&lt;br /&gt;
&lt;br /&gt;
The natural weight for each item contained in a category or course (including extra credit items) is &#039;item maximum points&#039; / &#039;total category or course points&#039; (in which the item is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
The natural weight for each category (including extra credit categories) is &#039;total category points&#039; / &#039;total category or course points&#039; (in which the category is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
==Calculation examples==&lt;br /&gt;
&lt;br /&gt;
===Example 1 simple sum===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you just want their scores added together (out of 50).&lt;br /&gt;
:No action is required of the user regarding weights.&lt;br /&gt;
&lt;br /&gt;
===Example 2 simple mean===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you want the final grade to be the simple mean percentage of all these scores.&lt;br /&gt;
:User should adjust all weights to be the same, i.e., 25%&lt;br /&gt;
&lt;br /&gt;
===Example 3 typical weighted categories===&lt;br /&gt;
User has four categories whose category totals are not in relation to each other as the user desires. They want the &#039;Quizzes&#039; to be worth 20%, the &#039;Exams&#039; to be worth 50% (with the midterm worth 20% and the final worth 30%), &#039;Papers&#039; worth 20%, and &#039;Attendance&#039; worth 10%&lt;br /&gt;
: User would edit the weights and &lt;br /&gt;
::- place the value 20 on the Quizzes category line&lt;br /&gt;
::- place the value 50 on the Exams category line&lt;br /&gt;
::- place the value 20 on the midterm exam item line&lt;br /&gt;
::- place the value 30 on the final exam item line&lt;br /&gt;
::- place the value 20 on the Papers category line&lt;br /&gt;
::- place the value 20 on the Attendance category (or item) line&lt;br /&gt;
: Then the user would save their weight settings&lt;br /&gt;
&lt;br /&gt;
===Example 4 (complex)===&lt;br /&gt;
&lt;br /&gt;
Category 1 contains seven items&lt;br /&gt;
# Item A = 20 points&lt;br /&gt;
# Item B = 10 points is extra credit&lt;br /&gt;
# Item C = 30 points&lt;br /&gt;
# Item D = 40 points is extra credit&lt;br /&gt;
# Item E = 50 points is hidden&lt;br /&gt;
# Item F = 50 points is ungraded&lt;br /&gt;
# Item G = 10 points whose natural weight has been adjusted to 50% of the category grade&lt;br /&gt;
&lt;br /&gt;
; In the Setup screen and the Grader report the following conditions will exist&lt;br /&gt;
:- Category grademax = 120 (10 + 50 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 110 (50 + 30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 8.33% (20 / 120 * .5)&lt;br /&gt;
:- B weight = 4.16% (10 / 120 * .5)&lt;br /&gt;
:- C weight = 12.5% (30 / 120 * .5)&lt;br /&gt;
:- D weight = 33.33% (40 / 120) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 25% (50 / 120 * .5)&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
; In the User report the following conditions will exist&lt;br /&gt;
:- Category grademax = 70 (10 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 60 (30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 16.66% (20 / 60 * .5)&lt;br /&gt;
:- B weight = 8.33% (10 / 60 * .5)&lt;br /&gt;
:- C weight = 25% (30 / 60 * .5)&lt;br /&gt;
:- D weight = 66.66% (40 / 60) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 0%&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
- [https://docs.google.com/document/d/18SCqecGsZT2w6wLaubFvX9nVXoF6I5xoQJ5-kLauLOU/edit Specifications for Natural weighting] (Google Doc) from the Moodle Gradebook Working Group&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=46071</id>
		<title>Natural weighting</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=46071"/>
		<updated>2014-08-03T17:36:07Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* The Math */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Natural Weighting&lt;br /&gt;
|state = Specification&lt;br /&gt;
|tracker = MDL-43378&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=263318&lt;br /&gt;
|assignee = Moodle HQ&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=263318}}&lt;br /&gt;
&lt;br /&gt;
Natural weighting is a modification to how grades are combined.&lt;br /&gt;
&lt;br /&gt;
When &#039;Sum of Grades&#039; aggregation is chosen (and natural weighting is active), there will be a weight column with form fields, looking like &amp;quot;Weighted mean&amp;quot; is in 2.7.  By default, the weight column shows the natural weights given to all categories and items based on gradebook structure.&lt;br /&gt;
&lt;br /&gt;
Weights can be overridden by modifying the values in the form fields.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Reset weights&amp;quot; button in each category resets the weights to their defaults.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;A clear overview of what is proposed here can be seen in https://www.youtube.com/watch?v=Qw9xtl9pGac&amp;amp;feature=youtu.be from about 1:30:00 to about 1:38:00. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rationale==&lt;br /&gt;
&lt;br /&gt;
;In grading, &#039;&#039;&#039;weight&#039;&#039;&#039; is the proportion of an item&#039;s value in relation to all the other items in its container (category or course). &lt;br /&gt;
;Value is most often represented as &#039;points&#039;. &lt;br /&gt;
;Every grade has a weight. &lt;br /&gt;
;There are three fundamental approaches to dealing with weighting in a gradebook&lt;br /&gt;
:- Simple (or natural) weighting, maximum points earnable for each item are appropriately in relation to one another. Example - If you have two items in a category, one worth 10 points and the other worth 30, then item 1 is 25% (10/40) and item 2 is 75% (30/40).&lt;br /&gt;
:- Adjusted weighting. Users often want to adjust categories and even items to have a weight other than the natural weight, essentially ignoring the points entirely. An example would be, Quizzes=40%, Assignments=50%, Attendance=10%. &lt;br /&gt;
:- Mean of grades. If I have a category made up of five quizzes all worth different points and I want a category percentage to just tell the average (or mean) of all the quiz results&#039; percentage correct, I would choose this approach again, disregarding the points.&lt;br /&gt;
;Simplifying the understanding of weighting reduces the aggregation methodology down to &#039;either/ or&#039; &lt;br /&gt;
:- either &#039;leave weights as is -- natural&#039; &lt;br /&gt;
:- or &#039;adjust to suit my needs -- adjusted weights&#039;&lt;br /&gt;
&lt;br /&gt;
;This greatly simplifies the interface needed to present these options&lt;br /&gt;
:- They don&#039;t need to select an aggregation type&lt;br /&gt;
:- They don&#039;t need to know how each aggregation type performs&lt;br /&gt;
:- The &#039;&#039;&#039;actual&#039;&#039;&#039; weight of every item and category is &#039;&#039;&#039;always&#039;&#039;&#039; displayed to them. &lt;br /&gt;
:- If those are not the weights they want, they merely adjust them.&lt;br /&gt;
:- Much easier for the common user to grasp.  &lt;br /&gt;
&lt;br /&gt;
This interface and calculations are expected to suit the needs of all except very edge cases (which can still be handled with formulas).  If it turns out that this is enough for everyone then we can potentially remove quite a lot of aggregation code from the gradebook at a later stage, improving speed and readability.&lt;br /&gt;
&lt;br /&gt;
===How natural weights meets the requirements of the aggregation types===&lt;br /&gt;
;Sum of grades: Moodle determines the &amp;quot;natural weights&amp;quot; for this by default based on point values.&lt;br /&gt;
;Mean of grades: Set all weights equal to each other. Doesn&#039;t matter what the number is, as in legacy behavior Moodle will automatically adjust so the sum equals 100%. However, in this implementation the group wants to have a pop-up warning the user the weights don&#039;t add up to 100% and they will therefore be adjusted uniformly to equal 100%.&lt;br /&gt;
;Weighted mean of grades: Adjust weights as desired. No change from current behavior.&lt;br /&gt;
;Simple weighted mean of grades: Leave all weightings as is, no change necessary. Same as Sum of grades.&lt;br /&gt;
;Mean of grades (with extra credits): Extra credit has a natural weight that takes the total container (category/ course) weight above 100% (hence, &#039;extra&#039;). Extra credit is available at all times no matter what scheme of weighting is chosen.&lt;br /&gt;
;Highest : User would input the value &#039;1&#039; for &#039;Keep highest&#039; in the category&lt;br /&gt;
;Lowest : Of doubtful use.  Not possible using natural weights, but it can also be done by a calculation into a new item.&lt;br /&gt;
;Median / Mode of grades: Not possible using natural weights, but it&#039;s doubtful anyone uses these anyway so perhaps this can be deprecated entirely.&lt;br /&gt;
&lt;br /&gt;
==Implementation stages==&lt;br /&gt;
&lt;br /&gt;
To be safe, we plan to implement this in stages:&lt;br /&gt;
&lt;br /&gt;
STAGE 1) Implement natural weighting as part of the Sum of Grades aggregation type, with admin settings that allow them to disable all other aggregations if they choose. (Moodle 2.8)&lt;br /&gt;
&lt;br /&gt;
STAGE 2) Once people have been using this for a while, explore the possibility of removing other aggregation code or making them into optional plugins. (Moodle 3.0 perhaps)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Interfaces==&lt;br /&gt;
&lt;br /&gt;
=== Category editing ===&lt;br /&gt;
&lt;br /&gt;
Prototype from luther.edu:&lt;br /&gt;
[[Image:NaturalWeights.png]]&lt;br /&gt;
&lt;br /&gt;
In addition the weights should be editable form fields here, and there would be one button per category to &amp;quot;reset weights&amp;quot; back to a natural Sum of Grades.&lt;br /&gt;
&lt;br /&gt;
=== Admin settings ===&lt;br /&gt;
&lt;br /&gt;
New setting to &amp;quot;Force Natural Weighting&amp;quot; (on/off).   This would default to OFF on upgraded sites and ON for new sites.&lt;br /&gt;
&lt;br /&gt;
ON:  this will hide the aggregation menu and all new categories will default to &amp;quot;Sum of grades&amp;quot; and natural weights.  It will not affect existing gradebooks with other aggregations set (see upgrade script below for a conversion strategy).&lt;br /&gt;
&lt;br /&gt;
OFF: aggregation menu is shown, but Sum of Grades will still contain new natural weighting UI and logic.&lt;br /&gt;
&lt;br /&gt;
==Upgrade script==&lt;br /&gt;
&lt;br /&gt;
If a site is switching to forced natural weights, they will probably want to upgrade all existing categories.&lt;br /&gt;
&lt;br /&gt;
This new optional upgrade script will examine all grade categories looking at aggregation methods.  It should report on what exists and allow the admin to perform an automated upgrade as follows:&lt;br /&gt;
&lt;br /&gt;
# If GRADE_AGGREGATE_WEIGHTED_MEAN then:&lt;br /&gt;
#* Store value of &#039;aggregationcoef&#039; fields to &#039;weight&#039; fields in grade_items&lt;br /&gt;
#* Set &#039;weightoverride&#039; field in grade_items&lt;br /&gt;
# If ... then:&lt;br /&gt;
#* &lt;br /&gt;
#* &lt;br /&gt;
&lt;br /&gt;
(We need exact strategies here for ALL aggregation types)&lt;br /&gt;
&lt;br /&gt;
==Database changes==&lt;br /&gt;
&lt;br /&gt;
;Add three fields to grade_items&lt;br /&gt;
# extracredit, tinyint, notnull, default: 0&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
# weightoverride, tinyint, notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
; Add one field to grade_grades&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
;This fixes the use of &#039;&#039;&#039;aggregationcoef&#039;&#039;&#039; representing both extra credit and weight in 2.7.&lt;br /&gt;
&lt;br /&gt;
== Unit test changes==&lt;br /&gt;
&lt;br /&gt;
==Functional test changes ==&lt;br /&gt;
&lt;br /&gt;
==Logic changes==&lt;br /&gt;
&lt;br /&gt;
Sum of Grades aggregation must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; hidden items and to &#039;&#039;&#039;exclude&#039;&#039;&#039; non-graded items&lt;br /&gt;
&lt;br /&gt;
Determination of range (in Grader and User report) and Max grade (in Setup screen) must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; extra credit items&lt;br /&gt;
&lt;br /&gt;
Natural weights must be saved and applied to the form.&lt;br /&gt;
&lt;br /&gt;
Natural weights are calculated for the Setup screen, the Grader report, and the User report. The calculation for the User report is different than that used for the Setup screen and Grader report.&lt;br /&gt;
&lt;br /&gt;
Weights should be stored in grade_items for the Setup screen and the Grader report and in the grade_grades table for the User report.&lt;br /&gt;
&lt;br /&gt;
==Functional Logic==&lt;br /&gt;
==The Math==&lt;br /&gt;
The sum of weights for all containers (categories and course) add up to 100% except in the case where extra credit is used in which case 100% is exceeded by the weight of the extra credit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup screen and Grader report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# ungraded items&#039; points (if aggregateonlygraded is on))&lt;br /&gt;
# any items dropped through container&#039;s drop lowest or keep highest conditions&lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
A multiplicator is used when some natural weights have been manually adjusted = sum(all adjusted weights) / 100&lt;br /&gt;
&lt;br /&gt;
The natural weight for each item contained in a category or course (including extra credit items) is &#039;item maximum points&#039; / &#039;total category or course points&#039; (in which the item is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
The natural weight for each category (including extra credit categories) is &#039;total category points&#039; / &#039;total category or course points&#039; (in which the category is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
==Calculation examples==&lt;br /&gt;
&lt;br /&gt;
===Example 1 simple sum===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you just want their scores added together (out of 50).&lt;br /&gt;
:No action is required of the user regarding weights.&lt;br /&gt;
&lt;br /&gt;
===Example 2 simple mean===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you want the final grade to be the simple mean percentage of all these scores.&lt;br /&gt;
:User should adjust all weights to be the same, i.e., 25%&lt;br /&gt;
&lt;br /&gt;
===Example 3 typical weighted categories===&lt;br /&gt;
User has four categories whose category totals are not in relation to each other as the user desires. They want the &#039;Quizzes&#039; to be worth 20%, the &#039;Exams&#039; to be worth 50% (with the midterm worth 20% and the final worth 30%), &#039;Papers&#039; worth 20%, and &#039;Attendance&#039; worth 10%&lt;br /&gt;
: User would edit the weights and &lt;br /&gt;
::- place the value 20 on the Quizzes category line&lt;br /&gt;
::- place the value 50 on the Exams category line&lt;br /&gt;
::- place the value 20 on the midterm exam item line&lt;br /&gt;
::- place the value 30 on the final exam item line&lt;br /&gt;
::- place the value 20 on the Papers category line&lt;br /&gt;
::- place the value 20 on the Attendance category (or item) line&lt;br /&gt;
: Then the user would save their weight settings&lt;br /&gt;
&lt;br /&gt;
===Example 4 (complex)===&lt;br /&gt;
&lt;br /&gt;
Category 1 contains seven items&lt;br /&gt;
# Item A = 20 points&lt;br /&gt;
# Item B = 10 points is extra credit&lt;br /&gt;
# Item C = 30 points&lt;br /&gt;
# Item D = 40 points is extra credit&lt;br /&gt;
# Item E = 50 points is hidden&lt;br /&gt;
# Item F = 50 points is ungraded&lt;br /&gt;
# Item G = 10 points whose natural weight has been adjusted to 50% of the category grade&lt;br /&gt;
&lt;br /&gt;
; In the Setup screen and the Grader report the following conditions will exist&lt;br /&gt;
:- Category grademax = 120 (10 + 50 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 110 (50 + 30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 8.33% (20 / 120 * .5)&lt;br /&gt;
:- B weight = 4.16% (10 / 120 * .5)&lt;br /&gt;
:- C weight = 12.5% (30 / 120 * .5)&lt;br /&gt;
:- D weight = 33.33% (40 / 120) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 25% (50 / 120 * .5)&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
; In the User report the following conditions will exist&lt;br /&gt;
:- Category grademax = 70 (10 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 60 (30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 16.66% (20 / 60 * .5)&lt;br /&gt;
:- B weight = 8.33% (10 / 60 * .5)&lt;br /&gt;
:- C weight = 25% (30 / 60 * .5)&lt;br /&gt;
:- D weight = 66.66% (40 / 60) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 0%&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
- [https://docs.google.com/document/d/18SCqecGsZT2w6wLaubFvX9nVXoF6I5xoQJ5-kLauLOU/edit Specifications for Natural weighting] (Google Doc) from the Moodle Gradebook Working Group&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45788</id>
		<title>Natural weighting</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45788"/>
		<updated>2014-07-14T01:57:13Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* Admin settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Natural Weighting&lt;br /&gt;
|state = Specification&lt;br /&gt;
|tracker = https://tracker.moodle.org/browse/MDL-43378&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=245442&lt;br /&gt;
|assignee = Moodle HQ&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=245442}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natural weighting is a modification to how grades are combined.&lt;br /&gt;
&lt;br /&gt;
When &#039;Sum of Grades&#039; aggregation is chosen (and natural weighting is active), there will be a weight column with form fields, looking like &amp;quot;Weighted mean&amp;quot; is in 2.7.  By default, the weight column shows the natural weights given to all categories and items based on gradebook structure.&lt;br /&gt;
&lt;br /&gt;
Weights can be overridden by modifying the values in the form fields.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Reset weights&amp;quot; button in each category resets the weights to their defaults.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rationale==&lt;br /&gt;
&lt;br /&gt;
;In grading, &#039;&#039;&#039;weight&#039;&#039;&#039; is the proportion of an item&#039;s value in relation to all the other items in its container (category or course). &lt;br /&gt;
;Value is most often represented as &#039;points&#039;. &lt;br /&gt;
;Every grade has a weight. &lt;br /&gt;
;There are three fundamental approaches to dealing with weighting in a gradebook&lt;br /&gt;
:- Simple (or natural) weighting, maximum points earnable for each item are appropriately in relation to one another.&lt;br /&gt;
:- Adjusted weighting. Users often want to adjust categories and even items to have a weight other than the natural weight, essentially ignoring the points entirely. An example would be, Quizzes=40%, Assignments=50%, Attendance=10%. &lt;br /&gt;
:- Mean of grades. If I have a category made up of five quizzes all worth different points and I want a category percentage to just tell the average (or mean) of all the quiz results&#039; percentage correct, I would choose this approach again, disregarding the points.&lt;br /&gt;
;Simplifying the understanding of weighting reduces the aggregation methodology down to &#039;either/ or&#039; &lt;br /&gt;
:- either &#039;leave weights as is -- natural&#039; &lt;br /&gt;
:- or &#039;adjust to suit my needs -- adjusted weights&#039;&lt;br /&gt;
&lt;br /&gt;
;This greatly simplifies the interface needed to present these options&lt;br /&gt;
:- They don&#039;t need to select an aggregation type&lt;br /&gt;
:- They don&#039;t need to know how each aggregation type performs&lt;br /&gt;
:- The &#039;&#039;&#039;actual&#039;&#039;&#039; weight of every item and category is &#039;&#039;&#039;always&#039;&#039;&#039; displayed to them. &lt;br /&gt;
:- If those are not the weights they want, they merely adjust them.&lt;br /&gt;
:- Much easier for the common user to grasp.  &lt;br /&gt;
&lt;br /&gt;
This interface and calculations are expected to suit the needs of all except very edge cases (which can still be handled with formulas).  If it turns out that this is enough for everyone then we can potentially remove quite a lot of aggregation code from the gradebook at a later stage, improving speed and readability.&lt;br /&gt;
&lt;br /&gt;
===How natural weights meets the requirements of the aggregation types===&lt;br /&gt;
;Sum of grades: Moodle determines the &amp;quot;natural weights&amp;quot; for this by default based on point values.&lt;br /&gt;
;Mean of grades: Set all weights equal to each other. Doesn&#039;t matter what the number is, as in legacy behavior Moodle will automatically adjust so the sum equals 100%. However, in this implementation the group wants to have a pop-up warning the user the weights don&#039;t add up to 100% and they will therefore be adjusted uniformly to equal 100%.&lt;br /&gt;
;Weighted mean of grades: Adjust weights as desired. No change from current behavior.&lt;br /&gt;
;Simple weighted mean of grades: Leave all weightings as is, no change necessary. Same as Sum of grades.&lt;br /&gt;
;Mean of grades (with extra credits): Extra credit has a natural weight that takes the total container (category/ course) weight above 100% (hence, &#039;extra&#039;). Extra credit is available at all times no matter what scheme of weighting is chosen.&lt;br /&gt;
;Highest : User would input the value &#039;1&#039; for &#039;Keep highest&#039; in the category&lt;br /&gt;
;Lowest : Of doubtful use.  Not possible using natural weights, but it can also be done by a calculation into a new item.&lt;br /&gt;
;Median / Mode of grades: Not possible using natural weights, but it&#039;s doubtful anyone uses these anyway so perhaps this can be deprecated entirely.&lt;br /&gt;
&lt;br /&gt;
==Implementation stages==&lt;br /&gt;
&lt;br /&gt;
To be safe, we plan to implement this in stages:&lt;br /&gt;
&lt;br /&gt;
STAGE 1) Implement natural weighting as part of the Sum of Grades aggregation type, with admin settings that allow them to disable all other aggregations if they choose. (Moodle 2.8)&lt;br /&gt;
&lt;br /&gt;
STAGE 2) Once people have been using this for a while, explore the possibility of removing other aggregation code or making them into optional plugins. (Moodle 3.0 perhaps)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Interfaces==&lt;br /&gt;
&lt;br /&gt;
=== Category editing ===&lt;br /&gt;
&lt;br /&gt;
Prototype from luther.edu:&lt;br /&gt;
[[Image:NaturalWeights.png]]&lt;br /&gt;
&lt;br /&gt;
In addition the weights should be editable form fields here, and there would be one button per category to &amp;quot;reset weights&amp;quot; back to a natural Sum of Grades.&lt;br /&gt;
&lt;br /&gt;
=== Admin settings ===&lt;br /&gt;
&lt;br /&gt;
New setting to &amp;quot;Force Natural Weighting&amp;quot; (on/off).   This would default to OFF on upgraded sites and ON for new sites.&lt;br /&gt;
&lt;br /&gt;
ON:  this will hide the aggregation menu and all new categories will default to &amp;quot;Sum of grades&amp;quot; and natural weights.  It will not affect existing gradebooks with other aggregations set (see upgrade script below for a conversion strategy).&lt;br /&gt;
&lt;br /&gt;
OFF: aggregation menu is shown, but Sum of Grades will still contain new natural weighting UI and logic.&lt;br /&gt;
&lt;br /&gt;
==Upgrade script==&lt;br /&gt;
&lt;br /&gt;
If a site is switching to forced natural weights, they will probably want to upgrade all existing categories.&lt;br /&gt;
&lt;br /&gt;
This new optional upgrade script will examine all grade categories looking at aggregation methods.  It should report on what exists and allow the admin to perform an automated upgrade as follows:&lt;br /&gt;
&lt;br /&gt;
# If GRADE_AGGREGATE_WEIGHTED_MEAN then:&lt;br /&gt;
#* Store value of &#039;aggregationcoef&#039; fields to &#039;weight&#039; fields in grade_items&lt;br /&gt;
#* Set &#039;weightoverride&#039; field in grade_items&lt;br /&gt;
# If ... then:&lt;br /&gt;
#* &lt;br /&gt;
#* &lt;br /&gt;
&lt;br /&gt;
(We need exact strategies here for ALL aggregation types)&lt;br /&gt;
&lt;br /&gt;
==Database changes==&lt;br /&gt;
&lt;br /&gt;
;Add three fields to grade_items&lt;br /&gt;
# extracredit, tinyint, notnull, default: 0&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
# weightoverride, tinyint, notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
; Add one field to grade_grades&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
;This fixes the use of &#039;&#039;&#039;aggregationcoef&#039;&#039;&#039; representing both extra credit and weight in 2.7.&lt;br /&gt;
&lt;br /&gt;
== Unit test changes==&lt;br /&gt;
&lt;br /&gt;
==Functional test changes ==&lt;br /&gt;
&lt;br /&gt;
==Logic changes==&lt;br /&gt;
&lt;br /&gt;
Sum of Grades aggregation must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; hidden items and to &#039;&#039;&#039;exclude&#039;&#039;&#039; non-graded items&lt;br /&gt;
&lt;br /&gt;
Determination of range (in Grader and User report) and Max grade (in Setup screen) must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; extra credit items&lt;br /&gt;
&lt;br /&gt;
Natural weights must be saved and applied to the form.&lt;br /&gt;
&lt;br /&gt;
Natural weights are calculated for the Setup screen, the Grader report, and the User report. The calculation for the User report is different than that used for the Setup screen and Grader report.&lt;br /&gt;
&lt;br /&gt;
Weights should be stored in grade_items for the Setup screen and the Grader report and in the grade_grades table for the User report.&lt;br /&gt;
&lt;br /&gt;
==The Math==&lt;br /&gt;
The sum of weights for all containers (categories and course) add up to 100% except in the case where extra credit is used in which case 100% is exceeded by the weight of the extra credit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup screen and Grader report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# ungraded items&#039; points (if aggregateonlygraded is on))&lt;br /&gt;
# any items dropped through container&#039;s drop lowest or keep highest conditions&lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
A multiplicator is used when some natural weights have been manually adjusted = sum(all adjusted weights) / 100&lt;br /&gt;
&lt;br /&gt;
The natural weight for each item contained in a category or course (including extra credit items) is &#039;item maximum points&#039; / &#039;total category or course points&#039; (in which the item is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
The natural weight for each category (including extra credit categories) is &#039;total category points&#039; / &#039;total category or course points&#039; (in which the category is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
==Calculation examples==&lt;br /&gt;
&lt;br /&gt;
===Example 1 simple sum===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you just want their scores added together (out of 50).&lt;br /&gt;
:No action is required of the user regarding weights.&lt;br /&gt;
&lt;br /&gt;
===Example 2 simple mean===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you want the final grade to be the simple mean percentage of all these scores.&lt;br /&gt;
:User should adjust all weights to be the same, i.e., 25%&lt;br /&gt;
&lt;br /&gt;
===Example 3 typical weighted categories===&lt;br /&gt;
User has four categories whose category totals are not in relation to each other as the user desires. They want the &#039;Quizzes&#039; to be worth 20%, the &#039;Exams&#039; to be worth 50% (with the midterm worth 20% and the final worth 30%), &#039;Papers&#039; worth 20%, and &#039;Attendance&#039; worth 10%&lt;br /&gt;
: User would edit the weights and &lt;br /&gt;
::- place the value 20 on the Quizzes category line&lt;br /&gt;
::- place the value 50 on the Exams category line&lt;br /&gt;
::- place the value 20 on the midterm exam item line&lt;br /&gt;
::- place the value 30 on the final exam item line&lt;br /&gt;
::- place the value 20 on the Papers category line&lt;br /&gt;
::- place the value 20 on the Attendance category (or item) line&lt;br /&gt;
: Then the user would save their weight settings&lt;br /&gt;
&lt;br /&gt;
===Example 4 (complex)===&lt;br /&gt;
&lt;br /&gt;
Category 1 contains seven items&lt;br /&gt;
# Item A = 20 points&lt;br /&gt;
# Item B = 10 points is extra credit&lt;br /&gt;
# Item C = 30 points&lt;br /&gt;
# Item D = 40 points is extra credit&lt;br /&gt;
# Item E = 50 points is hidden&lt;br /&gt;
# Item F = 50 points is ungraded&lt;br /&gt;
# Item G = 10 points whose natural weight has been adjusted to 50% of the category grade&lt;br /&gt;
&lt;br /&gt;
; In the Setup screen and the Grader report the following conditions will exist&lt;br /&gt;
:- Category grademax = 120 (10 + 50 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 110 (50 + 30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 8.33% (20 / 120 * .5)&lt;br /&gt;
:- B weight = 4.16% (10 / 120 * .5)&lt;br /&gt;
:- C weight = 12.5% (30 / 120 * .5)&lt;br /&gt;
:- D weight = 33.33% (40 / 120) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 25% (50 / 120 * .5)&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
; In the User report the following conditions will exist&lt;br /&gt;
:- Category grademax = 70 (10 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 60 (30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 16.66% (20 / 60 * .5)&lt;br /&gt;
:- B weight = 8.33% (10 / 60 * .5)&lt;br /&gt;
:- C weight = 25% (30 / 60 * .5)&lt;br /&gt;
:- D weight = 66.66% (40 / 60) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 0%&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
===Background philosophy===&lt;br /&gt;
;The Moodle 1.95 was a giant step forward but it did some things fundamentally flawed. Those involving weights and grade category calculation (otherwise known as &#039;aggregation&#039;) are detailed below.&lt;br /&gt;
:- Running accurate points were not maintained for category and course totals &lt;br /&gt;
::- It was assumed that the final &#039;Grade&#039; (or points) total for categories would always be 100. If that were really the case then there would be no reason to have a percentage as these values would be exactly the same.&lt;br /&gt;
::- The only aggregation method that did maintain accurate point totals was Sum of grade. But it had substantial flaws (to this day). It did not exclude ungraded items (though it purported to do so) and it did not exclude hidden items, regardless of the setting for hidetotalsiftheycontainhiddenitems.&lt;br /&gt;
:- It made a gigantic leap of misplaced faith that even a small percentage of teachers would understand what aggregation means and even fewer would take the time to commit to memory what each aggregation method produced for results&lt;br /&gt;
;Grading isn&#039;t simple but grade weighting is. A teacher either designs their course with graded items in points-proportional value to other graded items or they choose to override those &#039;natural weights&#039;.&lt;br /&gt;
;All of this distills down to two different methods, &#039;grades based on points&#039; or &#039;grades based on adjusted weights&#039;. &lt;br /&gt;
;It is hardly a leap to conclude a setup screen that displays the natural weights for all items and categories with the ability to easily adjust those weights, if desired, would be great step forward in ease of use.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45786</id>
		<title>Natural weighting</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45786"/>
		<updated>2014-07-14T01:52:18Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* Rationale */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Natural Weighting&lt;br /&gt;
|state = Specification&lt;br /&gt;
|tracker = https://tracker.moodle.org/browse/MDL-43378&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=245442&lt;br /&gt;
|assignee = Moodle HQ&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=245442}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natural weighting is a modification to how grades are combined.&lt;br /&gt;
&lt;br /&gt;
When &#039;Sum of Grades&#039; aggregation is chosen (and natural weighting is active), there will be a weight column with form fields, looking like &amp;quot;Weighted mean&amp;quot; is in 2.7.  By default, the weight column shows the natural weights given to all categories and items based on gradebook structure.&lt;br /&gt;
&lt;br /&gt;
Weights can be overridden by modifying the values in the form fields.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Reset weights&amp;quot; button in each category resets the weights to their defaults.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rationale==&lt;br /&gt;
&lt;br /&gt;
;In grading, &#039;&#039;&#039;weight&#039;&#039;&#039; is the proportion of an item&#039;s value in relation to all the other items in its container (category or course). &lt;br /&gt;
;Value is most often represented as &#039;points&#039;. &lt;br /&gt;
;Every grade has a weight. &lt;br /&gt;
;There are three fundamental approaches to dealing with weighting in a gradebook&lt;br /&gt;
:- Simple (or natural) weighting, maximum points earnable for each item are appropriately in relation to one another.&lt;br /&gt;
:- Adjusted weighting. Users often want to adjust categories and even items to have a weight other than the natural weight, essentially ignoring the points entirely. An example would be, Quizzes=40%, Assignments=50%, Attendance=10%. &lt;br /&gt;
:- Mean of grades. If I have a category made up of five quizzes all worth different points and I want a category percentage to just tell the average (or mean) of all the quiz results&#039; percentage correct, I would choose this approach again, disregarding the points.&lt;br /&gt;
;Simplifying the understanding of weighting reduces the aggregation methodology down to &#039;either/ or&#039; &lt;br /&gt;
:- either &#039;leave weights as is -- natural&#039; &lt;br /&gt;
:- or &#039;adjust to suit my needs -- adjusted weights&#039;&lt;br /&gt;
&lt;br /&gt;
;This greatly simplifies the interface needed to present these options&lt;br /&gt;
:- They don&#039;t need to select an aggregation type&lt;br /&gt;
:- They don&#039;t need to know how each aggregation type performs&lt;br /&gt;
:- The &#039;&#039;&#039;actual&#039;&#039;&#039; weight of every item and category is &#039;&#039;&#039;always&#039;&#039;&#039; displayed to them. &lt;br /&gt;
:- If those are not the weights they want, they merely adjust them.&lt;br /&gt;
:- Much easier for the common user to grasp.  &lt;br /&gt;
&lt;br /&gt;
This interface and calculations are expected to suit the needs of all except very edge cases (which can still be handled with formulas).  If it turns out that this is enough for everyone then we can potentially remove quite a lot of aggregation code from the gradebook at a later stage, improving speed and readability.&lt;br /&gt;
&lt;br /&gt;
===How natural weights meets the requirements of the aggregation types===&lt;br /&gt;
;Sum of grades: Moodle determines the &amp;quot;natural weights&amp;quot; for this by default based on point values.&lt;br /&gt;
;Mean of grades: Set all weights equal to each other. Doesn&#039;t matter what the number is, as in legacy behavior Moodle will automatically adjust so the sum equals 100%. However, in this implementation the group wants to have a pop-up warning the user the weights don&#039;t add up to 100% and they will therefore be adjusted uniformly to equal 100%.&lt;br /&gt;
;Weighted mean of grades: Adjust weights as desired. No change from current behavior.&lt;br /&gt;
;Simple weighted mean of grades: Leave all weightings as is, no change necessary. Same as Sum of grades.&lt;br /&gt;
;Mean of grades (with extra credits): Extra credit has a natural weight that takes the total container (category/ course) weight above 100% (hence, &#039;extra&#039;). Extra credit is available at all times no matter what scheme of weighting is chosen.&lt;br /&gt;
;Highest : User would input the value &#039;1&#039; for &#039;Keep highest&#039; in the category&lt;br /&gt;
;Lowest : Of doubtful use.  Not possible using natural weights, but it can also be done by a calculation into a new item.&lt;br /&gt;
;Median / Mode of grades: Not possible using natural weights, but it&#039;s doubtful anyone uses these anyway so perhaps this can be deprecated entirely.&lt;br /&gt;
&lt;br /&gt;
==Implementation stages==&lt;br /&gt;
&lt;br /&gt;
To be safe, we plan to implement this in stages:&lt;br /&gt;
&lt;br /&gt;
STAGE 1) Implement natural weighting as part of the Sum of Grades aggregation type, with admin settings that allow them to disable all other aggregations if they choose. (Moodle 2.8)&lt;br /&gt;
&lt;br /&gt;
STAGE 2) Once people have been using this for a while, explore the possibility of removing other aggregation code or making them into optional plugins. (Moodle 3.0 perhaps)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Interfaces==&lt;br /&gt;
&lt;br /&gt;
=== Category editing ===&lt;br /&gt;
&lt;br /&gt;
Prototype from luther.edu:&lt;br /&gt;
[[Image:NaturalWeights.png]]&lt;br /&gt;
&lt;br /&gt;
In addition the weights should be editable form fields here, and there would be one button per category to &amp;quot;reset weights&amp;quot; back to a natural Sum of Grades.&lt;br /&gt;
&lt;br /&gt;
=== Admin settings ===&lt;br /&gt;
&lt;br /&gt;
New setting to &amp;quot;Force Natural Weighting&amp;quot; (on/off).   This would default to OFF on upgraded sites and ON for new sites.&lt;br /&gt;
&lt;br /&gt;
ON:  this will hide the aggregation menu and all new categories will default to &amp;quot;Sum of grades&amp;quot; and natural weights.  It will not affect existing gradebooks with other aggregations set (see upgrade script below for a conversion strategy).&lt;br /&gt;
&lt;br /&gt;
OFF: aggregation menu is shown, but Sum of Grades will still contain new natural weighting UI and logic.&lt;br /&gt;
&lt;br /&gt;
NOTE: I&#039;d really like to see a third option, &#039;Optional&#039; with the use case of admins wanting to introduce this new method to some teachers on a trial basis but not have it necessarily forced on all courses. We initially saw 2.9 being the point at which we would go down to two settings, &#039;On&#039; or &#039;Off&#039; with 3.0 full &#039;On&#039;&lt;br /&gt;
&lt;br /&gt;
==Upgrade script==&lt;br /&gt;
&lt;br /&gt;
If a site is switching to forced natural weights, they will probably want to upgrade all existing categories.&lt;br /&gt;
&lt;br /&gt;
This new optional upgrade script will examine all grade categories looking at aggregation methods.  It should report on what exists and allow the admin to perform an automated upgrade as follows:&lt;br /&gt;
&lt;br /&gt;
# If GRADE_AGGREGATE_WEIGHTED_MEAN then:&lt;br /&gt;
#* Store value of &#039;aggregationcoef&#039; fields to &#039;weight&#039; fields in grade_items&lt;br /&gt;
#* Set &#039;weightoverride&#039; field in grade_items&lt;br /&gt;
# If ... then:&lt;br /&gt;
#* &lt;br /&gt;
#* &lt;br /&gt;
&lt;br /&gt;
(We need exact strategies here for ALL aggregation types)&lt;br /&gt;
&lt;br /&gt;
==Database changes==&lt;br /&gt;
&lt;br /&gt;
;Add three fields to grade_items&lt;br /&gt;
# extracredit, tinyint, notnull, default: 0&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
# weightoverride, tinyint, notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
; Add one field to grade_grades&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
;This fixes the use of &#039;&#039;&#039;aggregationcoef&#039;&#039;&#039; representing both extra credit and weight in 2.7.&lt;br /&gt;
&lt;br /&gt;
== Unit test changes==&lt;br /&gt;
&lt;br /&gt;
==Functional test changes ==&lt;br /&gt;
&lt;br /&gt;
==Logic changes==&lt;br /&gt;
&lt;br /&gt;
Sum of Grades aggregation must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; hidden items and to &#039;&#039;&#039;exclude&#039;&#039;&#039; non-graded items&lt;br /&gt;
&lt;br /&gt;
Determination of range (in Grader and User report) and Max grade (in Setup screen) must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; extra credit items&lt;br /&gt;
&lt;br /&gt;
Natural weights must be saved and applied to the form.&lt;br /&gt;
&lt;br /&gt;
Natural weights are calculated for the Setup screen, the Grader report, and the User report. The calculation for the User report is different than that used for the Setup screen and Grader report.&lt;br /&gt;
&lt;br /&gt;
Weights should be stored in grade_items for the Setup screen and the Grader report and in the grade_grades table for the User report.&lt;br /&gt;
&lt;br /&gt;
==The Math==&lt;br /&gt;
The sum of weights for all containers (categories and course) add up to 100% except in the case where extra credit is used in which case 100% is exceeded by the weight of the extra credit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup screen and Grader report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# ungraded items&#039; points (if aggregateonlygraded is on))&lt;br /&gt;
# any items dropped through container&#039;s drop lowest or keep highest conditions&lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
A multiplicator is used when some natural weights have been manually adjusted = sum(all adjusted weights) / 100&lt;br /&gt;
&lt;br /&gt;
The natural weight for each item contained in a category or course (including extra credit items) is &#039;item maximum points&#039; / &#039;total category or course points&#039; (in which the item is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
The natural weight for each category (including extra credit categories) is &#039;total category points&#039; / &#039;total category or course points&#039; (in which the category is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
==Calculation examples==&lt;br /&gt;
&lt;br /&gt;
===Example 1 simple sum===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you just want their scores added together (out of 50).&lt;br /&gt;
:No action is required of the user regarding weights.&lt;br /&gt;
&lt;br /&gt;
===Example 2 simple mean===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you want the final grade to be the simple mean percentage of all these scores.&lt;br /&gt;
:User should adjust all weights to be the same, i.e., 25%&lt;br /&gt;
&lt;br /&gt;
===Example 3 typical weighted categories===&lt;br /&gt;
User has four categories whose category totals are not in relation to each other as the user desires. They want the &#039;Quizzes&#039; to be worth 20%, the &#039;Exams&#039; to be worth 50% (with the midterm worth 20% and the final worth 30%), &#039;Papers&#039; worth 20%, and &#039;Attendance&#039; worth 10%&lt;br /&gt;
: User would edit the weights and &lt;br /&gt;
::- place the value 20 on the Quizzes category line&lt;br /&gt;
::- place the value 50 on the Exams category line&lt;br /&gt;
::- place the value 20 on the midterm exam item line&lt;br /&gt;
::- place the value 30 on the final exam item line&lt;br /&gt;
::- place the value 20 on the Papers category line&lt;br /&gt;
::- place the value 20 on the Attendance category (or item) line&lt;br /&gt;
: Then the user would save their weight settings&lt;br /&gt;
&lt;br /&gt;
===Example 4 (complex)===&lt;br /&gt;
&lt;br /&gt;
Category 1 contains seven items&lt;br /&gt;
# Item A = 20 points&lt;br /&gt;
# Item B = 10 points is extra credit&lt;br /&gt;
# Item C = 30 points&lt;br /&gt;
# Item D = 40 points is extra credit&lt;br /&gt;
# Item E = 50 points is hidden&lt;br /&gt;
# Item F = 50 points is ungraded&lt;br /&gt;
# Item G = 10 points whose natural weight has been adjusted to 50% of the category grade&lt;br /&gt;
&lt;br /&gt;
; In the Setup screen and the Grader report the following conditions will exist&lt;br /&gt;
:- Category grademax = 120 (10 + 50 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 110 (50 + 30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 8.33% (20 / 120 * .5)&lt;br /&gt;
:- B weight = 4.16% (10 / 120 * .5)&lt;br /&gt;
:- C weight = 12.5% (30 / 120 * .5)&lt;br /&gt;
:- D weight = 33.33% (40 / 120) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 25% (50 / 120 * .5)&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
; In the User report the following conditions will exist&lt;br /&gt;
:- Category grademax = 70 (10 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 60 (30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 16.66% (20 / 60 * .5)&lt;br /&gt;
:- B weight = 8.33% (10 / 60 * .5)&lt;br /&gt;
:- C weight = 25% (30 / 60 * .5)&lt;br /&gt;
:- D weight = 66.66% (40 / 60) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 0%&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
===Background philosophy===&lt;br /&gt;
;The Moodle 1.95 was a giant step forward but it did some things fundamentally flawed. Those involving weights and grade category calculation (otherwise known as &#039;aggregation&#039;) are detailed below.&lt;br /&gt;
:- Running accurate points were not maintained for category and course totals &lt;br /&gt;
::- It was assumed that the final &#039;Grade&#039; (or points) total for categories would always be 100. If that were really the case then there would be no reason to have a percentage as these values would be exactly the same.&lt;br /&gt;
::- The only aggregation method that did maintain accurate point totals was Sum of grade. But it had substantial flaws (to this day). It did not exclude ungraded items (though it purported to do so) and it did not exclude hidden items, regardless of the setting for hidetotalsiftheycontainhiddenitems.&lt;br /&gt;
:- It made a gigantic leap of misplaced faith that even a small percentage of teachers would understand what aggregation means and even fewer would take the time to commit to memory what each aggregation method produced for results&lt;br /&gt;
;Grading isn&#039;t simple but grade weighting is. A teacher either designs their course with graded items in points-proportional value to other graded items or they choose to override those &#039;natural weights&#039;.&lt;br /&gt;
;All of this distills down to two different methods, &#039;grades based on points&#039; or &#039;grades based on adjusted weights&#039;. &lt;br /&gt;
;It is hardly a leap to conclude a setup screen that displays the natural weights for all items and categories with the ability to easily adjust those weights, if desired, would be great step forward in ease of use.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45783</id>
		<title>Natural weighting</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45783"/>
		<updated>2014-07-14T00:59:25Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* Rationale */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Natural Weighting&lt;br /&gt;
|state = Specification&lt;br /&gt;
|tracker = https://tracker.moodle.org/browse/MDL-43378&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=245442&lt;br /&gt;
|assignee = Moodle HQ&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=245442}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natural weighting is a modification to how grades are combined.&lt;br /&gt;
&lt;br /&gt;
When &#039;Sum of Grades&#039; aggregation is chosen (and natural weighting is active), there will be a weight column with form fields, looking like &amp;quot;Weighted mean&amp;quot; is in 2.7.  By default, the weight column shows the natural weights given to all categories and items based on gradebook structure.&lt;br /&gt;
&lt;br /&gt;
Weights can be overridden by modifying the values in the form fields.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Reset weights&amp;quot; button in each category resets the weights to their defaults.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rationale==&lt;br /&gt;
&lt;br /&gt;
;In grading, &#039;&#039;&#039;weight&#039;&#039;&#039; is the proportion of an item&#039;s value in relation to all the other items in its container (category or course). &lt;br /&gt;
;Value is most often represented as &#039;points&#039;. &lt;br /&gt;
;Every grade has a weight. &lt;br /&gt;
;There are three fundamental approaches to dealing with weighting in a gradebook&lt;br /&gt;
:- Simple (or natural) weighting, maximum points earnable for each item are appropriately in relation to one another.&lt;br /&gt;
:- Adjusted weighting. Users often want to adjust categories and even items to have a weight other than the natural weight, essentially ignoring the points entirely. An example would be, Quizzes=40%, Assignments=50%, Attendance=10%. &lt;br /&gt;
:- Mean of grades. If I have a category made up of five quizzes all worth different points and I want a category percentage to just tell the average (or mean) of all the quiz results&#039; percentage correct, I would choose this approach again, disregarding the points.&lt;br /&gt;
;Simplifying the understanding of weighting reduces the aggregation methodology down to &#039;either/ or&#039; &lt;br /&gt;
:- either &#039;leave weights as is -- natural&#039; &lt;br /&gt;
:- or &#039;adjust to suit my needs -- adjusted weights&#039;&lt;br /&gt;
&lt;br /&gt;
;This greatly simplifies the interface needed to present these options&lt;br /&gt;
:- They don&#039;t need to select an aggregation type&lt;br /&gt;
:- They don&#039;t need to know how each aggregation type performs&lt;br /&gt;
:- The &#039;&#039;&#039;actual&#039;&#039;&#039; weight of every item and category is &#039;&#039;&#039;always&#039;&#039;&#039; displayed to them. &lt;br /&gt;
:- If those are not the weights they want, they merely adjust them.&lt;br /&gt;
;- Much easier for the common user to grasp.  &lt;br /&gt;
&lt;br /&gt;
This interface and calculations are expected to suit the needs of all except very edge cases (which can still be handled with formulas).  If it turns out that this is enough for everyone then we can potentially remove quite a lot of aggregation code from the gradebook at a later stage, improving speed and readability.&lt;br /&gt;
&lt;br /&gt;
===How natural weights meets the requirements of the aggregation types===&lt;br /&gt;
;Sum of grades: Leave all weightings as is, no change necessary.&lt;br /&gt;
;Mean of grades: Set all weights equal to each other. Doesn&#039;t matter what the number is, as in legacy behavior Moodle will automatically adjust so the sum equals 100%. However, in this implementation the group wants to have a pop-up warning the user the weights don&#039;t add up to 100% and they will therefore be adjusted uniformly to equal 100%.&lt;br /&gt;
;Weighted mean of grades: Adjust weights as desired. No change from current behavior.&lt;br /&gt;
;Simple weighted mean of grades: Leave all weightings as is, no change necessary. Same as Sum of grades.&lt;br /&gt;
;Mean of grades (with extra credits): Extra credit has a natural weight that takes the total container (category/ course) weight above 100% (hence, &#039;extra&#039;). Extra credit is available at all times no matter what scheme of weighting is chosen.&lt;br /&gt;
;Highest : User would input the value &#039;1&#039; for &#039;Keep highest&#039; in the category&lt;br /&gt;
;Lowest : Not possible using natural weights, but it can be replaced by a calculation into a new item.&lt;br /&gt;
;Median / Mode of grades: Not possible using natural weights, but it&#039;s doubtful anyone uses these anyway so perhaps this can be deprecated entirely.&lt;br /&gt;
&lt;br /&gt;
==Implementation stages==&lt;br /&gt;
&lt;br /&gt;
To be safe, we plan to implement this in stages:&lt;br /&gt;
&lt;br /&gt;
STAGE 1) Implement natural weighting as part of the Sum of Grades aggregation type, with admin settings that allow them to disable all other aggregations if they choose. (Moodle 2.8)&lt;br /&gt;
&lt;br /&gt;
STAGE 2) Once people have been using this for a while, explore the possibility of removing other aggregation code or making them into optional plugins. (Moodle 3.0 perhaps)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Interfaces==&lt;br /&gt;
&lt;br /&gt;
=== Category editing ===&lt;br /&gt;
&lt;br /&gt;
Prototype from luther.edu:&lt;br /&gt;
[[Image:NaturalWeights.png]]&lt;br /&gt;
&lt;br /&gt;
In addition the weights should be editable form fields here, and there would be one button per category to &amp;quot;reset weights&amp;quot; back to a natural Sum of Grades.&lt;br /&gt;
&lt;br /&gt;
=== Admin settings ===&lt;br /&gt;
&lt;br /&gt;
New setting to &amp;quot;Force Natural Weighting&amp;quot; (on/off).   This would default to OFF on upgraded sites and ON for new sites.&lt;br /&gt;
&lt;br /&gt;
ON:  this will hide the aggregation menu and all new categories will default to &amp;quot;Sum of grades&amp;quot; and natural weights.  It will not affect existing gradebooks with other aggregations set (see upgrade script below for a conversion strategy).&lt;br /&gt;
&lt;br /&gt;
OFF: aggregation menu is shown, but Sum of Grades will still contain new natural weighting UI and logic.&lt;br /&gt;
&lt;br /&gt;
NOTE: I&#039;d really like to see a third option, &#039;Optional&#039; with the use case of admins wanting to introduce this new method to some teachers on a trial basis but not have it necessarily forced on all courses. We initially saw 2.9 being the point at which we would go down to two settings, &#039;On&#039; or &#039;Off&#039; with 3.0 full &#039;On&#039;&lt;br /&gt;
&lt;br /&gt;
==Upgrade script==&lt;br /&gt;
&lt;br /&gt;
If a site is switching to forced natural weights, they will probably want to upgrade all existing categories.&lt;br /&gt;
&lt;br /&gt;
This new optional upgrade script will examine all grade categories looking at aggregation methods.  It should report on what exists and allow the admin to perform an automated upgrade as follows:&lt;br /&gt;
&lt;br /&gt;
# If GRADE_AGGREGATE_WEIGHTED_MEAN then:&lt;br /&gt;
#* Store value of &#039;aggregationcoef&#039; fields to &#039;weight&#039; fields in grade_items&lt;br /&gt;
#* Set &#039;weightoverride&#039; field in grade_items&lt;br /&gt;
# If ... then:&lt;br /&gt;
#* &lt;br /&gt;
#* &lt;br /&gt;
&lt;br /&gt;
(We need exact strategies here for ALL aggregation types)&lt;br /&gt;
&lt;br /&gt;
==Database changes==&lt;br /&gt;
&lt;br /&gt;
;Add three fields to grade_items&lt;br /&gt;
# extracredit, tinyint, notnull, default: 0&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
# weightoverride, tinyint, notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
; Add one field to grade_grades&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
;This fixes the use of &#039;&#039;&#039;aggregationcoef&#039;&#039;&#039; representing both extra credit and weight in 2.7.&lt;br /&gt;
&lt;br /&gt;
== Unit test changes==&lt;br /&gt;
&lt;br /&gt;
==Functional test changes ==&lt;br /&gt;
&lt;br /&gt;
==Logic changes==&lt;br /&gt;
&lt;br /&gt;
Sum of Grades aggregation must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; hidden items and to &#039;&#039;&#039;exclude&#039;&#039;&#039; non-graded items&lt;br /&gt;
&lt;br /&gt;
Determination of range (in Grader and User report) and Max grade (in Setup screen) must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; extra credit items&lt;br /&gt;
&lt;br /&gt;
Natural weights must be saved and applied to the form.&lt;br /&gt;
&lt;br /&gt;
Natural weights are calculated for the Setup screen, the Grader report, and the User report. The calculation for the User report is different than that used for the Setup screen and Grader report.&lt;br /&gt;
&lt;br /&gt;
Weights should be stored in grade_items for the Setup screen and the Grader report and in the grade_grades table for the User report.&lt;br /&gt;
&lt;br /&gt;
==The Math==&lt;br /&gt;
The sum of weights for all containers (categories and course) add up to 100% except in the case where extra credit is used in which case 100% is exceeded by the weight of the extra credit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup screen and Grader report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# ungraded items&#039; points (if aggregateonlygraded is on))&lt;br /&gt;
# any items dropped through container&#039;s drop lowest or keep highest conditions&lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
A multiplicator is used when some natural weights have been manually adjusted = sum(all adjusted weights) / 100&lt;br /&gt;
&lt;br /&gt;
The natural weight for each item contained in a category or course (including extra credit items) is &#039;item maximum points&#039; / &#039;total category or course points&#039; (in which the item is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
The natural weight for each category (including extra credit categories) is &#039;total category points&#039; / &#039;total category or course points&#039; (in which the category is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
==Calculation examples==&lt;br /&gt;
&lt;br /&gt;
===Example 1 simple sum===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you just want their scores added together (out of 50).&lt;br /&gt;
:No action is required of the user regarding weights.&lt;br /&gt;
&lt;br /&gt;
===Example 2 simple mean===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you want the final grade to be the simple mean percentage of all these scores.&lt;br /&gt;
:User should adjust all weights to be the same, i.e., 25%&lt;br /&gt;
&lt;br /&gt;
===Example 3 typical weighted categories===&lt;br /&gt;
User has four categories whose category totals are not in relation to each other as the user desires. They want the &#039;Quizzes&#039; to be worth 20%, the &#039;Exams&#039; to be worth 50% (with the midterm worth 20% and the final worth 30%), &#039;Papers&#039; worth 20%, and &#039;Attendance&#039; worth 10%&lt;br /&gt;
: User would edit the weights and &lt;br /&gt;
::- place the value 20 on the Quizzes category line&lt;br /&gt;
::- place the value 50 on the Exams category line&lt;br /&gt;
::- place the value 20 on the midterm exam item line&lt;br /&gt;
::- place the value 30 on the final exam item line&lt;br /&gt;
::- place the value 20 on the Papers category line&lt;br /&gt;
::- place the value 20 on the Attendance category (or item) line&lt;br /&gt;
: Then the user would save their weight settings&lt;br /&gt;
&lt;br /&gt;
===Example 4 (complex)===&lt;br /&gt;
&lt;br /&gt;
Category 1 contains seven items&lt;br /&gt;
# Item A = 20 points&lt;br /&gt;
# Item B = 10 points is extra credit&lt;br /&gt;
# Item C = 30 points&lt;br /&gt;
# Item D = 40 points is extra credit&lt;br /&gt;
# Item E = 50 points is hidden&lt;br /&gt;
# Item F = 50 points is ungraded&lt;br /&gt;
# Item G = 10 points whose natural weight has been adjusted to 50% of the category grade&lt;br /&gt;
&lt;br /&gt;
; In the Setup screen and the Grader report the following conditions will exist&lt;br /&gt;
:- Category grademax = 120 (10 + 50 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 110 (50 + 30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 8.33% (20 / 120 * .5)&lt;br /&gt;
:- B weight = 4.16% (10 / 120 * .5)&lt;br /&gt;
:- C weight = 12.5% (30 / 120 * .5)&lt;br /&gt;
:- D weight = 33.33% (40 / 120) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 25% (50 / 120 * .5)&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
; In the User report the following conditions will exist&lt;br /&gt;
:- Category grademax = 70 (10 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 60 (30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 16.66% (20 / 60 * .5)&lt;br /&gt;
:- B weight = 8.33% (10 / 60 * .5)&lt;br /&gt;
:- C weight = 25% (30 / 60 * .5)&lt;br /&gt;
:- D weight = 66.66% (40 / 60) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 0%&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
===Background philosophy===&lt;br /&gt;
;The Moodle 1.95 was a giant step forward but it did some things fundamentally flawed. Those involving weights and grade category calculation (otherwise known as &#039;aggregation&#039;) are detailed below.&lt;br /&gt;
:- Running accurate points were not maintained for category and course totals &lt;br /&gt;
::- It was assumed that the final &#039;Grade&#039; (or points) total for categories would always be 100. If that were really the case then there would be no reason to have a percentage as these values would be exactly the same.&lt;br /&gt;
::- The only aggregation method that did maintain accurate point totals was Sum of grade. But it had substantial flaws (to this day). It did not exclude ungraded items (though it purported to do so) and it did not exclude hidden items, regardless of the setting for hidetotalsiftheycontainhiddenitems.&lt;br /&gt;
:- It made a gigantic leap of misplaced faith that even a small percentage of teachers would understand what aggregation means and even fewer would take the time to commit to memory what each aggregation method produced for results&lt;br /&gt;
;Grading isn&#039;t simple but grade weighting is. A teacher either designs their course with graded items in points-proportional value to other graded items or they choose to override those &#039;natural weights&#039;.&lt;br /&gt;
;All of this distills down to two different methods, &#039;grades based on points&#039; or &#039;grades based on adjusted weights&#039;. &lt;br /&gt;
;It is hardly a leap to conclude a setup screen that displays the natural weights for all items and categories with the ability to easily adjust those weights, if desired, would be great step forward in ease of use.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45782</id>
		<title>Natural weighting</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45782"/>
		<updated>2014-07-13T22:50:56Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* Background philosophy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Natural Weighting&lt;br /&gt;
|state = Specification&lt;br /&gt;
|tracker = https://tracker.moodle.org/browse/MDL-43378&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=245442&lt;br /&gt;
|assignee = Moodle HQ&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=245442}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natural weighting is a modification to how grades are combined.&lt;br /&gt;
&lt;br /&gt;
When &#039;Sum of Grades&#039; aggregation is chosen (and natural weighting is active), there will be a weight column with form fields, looking like &amp;quot;Weighted mean&amp;quot; is in 2.7.  By default, the weight column shows the natural weights given to all categories and items based on gradebook structure.&lt;br /&gt;
&lt;br /&gt;
Weights can be overridden by modifying the values in the form fields.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Reset weights&amp;quot; button in each category resets the weights to their defaults.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rationale==&lt;br /&gt;
&lt;br /&gt;
;In grading, &#039;&#039;&#039;weight&#039;&#039;&#039; is the proportion of an item&#039;s value in relation to all the other items in its container (category or course). &lt;br /&gt;
;Value is most often represented as &#039;points&#039;. &lt;br /&gt;
;Every grade has a weight. &lt;br /&gt;
;There are three fundamental approaches to dealing with weighting in a gradebook&lt;br /&gt;
:- Simple (or natural) weighting. When accurate points for categories and course totals are maintained, both Sum of grades and Simple weighted mean of grades accomplish exactly the same thing.&lt;br /&gt;
:- Adjusted weighting. Users often want to adjust categories and even items to have a weight other than the natural weight, essentially ignoring the points entirely. An example would be, Quizzes=40%, Assignments=50%, Attendance=10%. &lt;br /&gt;
:- Mean of grades. If I have a category made up of five quizzes all worth different points and I want a category percentage to just tell the average (or mean) of all the quiz results&#039; percentage correct, I would choose this approach again, disregarding the points.&lt;br /&gt;
;Simplifying the understanding of weighting reduces the aggregation methodology down to &#039;either/ or&#039; &lt;br /&gt;
:- either &#039;leave weights as is -- natural&#039; &lt;br /&gt;
:- or &#039;adjust to suit my needs -- adjusted weights&#039;&lt;br /&gt;
&lt;br /&gt;
;This greatly simplifies the interface needed to present these options&lt;br /&gt;
:- They don&#039;t need to select an aggregation type&lt;br /&gt;
:- They don&#039;t need to know how each aggregation type performs&lt;br /&gt;
:- The &#039;&#039;&#039;actual&#039;&#039;&#039; weight of every item and category is &#039;&#039;&#039;always&#039;&#039;&#039; displayed to them. &lt;br /&gt;
:- If those are not the weights they want, they merely adjust them.&lt;br /&gt;
;- Much easier for the common user to grasp.  &lt;br /&gt;
&lt;br /&gt;
This interface and calculations are expected to suit the needs of all except very edge cases (which can still be handled with formulas).  If it turns out that this is enough for everyone then we can potentially remove quite a lot of aggregation code from the gradebook at a later stage, improving speed and readability.&lt;br /&gt;
&lt;br /&gt;
===How natural weights meets the requirements of the aggregation types===&lt;br /&gt;
;Sum of grades: Leave all weightings as is, no change necessary.&lt;br /&gt;
;Mean of grades: Set all weights equal to each other. Doesn&#039;t matter what the number is, as in legacy behavior Moodle will automatically adjust so the sum equals 100%. However, in this implementation the group wants to have a pop-up warning the user the weights don&#039;t add up to 100% and they will therefore be adjusted uniformly to equal 100%.&lt;br /&gt;
;Weighted mean of grades: Adjust weights as desired. No change from current behavior.&lt;br /&gt;
;Simple weighted mean of grades: Leave all weightings as is, no change necessary. Same as Sum of grades.&lt;br /&gt;
;Mean of grades (with extra credits): Extra credit has a natural weight that takes the total container (category/ course) weight above 100% (hence, &#039;extra&#039;). Extra credit is available at all times no matter what scheme of weighting is chosen.&lt;br /&gt;
;Highest : User would input the value &#039;1&#039; for &#039;Keep highest&#039; in the category&lt;br /&gt;
;Lowest : Not possible using natural weights, but it can be replaced by a calculation into a new item.&lt;br /&gt;
;Median / Mode of grades: Not possible using natural weights, but it&#039;s doubtful anyone uses these anyway so perhaps this can be deprecated entirely.&lt;br /&gt;
&lt;br /&gt;
==Implementation stages==&lt;br /&gt;
&lt;br /&gt;
To be safe, we plan to implement this in stages:&lt;br /&gt;
&lt;br /&gt;
STAGE 1) Implement natural weighting as part of the Sum of Grades aggregation type, with admin settings that allow them to disable all other aggregations if they choose. (Moodle 2.8)&lt;br /&gt;
&lt;br /&gt;
STAGE 2) Once people have been using this for a while, explore the possibility of removing other aggregation code or making them into optional plugins. (Moodle 3.0 perhaps)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Interfaces==&lt;br /&gt;
&lt;br /&gt;
=== Category editing ===&lt;br /&gt;
&lt;br /&gt;
Prototype from luther.edu:&lt;br /&gt;
[[Image:NaturalWeights.png]]&lt;br /&gt;
&lt;br /&gt;
In addition the weights should be editable form fields here, and there would be one button per category to &amp;quot;reset weights&amp;quot; back to a natural Sum of Grades.&lt;br /&gt;
&lt;br /&gt;
=== Admin settings ===&lt;br /&gt;
&lt;br /&gt;
New setting to &amp;quot;Force Natural Weighting&amp;quot; (on/off).   This would default to OFF on upgraded sites and ON for new sites.&lt;br /&gt;
&lt;br /&gt;
ON:  this will hide the aggregation menu and all new categories will default to &amp;quot;Sum of grades&amp;quot; and natural weights.  It will not affect existing gradebooks with other aggregations set (see upgrade script below for a conversion strategy).&lt;br /&gt;
&lt;br /&gt;
OFF: aggregation menu is shown, but Sum of Grades will still contain new natural weighting UI and logic.&lt;br /&gt;
&lt;br /&gt;
NOTE: I&#039;d really like to see a third option, &#039;Optional&#039; with the use case of admins wanting to introduce this new method to some teachers on a trial basis but not have it necessarily forced on all courses. We initially saw 2.9 being the point at which we would go down to two settings, &#039;On&#039; or &#039;Off&#039; with 3.0 full &#039;On&#039;&lt;br /&gt;
&lt;br /&gt;
==Upgrade script==&lt;br /&gt;
&lt;br /&gt;
If a site is switching to forced natural weights, they will probably want to upgrade all existing categories.&lt;br /&gt;
&lt;br /&gt;
This new optional upgrade script will examine all grade categories looking at aggregation methods.  It should report on what exists and allow the admin to perform an automated upgrade as follows:&lt;br /&gt;
&lt;br /&gt;
# If GRADE_AGGREGATE_WEIGHTED_MEAN then:&lt;br /&gt;
#* Store value of &#039;aggregationcoef&#039; fields to &#039;weight&#039; fields in grade_items&lt;br /&gt;
#* Set &#039;weightoverride&#039; field in grade_items&lt;br /&gt;
# If ... then:&lt;br /&gt;
#* &lt;br /&gt;
#* &lt;br /&gt;
&lt;br /&gt;
(We need exact strategies here for ALL aggregation types)&lt;br /&gt;
&lt;br /&gt;
==Database changes==&lt;br /&gt;
&lt;br /&gt;
;Add three fields to grade_items&lt;br /&gt;
# extracredit, tinyint, notnull, default: 0&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
# weightoverride, tinyint, notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
; Add one field to grade_grades&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
;This fixes the use of &#039;&#039;&#039;aggregationcoef&#039;&#039;&#039; representing both extra credit and weight in 2.7.&lt;br /&gt;
&lt;br /&gt;
== Unit test changes==&lt;br /&gt;
&lt;br /&gt;
==Functional test changes ==&lt;br /&gt;
&lt;br /&gt;
==Logic changes==&lt;br /&gt;
&lt;br /&gt;
Sum of Grades aggregation must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; hidden items and to &#039;&#039;&#039;exclude&#039;&#039;&#039; non-graded items&lt;br /&gt;
&lt;br /&gt;
Determination of range (in Grader and User report) and Max grade (in Setup screen) must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; extra credit items&lt;br /&gt;
&lt;br /&gt;
Natural weights must be saved and applied to the form.&lt;br /&gt;
&lt;br /&gt;
Natural weights are calculated for the Setup screen, the Grader report, and the User report. The calculation for the User report is different than that used for the Setup screen and Grader report.&lt;br /&gt;
&lt;br /&gt;
Weights should be stored in grade_items for the Setup screen and the Grader report and in the grade_grades table for the User report.&lt;br /&gt;
&lt;br /&gt;
==The Math==&lt;br /&gt;
The sum of weights for all containers (categories and course) add up to 100% except in the case where extra credit is used in which case 100% is exceeded by the weight of the extra credit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup screen and Grader report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# ungraded items&#039; points (if aggregateonlygraded is on))&lt;br /&gt;
# any items dropped through container&#039;s drop lowest or keep highest conditions&lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
A multiplicator is used when some natural weights have been manually adjusted = sum(all adjusted weights) / 100&lt;br /&gt;
&lt;br /&gt;
The natural weight for each item contained in a category or course (including extra credit items) is &#039;item maximum points&#039; / &#039;total category or course points&#039; (in which the item is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
The natural weight for each category (including extra credit categories) is &#039;total category points&#039; / &#039;total category or course points&#039; (in which the category is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
==Calculation examples==&lt;br /&gt;
&lt;br /&gt;
===Example 1 simple sum===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you just want their scores added together (out of 50).&lt;br /&gt;
:No action is required of the user regarding weights.&lt;br /&gt;
&lt;br /&gt;
===Example 2 simple mean===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you want the final grade to be the simple mean percentage of all these scores.&lt;br /&gt;
:User should adjust all weights to be the same, i.e., 25%&lt;br /&gt;
&lt;br /&gt;
===Example 3 typical weighted categories===&lt;br /&gt;
User has four categories whose category totals are not in relation to each other as the user desires. They want the &#039;Quizzes&#039; to be worth 20%, the &#039;Exams&#039; to be worth 50% (with the midterm worth 20% and the final worth 30%), &#039;Papers&#039; worth 20%, and &#039;Attendance&#039; worth 10%&lt;br /&gt;
: User would edit the weights and &lt;br /&gt;
::- place the value 20 on the Quizzes category line&lt;br /&gt;
::- place the value 50 on the Exams category line&lt;br /&gt;
::- place the value 20 on the midterm exam item line&lt;br /&gt;
::- place the value 30 on the final exam item line&lt;br /&gt;
::- place the value 20 on the Papers category line&lt;br /&gt;
::- place the value 20 on the Attendance category (or item) line&lt;br /&gt;
: Then the user would save their weight settings&lt;br /&gt;
&lt;br /&gt;
===Example 4 (complex)===&lt;br /&gt;
&lt;br /&gt;
Category 1 contains seven items&lt;br /&gt;
# Item A = 20 points&lt;br /&gt;
# Item B = 10 points is extra credit&lt;br /&gt;
# Item C = 30 points&lt;br /&gt;
# Item D = 40 points is extra credit&lt;br /&gt;
# Item E = 50 points is hidden&lt;br /&gt;
# Item F = 50 points is ungraded&lt;br /&gt;
# Item G = 10 points whose natural weight has been adjusted to 50% of the category grade&lt;br /&gt;
&lt;br /&gt;
; In the Setup screen and the Grader report the following conditions will exist&lt;br /&gt;
:- Category grademax = 120 (10 + 50 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 110 (50 + 30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 8.33% (20 / 120 * .5)&lt;br /&gt;
:- B weight = 4.16% (10 / 120 * .5)&lt;br /&gt;
:- C weight = 12.5% (30 / 120 * .5)&lt;br /&gt;
:- D weight = 33.33% (40 / 120) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 25% (50 / 120 * .5)&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
; In the User report the following conditions will exist&lt;br /&gt;
:- Category grademax = 70 (10 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 60 (30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 16.66% (20 / 60 * .5)&lt;br /&gt;
:- B weight = 8.33% (10 / 60 * .5)&lt;br /&gt;
:- C weight = 25% (30 / 60 * .5)&lt;br /&gt;
:- D weight = 66.66% (40 / 60) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 0%&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
===Background philosophy===&lt;br /&gt;
;The Moodle 1.95 was a giant step forward but it did some things fundamentally flawed. Those involving weights and grade category calculation (otherwise known as &#039;aggregation&#039;) are detailed below.&lt;br /&gt;
:- Running accurate points were not maintained for category and course totals &lt;br /&gt;
::- It was assumed that the final &#039;Grade&#039; (or points) total for categories would always be 100. If that were really the case then there would be no reason to have a percentage as these values would be exactly the same.&lt;br /&gt;
::- The only aggregation method that did maintain accurate point totals was Sum of grade. But it had substantial flaws (to this day). It did not exclude ungraded items (though it purported to do so) and it did not exclude hidden items, regardless of the setting for hidetotalsiftheycontainhiddenitems.&lt;br /&gt;
:- It made a gigantic leap of misplaced faith that even a small percentage of teachers would understand what aggregation means and even fewer would take the time to commit to memory what each aggregation method produced for results&lt;br /&gt;
;Grading isn&#039;t simple but grade weighting is. A teacher either designs their course with graded items in points-proportional value to other graded items or they choose to override those &#039;natural weights&#039;.&lt;br /&gt;
;All of this distills down to two different methods, &#039;grades based on points&#039; or &#039;grades based on adjusted weights&#039;. &lt;br /&gt;
;It is hardly a leap to conclude a setup screen that displays the natural weights for all items and categories with the ability to easily adjust those weights, if desired, would be great step forward in ease of use.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45781</id>
		<title>Natural weighting</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45781"/>
		<updated>2014-07-13T21:46:48Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* Background philosophy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Natural Weighting&lt;br /&gt;
|state = Specification&lt;br /&gt;
|tracker = https://tracker.moodle.org/browse/MDL-43378&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=245442&lt;br /&gt;
|assignee = Moodle HQ&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=245442}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natural weighting is a modification to how grades are combined.&lt;br /&gt;
&lt;br /&gt;
When &#039;Sum of Grades&#039; aggregation is chosen (and natural weighting is active), there will be a weight column with form fields, looking like &amp;quot;Weighted mean&amp;quot; is in 2.7.  By default, the weight column shows the natural weights given to all categories and items based on gradebook structure.&lt;br /&gt;
&lt;br /&gt;
Weights can be overridden by modifying the values in the form fields.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Reset weights&amp;quot; button in each category resets the weights to their defaults.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rationale==&lt;br /&gt;
&lt;br /&gt;
;In grading, &#039;&#039;&#039;weight&#039;&#039;&#039; is the proportion of an item&#039;s value in relation to all the other items in its container (category or course). &lt;br /&gt;
;Value is most often represented as &#039;points&#039;. &lt;br /&gt;
;Every grade has a weight. &lt;br /&gt;
;There are three fundamental approaches to dealing with weighting in a gradebook&lt;br /&gt;
:- Simple (or natural) weighting. When accurate points for categories and course totals are maintained, both Sum of grades and Simple weighted mean of grades accomplish exactly the same thing.&lt;br /&gt;
:- Adjusted weighting. Users often want to adjust categories and even items to have a weight other than the natural weight, essentially ignoring the points entirely. An example would be, Quizzes=40%, Assignments=50%, Attendance=10%. &lt;br /&gt;
:- Mean of grades. If I have a category made up of five quizzes all worth different points and I want a category percentage to just tell the average (or mean) of all the quiz results&#039; percentage correct, I would choose this approach again, disregarding the points.&lt;br /&gt;
;Simplifying the understanding of weighting reduces the aggregation methodology down to &#039;either/ or&#039; &lt;br /&gt;
:- either &#039;leave weights as is -- natural&#039; &lt;br /&gt;
:- or &#039;adjust to suit my needs -- adjusted weights&#039;&lt;br /&gt;
&lt;br /&gt;
;This greatly simplifies the interface needed to present these options&lt;br /&gt;
:- They don&#039;t need to select an aggregation type&lt;br /&gt;
:- They don&#039;t need to know how each aggregation type performs&lt;br /&gt;
:- The &#039;&#039;&#039;actual&#039;&#039;&#039; weight of every item and category is &#039;&#039;&#039;always&#039;&#039;&#039; displayed to them. &lt;br /&gt;
:- If those are not the weights they want, they merely adjust them.&lt;br /&gt;
;- Much easier for the common user to grasp.  &lt;br /&gt;
&lt;br /&gt;
This interface and calculations are expected to suit the needs of all except very edge cases (which can still be handled with formulas).  If it turns out that this is enough for everyone then we can potentially remove quite a lot of aggregation code from the gradebook at a later stage, improving speed and readability.&lt;br /&gt;
&lt;br /&gt;
===How natural weights meets the requirements of the aggregation types===&lt;br /&gt;
;Sum of grades: Leave all weightings as is, no change necessary.&lt;br /&gt;
;Mean of grades: Set all weights equal to each other. Doesn&#039;t matter what the number is, as in legacy behavior Moodle will automatically adjust so the sum equals 100%. However, in this implementation the group wants to have a pop-up warning the user the weights don&#039;t add up to 100% and they will therefore be adjusted uniformly to equal 100%.&lt;br /&gt;
;Weighted mean of grades: Adjust weights as desired. No change from current behavior.&lt;br /&gt;
;Simple weighted mean of grades: Leave all weightings as is, no change necessary. Same as Sum of grades.&lt;br /&gt;
;Mean of grades (with extra credits): Extra credit has a natural weight that takes the total container (category/ course) weight above 100% (hence, &#039;extra&#039;). Extra credit is available at all times no matter what scheme of weighting is chosen.&lt;br /&gt;
;Highest : User would input the value &#039;1&#039; for &#039;Keep highest&#039; in the category&lt;br /&gt;
;Lowest : Not possible using natural weights, but it can be replaced by a calculation into a new item.&lt;br /&gt;
;Median / Mode of grades: Not possible using natural weights, but it&#039;s doubtful anyone uses these anyway so perhaps this can be deprecated entirely.&lt;br /&gt;
&lt;br /&gt;
==Implementation stages==&lt;br /&gt;
&lt;br /&gt;
To be safe, we plan to implement this in stages:&lt;br /&gt;
&lt;br /&gt;
STAGE 1) Implement natural weighting as part of the Sum of Grades aggregation type, with admin settings that allow them to disable all other aggregations if they choose. (Moodle 2.8)&lt;br /&gt;
&lt;br /&gt;
STAGE 2) Once people have been using this for a while, explore the possibility of removing other aggregation code or making them into optional plugins. (Moodle 3.0 perhaps)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Interfaces==&lt;br /&gt;
&lt;br /&gt;
=== Category editing ===&lt;br /&gt;
&lt;br /&gt;
Prototype from luther.edu:&lt;br /&gt;
[[Image:NaturalWeights.png]]&lt;br /&gt;
&lt;br /&gt;
In addition the weights should be editable form fields here, and there would be one button per category to &amp;quot;reset weights&amp;quot; back to a natural Sum of Grades.&lt;br /&gt;
&lt;br /&gt;
=== Admin settings ===&lt;br /&gt;
&lt;br /&gt;
New setting to &amp;quot;Force Natural Weighting&amp;quot; (on/off).   This would default to OFF on upgraded sites and ON for new sites.&lt;br /&gt;
&lt;br /&gt;
ON:  this will hide the aggregation menu and all new categories will default to &amp;quot;Sum of grades&amp;quot; and natural weights.  It will not affect existing gradebooks with other aggregations set (see upgrade script below for a conversion strategy).&lt;br /&gt;
&lt;br /&gt;
OFF: aggregation menu is shown, but Sum of Grades will still contain new natural weighting UI and logic.&lt;br /&gt;
&lt;br /&gt;
NOTE: I&#039;d really like to see a third option, &#039;Optional&#039; with the use case of admins wanting to introduce this new method to some teachers on a trial basis but not have it necessarily forced on all courses. We initially saw 2.9 being the point at which we would go down to two settings, &#039;On&#039; or &#039;Off&#039; with 3.0 full &#039;On&#039;&lt;br /&gt;
&lt;br /&gt;
==Upgrade script==&lt;br /&gt;
&lt;br /&gt;
If a site is switching to forced natural weights, they will probably want to upgrade all existing categories.&lt;br /&gt;
&lt;br /&gt;
This new optional upgrade script will examine all grade categories looking at aggregation methods.  It should report on what exists and allow the admin to perform an automated upgrade as follows:&lt;br /&gt;
&lt;br /&gt;
# If GRADE_AGGREGATE_WEIGHTED_MEAN then:&lt;br /&gt;
#* Store value of &#039;aggregationcoef&#039; fields to &#039;weight&#039; fields in grade_items&lt;br /&gt;
#* Set &#039;weightoverride&#039; field in grade_items&lt;br /&gt;
# If ... then:&lt;br /&gt;
#* &lt;br /&gt;
#* &lt;br /&gt;
&lt;br /&gt;
(We need exact strategies here for ALL aggregation types)&lt;br /&gt;
&lt;br /&gt;
==Database changes==&lt;br /&gt;
&lt;br /&gt;
;Add three fields to grade_items&lt;br /&gt;
# extracredit, tinyint, notnull, default: 0&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
# weightoverride, tinyint, notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
; Add one field to grade_grades&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
;This fixes the use of &#039;&#039;&#039;aggregationcoef&#039;&#039;&#039; representing both extra credit and weight in 2.7.&lt;br /&gt;
&lt;br /&gt;
== Unit test changes==&lt;br /&gt;
&lt;br /&gt;
==Functional test changes ==&lt;br /&gt;
&lt;br /&gt;
==Logic changes==&lt;br /&gt;
&lt;br /&gt;
Sum of Grades aggregation must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; hidden items and to &#039;&#039;&#039;exclude&#039;&#039;&#039; non-graded items&lt;br /&gt;
&lt;br /&gt;
Determination of range (in Grader and User report) and Max grade (in Setup screen) must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; extra credit items&lt;br /&gt;
&lt;br /&gt;
Natural weights must be saved and applied to the form.&lt;br /&gt;
&lt;br /&gt;
Natural weights are calculated for the Setup screen, the Grader report, and the User report. The calculation for the User report is different than that used for the Setup screen and Grader report.&lt;br /&gt;
&lt;br /&gt;
Weights should be stored in grade_items for the Setup screen and the Grader report and in the grade_grades table for the User report.&lt;br /&gt;
&lt;br /&gt;
==The Math==&lt;br /&gt;
The sum of weights for all containers (categories and course) add up to 100% except in the case where extra credit is used in which case 100% is exceeded by the weight of the extra credit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup screen and Grader report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# ungraded items&#039; points (if aggregateonlygraded is on))&lt;br /&gt;
# any items dropped through container&#039;s drop lowest or keep highest conditions&lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
A multiplicator is used when some natural weights have been manually adjusted = sum(all adjusted weights) / 100&lt;br /&gt;
&lt;br /&gt;
The natural weight for each item contained in a category or course (including extra credit items) is &#039;item maximum points&#039; / &#039;total category or course points&#039; (in which the item is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
The natural weight for each category (including extra credit categories) is &#039;total category points&#039; / &#039;total category or course points&#039; (in which the category is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
==Calculation examples==&lt;br /&gt;
&lt;br /&gt;
===Example 1 simple sum===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you just want their scores added together (out of 50).&lt;br /&gt;
:No action is required of the user regarding weights.&lt;br /&gt;
&lt;br /&gt;
===Example 2 simple mean===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you want the final grade to be the simple mean percentage of all these scores.&lt;br /&gt;
:User should adjust all weights to be the same, i.e., 25%&lt;br /&gt;
&lt;br /&gt;
===Example 3 typical weighted categories===&lt;br /&gt;
User has four categories whose category totals are not in relation to each other as the user desires. They want the &#039;Quizzes&#039; to be worth 20%, the &#039;Exams&#039; to be worth 50% (with the midterm worth 20% and the final worth 30%), &#039;Papers&#039; worth 20%, and &#039;Attendance&#039; worth 10%&lt;br /&gt;
: User would edit the weights and &lt;br /&gt;
::- place the value 20 on the Quizzes category line&lt;br /&gt;
::- place the value 50 on the Exams category line&lt;br /&gt;
::- place the value 20 on the midterm exam item line&lt;br /&gt;
::- place the value 30 on the final exam item line&lt;br /&gt;
::- place the value 20 on the Papers category line&lt;br /&gt;
::- place the value 20 on the Attendance category (or item) line&lt;br /&gt;
: Then the user would save their weight settings&lt;br /&gt;
&lt;br /&gt;
===Example 4 (complex)===&lt;br /&gt;
&lt;br /&gt;
Category 1 contains seven items&lt;br /&gt;
# Item A = 20 points&lt;br /&gt;
# Item B = 10 points is extra credit&lt;br /&gt;
# Item C = 30 points&lt;br /&gt;
# Item D = 40 points is extra credit&lt;br /&gt;
# Item E = 50 points is hidden&lt;br /&gt;
# Item F = 50 points is ungraded&lt;br /&gt;
# Item G = 10 points whose natural weight has been adjusted to 50% of the category grade&lt;br /&gt;
&lt;br /&gt;
; In the Setup screen and the Grader report the following conditions will exist&lt;br /&gt;
:- Category grademax = 120 (10 + 50 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 110 (50 + 30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 8.33% (20 / 120 * .5)&lt;br /&gt;
:- B weight = 4.16% (10 / 120 * .5)&lt;br /&gt;
:- C weight = 12.5% (30 / 120 * .5)&lt;br /&gt;
:- D weight = 33.33% (40 / 120) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 25% (50 / 120 * .5)&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
; In the User report the following conditions will exist&lt;br /&gt;
:- Category grademax = 70 (10 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 60 (30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 16.66% (20 / 60 * .5)&lt;br /&gt;
:- B weight = 8.33% (10 / 60 * .5)&lt;br /&gt;
:- C weight = 25% (30 / 60 * .5)&lt;br /&gt;
:- D weight = 66.66% (40 / 60) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 0%&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
===Background philosophy===&lt;br /&gt;
;The Moodle 1.95 was a giant step forward but it did some things fundamentally flawed&lt;br /&gt;
:- Running accurate points were not maintained for category and course totals &lt;br /&gt;
::- It was assumed that the final &#039;Grade&#039; (or points) total for categories would always be 100. If that were really the case then there would be no reason to have a percentage as these values would be exactly the same.&lt;br /&gt;
::- The only aggregation method that did maintain accurate point totals was Sum of grade. But it had substantial flaws (to this day). It did not exclude ungraded items (though it purported to do so) and it did not exclude hidden items, regardless of the setting for hidetotalsiftheycontainhiddenitems.&lt;br /&gt;
:- It made a gigantic leap of misplaced faith that even a small percentage of teachers would understand what aggregation means and even fewer would take the time to commit to memory what each aggregation method produced for results&lt;br /&gt;
;Grading isn&#039;t simple but grade weighting is. A teacher either designs their course with graded items in points-proportional value to other graded items or they choose to override those &#039;natural weights&#039;.&lt;br /&gt;
;All of this distills down to two different methods, &#039;grades based on points&#039; or &#039;grades based on adjusted weights&#039;. &lt;br /&gt;
;It is hardly a leap to conclude a setup screen that displays the natural weights for all items and categories with the ability to easily adjust those weights, if desired, would be great step forward in ease of use.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45780</id>
		<title>Natural weighting</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45780"/>
		<updated>2014-07-13T21:28:00Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* Example 4 (complex) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Natural Weighting&lt;br /&gt;
|state = Specification&lt;br /&gt;
|tracker = https://tracker.moodle.org/browse/MDL-43378&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=245442&lt;br /&gt;
|assignee = Moodle HQ&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=245442}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natural weighting is a modification to how grades are combined.&lt;br /&gt;
&lt;br /&gt;
When &#039;Sum of Grades&#039; aggregation is chosen (and natural weighting is active), there will be a weight column with form fields, looking like &amp;quot;Weighted mean&amp;quot; is in 2.7.  By default, the weight column shows the natural weights given to all categories and items based on gradebook structure.&lt;br /&gt;
&lt;br /&gt;
Weights can be overridden by modifying the values in the form fields.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Reset weights&amp;quot; button in each category resets the weights to their defaults.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rationale==&lt;br /&gt;
&lt;br /&gt;
;In grading, &#039;&#039;&#039;weight&#039;&#039;&#039; is the proportion of an item&#039;s value in relation to all the other items in its container (category or course). &lt;br /&gt;
;Value is most often represented as &#039;points&#039;. &lt;br /&gt;
;Every grade has a weight. &lt;br /&gt;
;There are three fundamental approaches to dealing with weighting in a gradebook&lt;br /&gt;
:- Simple (or natural) weighting. When accurate points for categories and course totals are maintained, both Sum of grades and Simple weighted mean of grades accomplish exactly the same thing.&lt;br /&gt;
:- Adjusted weighting. Users often want to adjust categories and even items to have a weight other than the natural weight, essentially ignoring the points entirely. An example would be, Quizzes=40%, Assignments=50%, Attendance=10%. &lt;br /&gt;
:- Mean of grades. If I have a category made up of five quizzes all worth different points and I want a category percentage to just tell the average (or mean) of all the quiz results&#039; percentage correct, I would choose this approach again, disregarding the points.&lt;br /&gt;
;Simplifying the understanding of weighting reduces the aggregation methodology down to &#039;either/ or&#039; &lt;br /&gt;
:- either &#039;leave weights as is -- natural&#039; &lt;br /&gt;
:- or &#039;adjust to suit my needs -- adjusted weights&#039;&lt;br /&gt;
&lt;br /&gt;
;This greatly simplifies the interface needed to present these options&lt;br /&gt;
:- They don&#039;t need to select an aggregation type&lt;br /&gt;
:- They don&#039;t need to know how each aggregation type performs&lt;br /&gt;
:- The &#039;&#039;&#039;actual&#039;&#039;&#039; weight of every item and category is &#039;&#039;&#039;always&#039;&#039;&#039; displayed to them. &lt;br /&gt;
:- If those are not the weights they want, they merely adjust them.&lt;br /&gt;
;- Much easier for the common user to grasp.  &lt;br /&gt;
&lt;br /&gt;
This interface and calculations are expected to suit the needs of all except very edge cases (which can still be handled with formulas).  If it turns out that this is enough for everyone then we can potentially remove quite a lot of aggregation code from the gradebook at a later stage, improving speed and readability.&lt;br /&gt;
&lt;br /&gt;
===How natural weights meets the requirements of the aggregation types===&lt;br /&gt;
;Sum of grades: Leave all weightings as is, no change necessary.&lt;br /&gt;
;Mean of grades: Set all weights equal to each other. Doesn&#039;t matter what the number is, as in legacy behavior Moodle will automatically adjust so the sum equals 100%. However, in this implementation the group wants to have a pop-up warning the user the weights don&#039;t add up to 100% and they will therefore be adjusted uniformly to equal 100%.&lt;br /&gt;
;Weighted mean of grades: Adjust weights as desired. No change from current behavior.&lt;br /&gt;
;Simple weighted mean of grades: Leave all weightings as is, no change necessary. Same as Sum of grades.&lt;br /&gt;
;Mean of grades (with extra credits): Extra credit has a natural weight that takes the total container (category/ course) weight above 100% (hence, &#039;extra&#039;). Extra credit is available at all times no matter what scheme of weighting is chosen.&lt;br /&gt;
;Highest : User would input the value &#039;1&#039; for &#039;Keep highest&#039; in the category&lt;br /&gt;
;Lowest : Not possible using natural weights, but it can be replaced by a calculation into a new item.&lt;br /&gt;
;Median / Mode of grades: Not possible using natural weights, but it&#039;s doubtful anyone uses these anyway so perhaps this can be deprecated entirely.&lt;br /&gt;
&lt;br /&gt;
==Implementation stages==&lt;br /&gt;
&lt;br /&gt;
To be safe, we plan to implement this in stages:&lt;br /&gt;
&lt;br /&gt;
STAGE 1) Implement natural weighting as part of the Sum of Grades aggregation type, with admin settings that allow them to disable all other aggregations if they choose. (Moodle 2.8)&lt;br /&gt;
&lt;br /&gt;
STAGE 2) Once people have been using this for a while, explore the possibility of removing other aggregation code or making them into optional plugins. (Moodle 3.0 perhaps)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Interfaces==&lt;br /&gt;
&lt;br /&gt;
=== Category editing ===&lt;br /&gt;
&lt;br /&gt;
Prototype from luther.edu:&lt;br /&gt;
[[Image:NaturalWeights.png]]&lt;br /&gt;
&lt;br /&gt;
In addition the weights should be editable form fields here, and there would be one button per category to &amp;quot;reset weights&amp;quot; back to a natural Sum of Grades.&lt;br /&gt;
&lt;br /&gt;
=== Admin settings ===&lt;br /&gt;
&lt;br /&gt;
New setting to &amp;quot;Force Natural Weighting&amp;quot; (on/off).   This would default to OFF on upgraded sites and ON for new sites.&lt;br /&gt;
&lt;br /&gt;
ON:  this will hide the aggregation menu and all new categories will default to &amp;quot;Sum of grades&amp;quot; and natural weights.  It will not affect existing gradebooks with other aggregations set (see upgrade script below for a conversion strategy).&lt;br /&gt;
&lt;br /&gt;
OFF: aggregation menu is shown, but Sum of Grades will still contain new natural weighting UI and logic.&lt;br /&gt;
&lt;br /&gt;
NOTE: I&#039;d really like to see a third option, &#039;Optional&#039; with the use case of admins wanting to introduce this new method to some teachers on a trial basis but not have it necessarily forced on all courses. We initially saw 2.9 being the point at which we would go down to two settings, &#039;On&#039; or &#039;Off&#039; with 3.0 full &#039;On&#039;&lt;br /&gt;
&lt;br /&gt;
==Upgrade script==&lt;br /&gt;
&lt;br /&gt;
If a site is switching to forced natural weights, they will probably want to upgrade all existing categories.&lt;br /&gt;
&lt;br /&gt;
This new optional upgrade script will examine all grade categories looking at aggregation methods.  It should report on what exists and allow the admin to perform an automated upgrade as follows:&lt;br /&gt;
&lt;br /&gt;
# If GRADE_AGGREGATE_WEIGHTED_MEAN then:&lt;br /&gt;
#* Store value of &#039;aggregationcoef&#039; fields to &#039;weight&#039; fields in grade_items&lt;br /&gt;
#* Set &#039;weightoverride&#039; field in grade_items&lt;br /&gt;
# If ... then:&lt;br /&gt;
#* &lt;br /&gt;
#* &lt;br /&gt;
&lt;br /&gt;
(We need exact strategies here for ALL aggregation types)&lt;br /&gt;
&lt;br /&gt;
==Database changes==&lt;br /&gt;
&lt;br /&gt;
;Add three fields to grade_items&lt;br /&gt;
# extracredit, tinyint, notnull, default: 0&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
# weightoverride, tinyint, notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
; Add one field to grade_grades&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
;This fixes the use of &#039;&#039;&#039;aggregationcoef&#039;&#039;&#039; representing both extra credit and weight in 2.7.&lt;br /&gt;
&lt;br /&gt;
== Unit test changes==&lt;br /&gt;
&lt;br /&gt;
==Functional test changes ==&lt;br /&gt;
&lt;br /&gt;
==Logic changes==&lt;br /&gt;
&lt;br /&gt;
Sum of Grades aggregation must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; hidden items and to &#039;&#039;&#039;exclude&#039;&#039;&#039; non-graded items&lt;br /&gt;
&lt;br /&gt;
Determination of range (in Grader and User report) and Max grade (in Setup screen) must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; extra credit items&lt;br /&gt;
&lt;br /&gt;
Natural weights must be saved and applied to the form.&lt;br /&gt;
&lt;br /&gt;
Natural weights are calculated for the Setup screen, the Grader report, and the User report. The calculation for the User report is different than that used for the Setup screen and Grader report.&lt;br /&gt;
&lt;br /&gt;
Weights should be stored in grade_items for the Setup screen and the Grader report and in the grade_grades table for the User report.&lt;br /&gt;
&lt;br /&gt;
==The Math==&lt;br /&gt;
The sum of weights for all containers (categories and course) add up to 100% except in the case where extra credit is used in which case 100% is exceeded by the weight of the extra credit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup screen and Grader report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# ungraded items&#039; points (if aggregateonlygraded is on))&lt;br /&gt;
# any items dropped through container&#039;s drop lowest or keep highest conditions&lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
A multiplicator is used when some natural weights have been manually adjusted = sum(all adjusted weights) / 100&lt;br /&gt;
&lt;br /&gt;
The natural weight for each item contained in a category or course (including extra credit items) is &#039;item maximum points&#039; / &#039;total category or course points&#039; (in which the item is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
The natural weight for each category (including extra credit categories) is &#039;total category points&#039; / &#039;total category or course points&#039; (in which the category is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
==Calculation examples==&lt;br /&gt;
&lt;br /&gt;
===Example 1 simple sum===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you just want their scores added together (out of 50).&lt;br /&gt;
:No action is required of the user regarding weights.&lt;br /&gt;
&lt;br /&gt;
===Example 2 simple mean===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you want the final grade to be the simple mean percentage of all these scores.&lt;br /&gt;
:User should adjust all weights to be the same, i.e., 25%&lt;br /&gt;
&lt;br /&gt;
===Example 3 typical weighted categories===&lt;br /&gt;
User has four categories whose category totals are not in relation to each other as the user desires. They want the &#039;Quizzes&#039; to be worth 20%, the &#039;Exams&#039; to be worth 50% (with the midterm worth 20% and the final worth 30%), &#039;Papers&#039; worth 20%, and &#039;Attendance&#039; worth 10%&lt;br /&gt;
: User would edit the weights and &lt;br /&gt;
::- place the value 20 on the Quizzes category line&lt;br /&gt;
::- place the value 50 on the Exams category line&lt;br /&gt;
::- place the value 20 on the midterm exam item line&lt;br /&gt;
::- place the value 30 on the final exam item line&lt;br /&gt;
::- place the value 20 on the Papers category line&lt;br /&gt;
::- place the value 20 on the Attendance category (or item) line&lt;br /&gt;
: Then the user would save their weight settings&lt;br /&gt;
&lt;br /&gt;
===Example 4 (complex)===&lt;br /&gt;
&lt;br /&gt;
Category 1 contains seven items&lt;br /&gt;
# Item A = 20 points&lt;br /&gt;
# Item B = 10 points is extra credit&lt;br /&gt;
# Item C = 30 points&lt;br /&gt;
# Item D = 40 points is extra credit&lt;br /&gt;
# Item E = 50 points is hidden&lt;br /&gt;
# Item F = 50 points is ungraded&lt;br /&gt;
# Item G = 10 points whose natural weight has been adjusted to 50% of the category grade&lt;br /&gt;
&lt;br /&gt;
; In the Setup screen and the Grader report the following conditions will exist&lt;br /&gt;
:- Category grademax = 120 (10 + 50 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 110 (50 + 30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 8.33% (20 / 120 * .5)&lt;br /&gt;
:- B weight = 4.16% (10 / 120 * .5)&lt;br /&gt;
:- C weight = 12.5% (30 / 120 * .5)&lt;br /&gt;
:- D weight = 33.33% (40 / 120) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 25% (50 / 120 * .5)&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
; In the User report the following conditions will exist&lt;br /&gt;
:- Category grademax = 70 (10 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 60 (30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 16.66% (20 / 60 * .5)&lt;br /&gt;
:- B weight = 8.33% (10 / 60 * .5)&lt;br /&gt;
:- C weight = 25% (30 / 60 * .5)&lt;br /&gt;
:- D weight = 66.66% (40 / 60) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 0%&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
===Background philosophy===&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45779</id>
		<title>Natural weighting</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45779"/>
		<updated>2014-07-13T20:23:38Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* Rationale */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Natural Weighting&lt;br /&gt;
|state = Specification&lt;br /&gt;
|tracker = https://tracker.moodle.org/browse/MDL-43378&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=245442&lt;br /&gt;
|assignee = Moodle HQ&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=245442}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natural weighting is a modification to how grades are combined.&lt;br /&gt;
&lt;br /&gt;
When &#039;Sum of Grades&#039; aggregation is chosen (and natural weighting is active), there will be a weight column with form fields, looking like &amp;quot;Weighted mean&amp;quot; is in 2.7.  By default, the weight column shows the natural weights given to all categories and items based on gradebook structure.&lt;br /&gt;
&lt;br /&gt;
Weights can be overridden by modifying the values in the form fields.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Reset weights&amp;quot; button in each category resets the weights to their defaults.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rationale==&lt;br /&gt;
&lt;br /&gt;
;In grading, &#039;&#039;&#039;weight&#039;&#039;&#039; is the proportion of an item&#039;s value in relation to all the other items in its container (category or course). &lt;br /&gt;
;Value is most often represented as &#039;points&#039;. &lt;br /&gt;
;Every grade has a weight. &lt;br /&gt;
;There are three fundamental approaches to dealing with weighting in a gradebook&lt;br /&gt;
:- Simple (or natural) weighting. When accurate points for categories and course totals are maintained, both Sum of grades and Simple weighted mean of grades accomplish exactly the same thing.&lt;br /&gt;
:- Adjusted weighting. Users often want to adjust categories and even items to have a weight other than the natural weight, essentially ignoring the points entirely. An example would be, Quizzes=40%, Assignments=50%, Attendance=10%. &lt;br /&gt;
:- Mean of grades. If I have a category made up of five quizzes all worth different points and I want a category percentage to just tell the average (or mean) of all the quiz results&#039; percentage correct, I would choose this approach again, disregarding the points.&lt;br /&gt;
;Simplifying the understanding of weighting reduces the aggregation methodology down to &#039;either/ or&#039; &lt;br /&gt;
:- either &#039;leave weights as is -- natural&#039; &lt;br /&gt;
:- or &#039;adjust to suit my needs -- adjusted weights&#039;&lt;br /&gt;
&lt;br /&gt;
;This greatly simplifies the interface needed to present these options&lt;br /&gt;
:- They don&#039;t need to select an aggregation type&lt;br /&gt;
:- They don&#039;t need to know how each aggregation type performs&lt;br /&gt;
:- The &#039;&#039;&#039;actual&#039;&#039;&#039; weight of every item and category is &#039;&#039;&#039;always&#039;&#039;&#039; displayed to them. &lt;br /&gt;
:- If those are not the weights they want, they merely adjust them.&lt;br /&gt;
;- Much easier for the common user to grasp.  &lt;br /&gt;
&lt;br /&gt;
This interface and calculations are expected to suit the needs of all except very edge cases (which can still be handled with formulas).  If it turns out that this is enough for everyone then we can potentially remove quite a lot of aggregation code from the gradebook at a later stage, improving speed and readability.&lt;br /&gt;
&lt;br /&gt;
===How natural weights meets the requirements of the aggregation types===&lt;br /&gt;
;Sum of grades: Leave all weightings as is, no change necessary.&lt;br /&gt;
;Mean of grades: Set all weights equal to each other. Doesn&#039;t matter what the number is, as in legacy behavior Moodle will automatically adjust so the sum equals 100%. However, in this implementation the group wants to have a pop-up warning the user the weights don&#039;t add up to 100% and they will therefore be adjusted uniformly to equal 100%.&lt;br /&gt;
;Weighted mean of grades: Adjust weights as desired. No change from current behavior.&lt;br /&gt;
;Simple weighted mean of grades: Leave all weightings as is, no change necessary. Same as Sum of grades.&lt;br /&gt;
;Mean of grades (with extra credits): Extra credit has a natural weight that takes the total container (category/ course) weight above 100% (hence, &#039;extra&#039;). Extra credit is available at all times no matter what scheme of weighting is chosen.&lt;br /&gt;
;Highest : User would input the value &#039;1&#039; for &#039;Keep highest&#039; in the category&lt;br /&gt;
;Lowest : Not possible using natural weights, but it can be replaced by a calculation into a new item.&lt;br /&gt;
;Median / Mode of grades: Not possible using natural weights, but it&#039;s doubtful anyone uses these anyway so perhaps this can be deprecated entirely.&lt;br /&gt;
&lt;br /&gt;
==Implementation stages==&lt;br /&gt;
&lt;br /&gt;
To be safe, we plan to implement this in stages:&lt;br /&gt;
&lt;br /&gt;
STAGE 1) Implement natural weighting as part of the Sum of Grades aggregation type, with admin settings that allow them to disable all other aggregations if they choose. (Moodle 2.8)&lt;br /&gt;
&lt;br /&gt;
STAGE 2) Once people have been using this for a while, explore the possibility of removing other aggregation code or making them into optional plugins. (Moodle 3.0 perhaps)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Interfaces==&lt;br /&gt;
&lt;br /&gt;
=== Category editing ===&lt;br /&gt;
&lt;br /&gt;
Prototype from luther.edu:&lt;br /&gt;
[[Image:NaturalWeights.png]]&lt;br /&gt;
&lt;br /&gt;
In addition the weights should be editable form fields here, and there would be one button per category to &amp;quot;reset weights&amp;quot; back to a natural Sum of Grades.&lt;br /&gt;
&lt;br /&gt;
=== Admin settings ===&lt;br /&gt;
&lt;br /&gt;
New setting to &amp;quot;Force Natural Weighting&amp;quot; (on/off).   This would default to OFF on upgraded sites and ON for new sites.&lt;br /&gt;
&lt;br /&gt;
ON:  this will hide the aggregation menu and all new categories will default to &amp;quot;Sum of grades&amp;quot; and natural weights.  It will not affect existing gradebooks with other aggregations set (see upgrade script below for a conversion strategy).&lt;br /&gt;
&lt;br /&gt;
OFF: aggregation menu is shown, but Sum of Grades will still contain new natural weighting UI and logic.&lt;br /&gt;
&lt;br /&gt;
NOTE: I&#039;d really like to see a third option, &#039;Optional&#039; with the use case of admins wanting to introduce this new method to some teachers on a trial basis but not have it necessarily forced on all courses. We initially saw 2.9 being the point at which we would go down to two settings, &#039;On&#039; or &#039;Off&#039; with 3.0 full &#039;On&#039;&lt;br /&gt;
&lt;br /&gt;
==Upgrade script==&lt;br /&gt;
&lt;br /&gt;
If a site is switching to forced natural weights, they will probably want to upgrade all existing categories.&lt;br /&gt;
&lt;br /&gt;
This new optional upgrade script will examine all grade categories looking at aggregation methods.  It should report on what exists and allow the admin to perform an automated upgrade as follows:&lt;br /&gt;
&lt;br /&gt;
# If GRADE_AGGREGATE_WEIGHTED_MEAN then:&lt;br /&gt;
#* Store value of &#039;aggregationcoef&#039; fields to &#039;weight&#039; fields in grade_items&lt;br /&gt;
#* Set &#039;weightoverride&#039; field in grade_items&lt;br /&gt;
# If ... then:&lt;br /&gt;
#* &lt;br /&gt;
#* &lt;br /&gt;
&lt;br /&gt;
(We need exact strategies here for ALL aggregation types)&lt;br /&gt;
&lt;br /&gt;
==Database changes==&lt;br /&gt;
&lt;br /&gt;
;Add three fields to grade_items&lt;br /&gt;
# extracredit, tinyint, notnull, default: 0&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
# weightoverride, tinyint, notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
; Add one field to grade_grades&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
;This fixes the use of &#039;&#039;&#039;aggregationcoef&#039;&#039;&#039; representing both extra credit and weight in 2.7.&lt;br /&gt;
&lt;br /&gt;
== Unit test changes==&lt;br /&gt;
&lt;br /&gt;
==Functional test changes ==&lt;br /&gt;
&lt;br /&gt;
==Logic changes==&lt;br /&gt;
&lt;br /&gt;
Sum of Grades aggregation must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; hidden items and to &#039;&#039;&#039;exclude&#039;&#039;&#039; non-graded items&lt;br /&gt;
&lt;br /&gt;
Determination of range (in Grader and User report) and Max grade (in Setup screen) must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; extra credit items&lt;br /&gt;
&lt;br /&gt;
Natural weights must be saved and applied to the form.&lt;br /&gt;
&lt;br /&gt;
Natural weights are calculated for the Setup screen, the Grader report, and the User report. The calculation for the User report is different than that used for the Setup screen and Grader report.&lt;br /&gt;
&lt;br /&gt;
Weights should be stored in grade_items for the Setup screen and the Grader report and in the grade_grades table for the User report.&lt;br /&gt;
&lt;br /&gt;
==The Math==&lt;br /&gt;
The sum of weights for all containers (categories and course) add up to 100% except in the case where extra credit is used in which case 100% is exceeded by the weight of the extra credit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup screen and Grader report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# ungraded items&#039; points (if aggregateonlygraded is on))&lt;br /&gt;
# any items dropped through container&#039;s drop lowest or keep highest conditions&lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
A multiplicator is used when some natural weights have been manually adjusted = sum(all adjusted weights) / 100&lt;br /&gt;
&lt;br /&gt;
The natural weight for each item contained in a category or course (including extra credit items) is &#039;item maximum points&#039; / &#039;total category or course points&#039; (in which the item is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
The natural weight for each category (including extra credit categories) is &#039;total category points&#039; / &#039;total category or course points&#039; (in which the category is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
==Calculation examples==&lt;br /&gt;
&lt;br /&gt;
===Example 1 simple sum===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you just want their scores added together (out of 50).&lt;br /&gt;
:No action is required of the user regarding weights.&lt;br /&gt;
&lt;br /&gt;
===Example 2 simple mean===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you want the final grade to be the simple mean percentage of all these scores.&lt;br /&gt;
:User should adjust all weights to be the same, i.e., 25%&lt;br /&gt;
&lt;br /&gt;
===Example 3 typical weighted categories===&lt;br /&gt;
User has four categories whose category totals are not in relation to each other as the user desires. They want the &#039;Quizzes&#039; to be worth 20%, the &#039;Exams&#039; to be worth 50% (with the midterm worth 20% and the final worth 30%), &#039;Papers&#039; worth 20%, and &#039;Attendance&#039; worth 10%&lt;br /&gt;
: User would edit the weights and &lt;br /&gt;
::- place the value 20 on the Quizzes category line&lt;br /&gt;
::- place the value 50 on the Exams category line&lt;br /&gt;
::- place the value 20 on the midterm exam item line&lt;br /&gt;
::- place the value 30 on the final exam item line&lt;br /&gt;
::- place the value 20 on the Papers category line&lt;br /&gt;
::- place the value 20 on the Attendance category (or item) line&lt;br /&gt;
: Then the user would save their weight settings&lt;br /&gt;
&lt;br /&gt;
===Example 4 (complex)===&lt;br /&gt;
&lt;br /&gt;
Category 1 contains seven items&lt;br /&gt;
# Item A = 20 points&lt;br /&gt;
# Item B = 10 points is extra credit&lt;br /&gt;
# Item C = 30 points&lt;br /&gt;
# Item D = 40 points is extra credit&lt;br /&gt;
# Item E = 50 points is hidden&lt;br /&gt;
# Item F = 50 points is ungraded&lt;br /&gt;
# Item G = 10 points whose natural weight has been adjusted to 50% of the category grade&lt;br /&gt;
&lt;br /&gt;
; In the Setup screen and the Grader report the following conditions will exist&lt;br /&gt;
:- Category grademax = 120 (10 + 50 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 110 (50 + 30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 8.33% (20 / 120 * .5)&lt;br /&gt;
:- B weight = 4.16% (10 / 120 * .5)&lt;br /&gt;
:- C weight = 12.5% (30 / 120 * .5)&lt;br /&gt;
:- D weight = 33.33% (40 / 120) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 25% (50 / 120 * .5)&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
; In the User report the following conditions will exist&lt;br /&gt;
:- Category grademax = 70 (10 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 60 (30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 16.66% (20 / 60 * .5)&lt;br /&gt;
:- B weight = 8.33% (10 / 60 * .5)&lt;br /&gt;
:- C weight = 25% (30 / 60 * .5)&lt;br /&gt;
:- D weight = 66.66% (40 / 60) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 0%&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45778</id>
		<title>Natural weighting</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45778"/>
		<updated>2014-07-13T20:23:07Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* Rationale */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Natural Weighting&lt;br /&gt;
|state = Specification&lt;br /&gt;
|tracker = https://tracker.moodle.org/browse/MDL-43378&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=245442&lt;br /&gt;
|assignee = Moodle HQ&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=245442}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natural weighting is a modification to how grades are combined.&lt;br /&gt;
&lt;br /&gt;
When &#039;Sum of Grades&#039; aggregation is chosen (and natural weighting is active), there will be a weight column with form fields, looking like &amp;quot;Weighted mean&amp;quot; is in 2.7.  By default, the weight column shows the natural weights given to all categories and items based on gradebook structure.&lt;br /&gt;
&lt;br /&gt;
Weights can be overridden by modifying the values in the form fields.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Reset weights&amp;quot; button in each category resets the weights to their defaults.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rationale==&lt;br /&gt;
&lt;br /&gt;
;In grading, &#039;&#039;&#039;weight&#039;&#039;&#039; is the proportion of an item&#039;s value in relation to all the other items in its container (category or course). &lt;br /&gt;
;Value is most often represented as &#039;points&#039;. &lt;br /&gt;
;Every grade has a weight. &lt;br /&gt;
;There are three fundamental approaches to dealing with weighting in a gradebook&lt;br /&gt;
:- Simple (or natural) weighting. When accurate points for categories and course totals are maintained, both Sum of grades and Simple weighted mean of grades accomplish exactly the same thing.&lt;br /&gt;
:- Adjusted weighting. Users often want to adjust categories and even items to have a weight other than the natural weight, essentially ignoring the points entirely. An example would be, Quizzes=40%, Assignments=50%, Attendance=10%. &lt;br /&gt;
:- Mean of grades. If I have a category made up of five quizzes all worth different points and I want a category percentage to just tell the average (or mean) of all the quiz results&#039; percentage correct, I would choose this approach again, disregarding the points.&lt;br /&gt;
;Simplifying the understanding of weighting reduces the aggregation methodology down to &#039;either/ or&#039; &lt;br /&gt;
:- either &#039;leave weights as is -- natural&#039; &lt;br /&gt;
:- or &#039;adjust to suit my needs -- adjusted weights&#039;&lt;br /&gt;
&lt;br /&gt;
;This greatly simplifies the interface needed to present these options&lt;br /&gt;
:- They don&#039;t need to select an aggregation type&lt;br /&gt;
:- They don&#039;t need to know how each aggregation type performs&lt;br /&gt;
:- The &#039;&#039;&#039;actual&#039;&#039;&#039; weight of every item and category is &#039;&#039;&#039;always&#039;&#039;&#039; displayed to them. &lt;br /&gt;
:- If those are not the weights they want, they merely adjust them.&lt;br /&gt;
;- Much easier for the common user to grasp.  &lt;br /&gt;
&lt;br /&gt;
This interface and calculations are expected to suit the needs of all except very edge cases (which can still be handled with formulas).  If it turns out that this is enough for everyone then we can potentially remove quite a lot of aggregation code from the gradebook at a later stage, improving speed and readability.&lt;br /&gt;
&lt;br /&gt;
How natural weights meets the requirements of the aggregation types:&lt;br /&gt;
;Sum of grades: Leave all weightings as is, no change necessary.&lt;br /&gt;
;Mean of grades: Set all weights equal to each other. Doesn&#039;t matter what the number is, as in legacy behavior Moodle will automatically adjust so the sum equals 100%. However, in this implementation the group wants to have a pop-up warning the user the weights don&#039;t add up to 100% and they will therefore be adjusted uniformly to equal 100%.&lt;br /&gt;
;Weighted mean of grades: Adjust weights as desired. No change from current behavior.&lt;br /&gt;
;Simple weighted mean of grades: Leave all weightings as is, no change necessary. Same as Sum of grades.&lt;br /&gt;
;Mean of grades (with extra credits): Extra credit has a natural weight that takes the total container (category/ course) weight above 100% (hence, &#039;extra&#039;). Extra credit is available at all times no matter what scheme of weighting is chosen.&lt;br /&gt;
;Highest : User would input the value &#039;1&#039; for &#039;Keep highest&#039; in the category&lt;br /&gt;
;Lowest : Not possible using natural weights, but it can be replaced by a calculation into a new item.&lt;br /&gt;
;Median / Mode of grades: Not possible using natural weights, but it&#039;s doubtful anyone uses these anyway so perhaps this can be deprecated entirely.&lt;br /&gt;
&lt;br /&gt;
==Implementation stages==&lt;br /&gt;
&lt;br /&gt;
To be safe, we plan to implement this in stages:&lt;br /&gt;
&lt;br /&gt;
STAGE 1) Implement natural weighting as part of the Sum of Grades aggregation type, with admin settings that allow them to disable all other aggregations if they choose. (Moodle 2.8)&lt;br /&gt;
&lt;br /&gt;
STAGE 2) Once people have been using this for a while, explore the possibility of removing other aggregation code or making them into optional plugins. (Moodle 3.0 perhaps)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Interfaces==&lt;br /&gt;
&lt;br /&gt;
=== Category editing ===&lt;br /&gt;
&lt;br /&gt;
Prototype from luther.edu:&lt;br /&gt;
[[Image:NaturalWeights.png]]&lt;br /&gt;
&lt;br /&gt;
In addition the weights should be editable form fields here, and there would be one button per category to &amp;quot;reset weights&amp;quot; back to a natural Sum of Grades.&lt;br /&gt;
&lt;br /&gt;
=== Admin settings ===&lt;br /&gt;
&lt;br /&gt;
New setting to &amp;quot;Force Natural Weighting&amp;quot; (on/off).   This would default to OFF on upgraded sites and ON for new sites.&lt;br /&gt;
&lt;br /&gt;
ON:  this will hide the aggregation menu and all new categories will default to &amp;quot;Sum of grades&amp;quot; and natural weights.  It will not affect existing gradebooks with other aggregations set (see upgrade script below for a conversion strategy).&lt;br /&gt;
&lt;br /&gt;
OFF: aggregation menu is shown, but Sum of Grades will still contain new natural weighting UI and logic.&lt;br /&gt;
&lt;br /&gt;
NOTE: I&#039;d really like to see a third option, &#039;Optional&#039; with the use case of admins wanting to introduce this new method to some teachers on a trial basis but not have it necessarily forced on all courses. We initially saw 2.9 being the point at which we would go down to two settings, &#039;On&#039; or &#039;Off&#039; with 3.0 full &#039;On&#039;&lt;br /&gt;
&lt;br /&gt;
==Upgrade script==&lt;br /&gt;
&lt;br /&gt;
If a site is switching to forced natural weights, they will probably want to upgrade all existing categories.&lt;br /&gt;
&lt;br /&gt;
This new optional upgrade script will examine all grade categories looking at aggregation methods.  It should report on what exists and allow the admin to perform an automated upgrade as follows:&lt;br /&gt;
&lt;br /&gt;
# If GRADE_AGGREGATE_WEIGHTED_MEAN then:&lt;br /&gt;
#* Store value of &#039;aggregationcoef&#039; fields to &#039;weight&#039; fields in grade_items&lt;br /&gt;
#* Set &#039;weightoverride&#039; field in grade_items&lt;br /&gt;
# If ... then:&lt;br /&gt;
#* &lt;br /&gt;
#* &lt;br /&gt;
&lt;br /&gt;
(We need exact strategies here for ALL aggregation types)&lt;br /&gt;
&lt;br /&gt;
==Database changes==&lt;br /&gt;
&lt;br /&gt;
;Add three fields to grade_items&lt;br /&gt;
# extracredit, tinyint, notnull, default: 0&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
# weightoverride, tinyint, notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
; Add one field to grade_grades&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
;This fixes the use of &#039;&#039;&#039;aggregationcoef&#039;&#039;&#039; representing both extra credit and weight in 2.7.&lt;br /&gt;
&lt;br /&gt;
== Unit test changes==&lt;br /&gt;
&lt;br /&gt;
==Functional test changes ==&lt;br /&gt;
&lt;br /&gt;
==Logic changes==&lt;br /&gt;
&lt;br /&gt;
Sum of Grades aggregation must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; hidden items and to &#039;&#039;&#039;exclude&#039;&#039;&#039; non-graded items&lt;br /&gt;
&lt;br /&gt;
Determination of range (in Grader and User report) and Max grade (in Setup screen) must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; extra credit items&lt;br /&gt;
&lt;br /&gt;
Natural weights must be saved and applied to the form.&lt;br /&gt;
&lt;br /&gt;
Natural weights are calculated for the Setup screen, the Grader report, and the User report. The calculation for the User report is different than that used for the Setup screen and Grader report.&lt;br /&gt;
&lt;br /&gt;
Weights should be stored in grade_items for the Setup screen and the Grader report and in the grade_grades table for the User report.&lt;br /&gt;
&lt;br /&gt;
==The Math==&lt;br /&gt;
The sum of weights for all containers (categories and course) add up to 100% except in the case where extra credit is used in which case 100% is exceeded by the weight of the extra credit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup screen and Grader report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# ungraded items&#039; points (if aggregateonlygraded is on))&lt;br /&gt;
# any items dropped through container&#039;s drop lowest or keep highest conditions&lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
A multiplicator is used when some natural weights have been manually adjusted = sum(all adjusted weights) / 100&lt;br /&gt;
&lt;br /&gt;
The natural weight for each item contained in a category or course (including extra credit items) is &#039;item maximum points&#039; / &#039;total category or course points&#039; (in which the item is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
The natural weight for each category (including extra credit categories) is &#039;total category points&#039; / &#039;total category or course points&#039; (in which the category is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
==Calculation examples==&lt;br /&gt;
&lt;br /&gt;
===Example 1 simple sum===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you just want their scores added together (out of 50).&lt;br /&gt;
:No action is required of the user regarding weights.&lt;br /&gt;
&lt;br /&gt;
===Example 2 simple mean===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you want the final grade to be the simple mean percentage of all these scores.&lt;br /&gt;
:User should adjust all weights to be the same, i.e., 25%&lt;br /&gt;
&lt;br /&gt;
===Example 3 typical weighted categories===&lt;br /&gt;
User has four categories whose category totals are not in relation to each other as the user desires. They want the &#039;Quizzes&#039; to be worth 20%, the &#039;Exams&#039; to be worth 50% (with the midterm worth 20% and the final worth 30%), &#039;Papers&#039; worth 20%, and &#039;Attendance&#039; worth 10%&lt;br /&gt;
: User would edit the weights and &lt;br /&gt;
::- place the value 20 on the Quizzes category line&lt;br /&gt;
::- place the value 50 on the Exams category line&lt;br /&gt;
::- place the value 20 on the midterm exam item line&lt;br /&gt;
::- place the value 30 on the final exam item line&lt;br /&gt;
::- place the value 20 on the Papers category line&lt;br /&gt;
::- place the value 20 on the Attendance category (or item) line&lt;br /&gt;
: Then the user would save their weight settings&lt;br /&gt;
&lt;br /&gt;
===Example 4 (complex)===&lt;br /&gt;
&lt;br /&gt;
Category 1 contains seven items&lt;br /&gt;
# Item A = 20 points&lt;br /&gt;
# Item B = 10 points is extra credit&lt;br /&gt;
# Item C = 30 points&lt;br /&gt;
# Item D = 40 points is extra credit&lt;br /&gt;
# Item E = 50 points is hidden&lt;br /&gt;
# Item F = 50 points is ungraded&lt;br /&gt;
# Item G = 10 points whose natural weight has been adjusted to 50% of the category grade&lt;br /&gt;
&lt;br /&gt;
; In the Setup screen and the Grader report the following conditions will exist&lt;br /&gt;
:- Category grademax = 120 (10 + 50 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 110 (50 + 30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 8.33% (20 / 120 * .5)&lt;br /&gt;
:- B weight = 4.16% (10 / 120 * .5)&lt;br /&gt;
:- C weight = 12.5% (30 / 120 * .5)&lt;br /&gt;
:- D weight = 33.33% (40 / 120) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 25% (50 / 120 * .5)&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
; In the User report the following conditions will exist&lt;br /&gt;
:- Category grademax = 70 (10 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 60 (30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 16.66% (20 / 60 * .5)&lt;br /&gt;
:- B weight = 8.33% (10 / 60 * .5)&lt;br /&gt;
:- C weight = 25% (30 / 60 * .5)&lt;br /&gt;
:- D weight = 66.66% (40 / 60) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 0%&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45777</id>
		<title>Natural weighting</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45777"/>
		<updated>2014-07-13T20:21:53Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* Rationale */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Natural Weighting&lt;br /&gt;
|state = Specification&lt;br /&gt;
|tracker = https://tracker.moodle.org/browse/MDL-43378&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=245442&lt;br /&gt;
|assignee = Moodle HQ&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=245442}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natural weighting is a modification to how grades are combined.&lt;br /&gt;
&lt;br /&gt;
When &#039;Sum of Grades&#039; aggregation is chosen (and natural weighting is active), there will be a weight column with form fields, looking like &amp;quot;Weighted mean&amp;quot; is in 2.7.  By default, the weight column shows the natural weights given to all categories and items based on gradebook structure.&lt;br /&gt;
&lt;br /&gt;
Weights can be overridden by modifying the values in the form fields.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Reset weights&amp;quot; button in each category resets the weights to their defaults.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rationale==&lt;br /&gt;
&lt;br /&gt;
;In grading, &#039;&#039;&#039;weight&#039;&#039;&#039; is the proportion of an item&#039;s value in relation to all the other items in its container (category or course). &lt;br /&gt;
;Value is most often represented as &#039;points&#039;. &lt;br /&gt;
;Every grade has a weight. &lt;br /&gt;
;There are three fundamental approaches to dealing with weighting in a gradebook&lt;br /&gt;
:- Simple (or natural) weighting. When accurate points for categories and course totals are maintained, both Sum of grades and Simple weighted mean of grades accomplish exactly the same thing.&lt;br /&gt;
:- Adjusted weighting. Users often want to adjust categories and even items to have a weight other than the natural weight, essentially ignoring the points entirely. An example would be, Quizzes=40%, Assignments=50%, Attendance=10%. &lt;br /&gt;
:- Mean of grades. If I have a category made up of five quizzes all worth different points and I want a category percentage to just tell the average (or mean) of all the quiz results&#039; percentage correct, I would choose this approach again, disregarding the points.&lt;br /&gt;
;Simplifying the understanding of weighting reduces the aggregation methodology down to &#039;either/ or&#039; &lt;br /&gt;
:- either &#039;leave weights as is -- natural&#039; &lt;br /&gt;
:- or &#039;adjust to suit my needs -- adjusted weights&#039;&lt;br /&gt;
&lt;br /&gt;
;This greatly simplifies the interface needed to present these options&lt;br /&gt;
:- They don&#039;t need to select an aggregation type&lt;br /&gt;
:- They don&#039;t need to know how each aggregation type performs&lt;br /&gt;
:- The &#039;&#039;&#039;actual&#039;&#039;&#039; weight of every item and category is &#039;&#039;&#039;always&#039;&#039;&#039; displayed to them. &lt;br /&gt;
:- If that&#039;s not the weight they, they adjust them.&lt;br /&gt;
;- Much easier for the common user to grasp.  &lt;br /&gt;
&lt;br /&gt;
This interface and calculations are expected to suit the needs of all except very edge cases (which can still be handled with formulas).  If it turns out that this is enough for everyone then we can potentially remove quite a lot of aggregation code from the gradebook at a later stage, improving speed and readability.&lt;br /&gt;
&lt;br /&gt;
How natural weights meets the requirements of the aggregation types:&lt;br /&gt;
;Sum of grades: Leave all weightings as is, no change necessary.&lt;br /&gt;
;Mean of grades: Set all weights equal to each other. Doesn&#039;t matter what the number is, as in legacy behavior Moodle will automatically adjust so the sum equals 100%. However, in this implementation the group wants to have a pop-up warning the user the weights don&#039;t add up to 100% and they will therefore be adjusted uniformly to equal 100%.&lt;br /&gt;
;Weighted mean of grades: Adjust weights as desired. No change from current behavior.&lt;br /&gt;
;Simple weighted mean of grades: Leave all weightings as is, no change necessary. Same as Sum of grades.&lt;br /&gt;
;Mean of grades (with extra credits): Extra credit has a natural weight that takes the total container (category/ course) weight above 100% (hence, &#039;extra&#039;). Extra credit is available at all times no matter what scheme of weighting is chosen.&lt;br /&gt;
;Highest : User would input the value &#039;1&#039; for &#039;Keep highest&#039; in the category&lt;br /&gt;
;Lowest : Not possible using natural weights, but it can be replaced by a calculation into a new item.&lt;br /&gt;
;Median / Mode of grades: Not possible using natural weights, but it&#039;s doubtful anyone uses these anyway so perhaps this can be deprecated entirely.&lt;br /&gt;
&lt;br /&gt;
==Implementation stages==&lt;br /&gt;
&lt;br /&gt;
To be safe, we plan to implement this in stages:&lt;br /&gt;
&lt;br /&gt;
STAGE 1) Implement natural weighting as part of the Sum of Grades aggregation type, with admin settings that allow them to disable all other aggregations if they choose. (Moodle 2.8)&lt;br /&gt;
&lt;br /&gt;
STAGE 2) Once people have been using this for a while, explore the possibility of removing other aggregation code or making them into optional plugins. (Moodle 3.0 perhaps)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Interfaces==&lt;br /&gt;
&lt;br /&gt;
=== Category editing ===&lt;br /&gt;
&lt;br /&gt;
Prototype from luther.edu:&lt;br /&gt;
[[Image:NaturalWeights.png]]&lt;br /&gt;
&lt;br /&gt;
In addition the weights should be editable form fields here, and there would be one button per category to &amp;quot;reset weights&amp;quot; back to a natural Sum of Grades.&lt;br /&gt;
&lt;br /&gt;
=== Admin settings ===&lt;br /&gt;
&lt;br /&gt;
New setting to &amp;quot;Force Natural Weighting&amp;quot; (on/off).   This would default to OFF on upgraded sites and ON for new sites.&lt;br /&gt;
&lt;br /&gt;
ON:  this will hide the aggregation menu and all new categories will default to &amp;quot;Sum of grades&amp;quot; and natural weights.  It will not affect existing gradebooks with other aggregations set (see upgrade script below for a conversion strategy).&lt;br /&gt;
&lt;br /&gt;
OFF: aggregation menu is shown, but Sum of Grades will still contain new natural weighting UI and logic.&lt;br /&gt;
&lt;br /&gt;
NOTE: I&#039;d really like to see a third option, &#039;Optional&#039; with the use case of admins wanting to introduce this new method to some teachers on a trial basis but not have it necessarily forced on all courses. We initially saw 2.9 being the point at which we would go down to two settings, &#039;On&#039; or &#039;Off&#039; with 3.0 full &#039;On&#039;&lt;br /&gt;
&lt;br /&gt;
==Upgrade script==&lt;br /&gt;
&lt;br /&gt;
If a site is switching to forced natural weights, they will probably want to upgrade all existing categories.&lt;br /&gt;
&lt;br /&gt;
This new optional upgrade script will examine all grade categories looking at aggregation methods.  It should report on what exists and allow the admin to perform an automated upgrade as follows:&lt;br /&gt;
&lt;br /&gt;
# If GRADE_AGGREGATE_WEIGHTED_MEAN then:&lt;br /&gt;
#* Store value of &#039;aggregationcoef&#039; fields to &#039;weight&#039; fields in grade_items&lt;br /&gt;
#* Set &#039;weightoverride&#039; field in grade_items&lt;br /&gt;
# If ... then:&lt;br /&gt;
#* &lt;br /&gt;
#* &lt;br /&gt;
&lt;br /&gt;
(We need exact strategies here for ALL aggregation types)&lt;br /&gt;
&lt;br /&gt;
==Database changes==&lt;br /&gt;
&lt;br /&gt;
;Add three fields to grade_items&lt;br /&gt;
# extracredit, tinyint, notnull, default: 0&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
# weightoverride, tinyint, notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
; Add one field to grade_grades&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
;This fixes the use of &#039;&#039;&#039;aggregationcoef&#039;&#039;&#039; representing both extra credit and weight in 2.7.&lt;br /&gt;
&lt;br /&gt;
== Unit test changes==&lt;br /&gt;
&lt;br /&gt;
==Functional test changes ==&lt;br /&gt;
&lt;br /&gt;
==Logic changes==&lt;br /&gt;
&lt;br /&gt;
Sum of Grades aggregation must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; hidden items and to &#039;&#039;&#039;exclude&#039;&#039;&#039; non-graded items&lt;br /&gt;
&lt;br /&gt;
Determination of range (in Grader and User report) and Max grade (in Setup screen) must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; extra credit items&lt;br /&gt;
&lt;br /&gt;
Natural weights must be saved and applied to the form.&lt;br /&gt;
&lt;br /&gt;
Natural weights are calculated for the Setup screen, the Grader report, and the User report. The calculation for the User report is different than that used for the Setup screen and Grader report.&lt;br /&gt;
&lt;br /&gt;
Weights should be stored in grade_items for the Setup screen and the Grader report and in the grade_grades table for the User report.&lt;br /&gt;
&lt;br /&gt;
==The Math==&lt;br /&gt;
The sum of weights for all containers (categories and course) add up to 100% except in the case where extra credit is used in which case 100% is exceeded by the weight of the extra credit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup screen and Grader report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# ungraded items&#039; points (if aggregateonlygraded is on))&lt;br /&gt;
# any items dropped through container&#039;s drop lowest or keep highest conditions&lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
A multiplicator is used when some natural weights have been manually adjusted = sum(all adjusted weights) / 100&lt;br /&gt;
&lt;br /&gt;
The natural weight for each item contained in a category or course (including extra credit items) is &#039;item maximum points&#039; / &#039;total category or course points&#039; (in which the item is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
The natural weight for each category (including extra credit categories) is &#039;total category points&#039; / &#039;total category or course points&#039; (in which the category is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
==Calculation examples==&lt;br /&gt;
&lt;br /&gt;
===Example 1 simple sum===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you just want their scores added together (out of 50).&lt;br /&gt;
:No action is required of the user regarding weights.&lt;br /&gt;
&lt;br /&gt;
===Example 2 simple mean===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you want the final grade to be the simple mean percentage of all these scores.&lt;br /&gt;
:User should adjust all weights to be the same, i.e., 25%&lt;br /&gt;
&lt;br /&gt;
===Example 3 typical weighted categories===&lt;br /&gt;
User has four categories whose category totals are not in relation to each other as the user desires. They want the &#039;Quizzes&#039; to be worth 20%, the &#039;Exams&#039; to be worth 50% (with the midterm worth 20% and the final worth 30%), &#039;Papers&#039; worth 20%, and &#039;Attendance&#039; worth 10%&lt;br /&gt;
: User would edit the weights and &lt;br /&gt;
::- place the value 20 on the Quizzes category line&lt;br /&gt;
::- place the value 50 on the Exams category line&lt;br /&gt;
::- place the value 20 on the midterm exam item line&lt;br /&gt;
::- place the value 30 on the final exam item line&lt;br /&gt;
::- place the value 20 on the Papers category line&lt;br /&gt;
::- place the value 20 on the Attendance category (or item) line&lt;br /&gt;
: Then the user would save their weight settings&lt;br /&gt;
&lt;br /&gt;
===Example 4 (complex)===&lt;br /&gt;
&lt;br /&gt;
Category 1 contains seven items&lt;br /&gt;
# Item A = 20 points&lt;br /&gt;
# Item B = 10 points is extra credit&lt;br /&gt;
# Item C = 30 points&lt;br /&gt;
# Item D = 40 points is extra credit&lt;br /&gt;
# Item E = 50 points is hidden&lt;br /&gt;
# Item F = 50 points is ungraded&lt;br /&gt;
# Item G = 10 points whose natural weight has been adjusted to 50% of the category grade&lt;br /&gt;
&lt;br /&gt;
; In the Setup screen and the Grader report the following conditions will exist&lt;br /&gt;
:- Category grademax = 120 (10 + 50 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 110 (50 + 30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 8.33% (20 / 120 * .5)&lt;br /&gt;
:- B weight = 4.16% (10 / 120 * .5)&lt;br /&gt;
:- C weight = 12.5% (30 / 120 * .5)&lt;br /&gt;
:- D weight = 33.33% (40 / 120) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 25% (50 / 120 * .5)&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
; In the User report the following conditions will exist&lt;br /&gt;
:- Category grademax = 70 (10 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 60 (30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 16.66% (20 / 60 * .5)&lt;br /&gt;
:- B weight = 8.33% (10 / 60 * .5)&lt;br /&gt;
:- C weight = 25% (30 / 60 * .5)&lt;br /&gt;
:- D weight = 66.66% (40 / 60) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 0%&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45776</id>
		<title>Natural weighting</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45776"/>
		<updated>2014-07-13T20:17:01Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* Rationale */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Natural Weighting&lt;br /&gt;
|state = Specification&lt;br /&gt;
|tracker = https://tracker.moodle.org/browse/MDL-43378&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=245442&lt;br /&gt;
|assignee = Moodle HQ&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=245442}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natural weighting is a modification to how grades are combined.&lt;br /&gt;
&lt;br /&gt;
When &#039;Sum of Grades&#039; aggregation is chosen (and natural weighting is active), there will be a weight column with form fields, looking like &amp;quot;Weighted mean&amp;quot; is in 2.7.  By default, the weight column shows the natural weights given to all categories and items based on gradebook structure.&lt;br /&gt;
&lt;br /&gt;
Weights can be overridden by modifying the values in the form fields.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Reset weights&amp;quot; button in each category resets the weights to their defaults.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rationale==&lt;br /&gt;
&lt;br /&gt;
;In grading, &#039;&#039;&#039;weight&#039;&#039;&#039; is the proportion of an item&#039;s value in relation to all the other items in its container (category or course). Value is most often represented as &#039;points&#039;. &lt;br /&gt;
;Every grade has a weight. &lt;br /&gt;
;There are three fundamental approaches to dealing with weighting in a gradebook&lt;br /&gt;
:- Simple (or natural) weighting. When accurate points for categories and course totals are maintained, both Sum of grades and Simple weighted mean of grades accomplish exactly the same thing.&lt;br /&gt;
:- Adjusted weighting. Users often want to adjust categories and even items to have a weight other than the natural weight, essentially ignoring the points entirely. An example would be, Quizzes=40%, Assignments=50%, Attendance=10%. &lt;br /&gt;
:- Mean of grades. If I have a category made up of five quizzes all worth different points and I want a category percentage to just tell the average (or mean) of all the quiz results&#039; percentage correct, I would choose this approach again, disregarding the points.&lt;br /&gt;
;Simplifying the understanding of weighting reduces the aggregation methodology down to &#039;either/ or&#039; &lt;br /&gt;
:- either &#039;leave weights as is -- natural&#039; &lt;br /&gt;
:- or &#039;adjust to suit my needs -- adjusted weights&#039;&lt;br /&gt;
&lt;br /&gt;
;This greatly simplifies the interface needed to present these options&lt;br /&gt;
:- They don&#039;t need to know special terminology generally reserved for Mathematics and Computer Science choosing between three or four or five or more aggregation methods (they don&#039;t even choose an aggregation method).&lt;br /&gt;
:- The &#039;&#039;&#039;actual&#039;&#039;&#039; of an item or category is &#039;&#039;&#039;always&#039;&#039;&#039; displayed to them. &lt;br /&gt;
:- If that&#039;s not the weight they, they adjust them.&lt;br /&gt;
;- much easier for the common user to grasp.  &lt;br /&gt;
&lt;br /&gt;
This interface and calculations are expected to suit the needs of all except very edge cases (which can still be handled with formulas).  If it turns out that this is enough for everyone then we can potentially remove quite a lot of aggregation code from the gradebook at a later stage, improving speed and readability.&lt;br /&gt;
&lt;br /&gt;
How natural weights meets the requirements of the aggregation types:&lt;br /&gt;
;Sum of grades: Leave all weightings as is, no change necessary.&lt;br /&gt;
;Mean of grades: Set all weights equal to each other. Doesn&#039;t matter what the number is, as in legacy behavior Moodle will automatically adjust so the sum equals 100%. However, in this implementation the group wants to have a pop-up warning the user the weights don&#039;t add up to 100% and they will therefore be adjusted uniformly to equal 100%.&lt;br /&gt;
;Weighted mean of grades: Adjust weights as desired. No change from current behavior.&lt;br /&gt;
;Simple weighted mean of grades: Leave all weightings as is, no change necessary. Same as Sum of grades.&lt;br /&gt;
;Mean of grades (with extra credits): Extra credit has a natural weight that takes the total container (category/ course) weight above 100% (hence, &#039;extra&#039;). Extra credit is available at all times no matter what scheme of weighting is chosen.&lt;br /&gt;
;Highest : User would input the value &#039;1&#039; for &#039;Keep highest&#039; in the category&lt;br /&gt;
;Lowest : Not possible using natural weights, but it can be replaced by a calculation into a new item.&lt;br /&gt;
;Median / Mode of grades: Not possible using natural weights, but it&#039;s doubtful anyone uses these anyway so perhaps this can be deprecated entirely.&lt;br /&gt;
&lt;br /&gt;
==Implementation stages==&lt;br /&gt;
&lt;br /&gt;
To be safe, we plan to implement this in stages:&lt;br /&gt;
&lt;br /&gt;
STAGE 1) Implement natural weighting as part of the Sum of Grades aggregation type, with admin settings that allow them to disable all other aggregations if they choose. (Moodle 2.8)&lt;br /&gt;
&lt;br /&gt;
STAGE 2) Once people have been using this for a while, explore the possibility of removing other aggregation code or making them into optional plugins. (Moodle 3.0 perhaps)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Interfaces==&lt;br /&gt;
&lt;br /&gt;
=== Category editing ===&lt;br /&gt;
&lt;br /&gt;
Prototype from luther.edu:&lt;br /&gt;
[[Image:NaturalWeights.png]]&lt;br /&gt;
&lt;br /&gt;
In addition the weights should be editable form fields here, and there would be one button per category to &amp;quot;reset weights&amp;quot; back to a natural Sum of Grades.&lt;br /&gt;
&lt;br /&gt;
=== Admin settings ===&lt;br /&gt;
&lt;br /&gt;
New setting to &amp;quot;Force Natural Weighting&amp;quot; (on/off).   This would default to OFF on upgraded sites and ON for new sites.&lt;br /&gt;
&lt;br /&gt;
ON:  this will hide the aggregation menu and all new categories will default to &amp;quot;Sum of grades&amp;quot; and natural weights.  It will not affect existing gradebooks with other aggregations set (see upgrade script below for a conversion strategy).&lt;br /&gt;
&lt;br /&gt;
OFF: aggregation menu is shown, but Sum of Grades will still contain new natural weighting UI and logic.&lt;br /&gt;
&lt;br /&gt;
NOTE: I&#039;d really like to see a third option, &#039;Optional&#039; with the use case of admins wanting to introduce this new method to some teachers on a trial basis but not have it necessarily forced on all courses. We initially saw 2.9 being the point at which we would go down to two settings, &#039;On&#039; or &#039;Off&#039; with 3.0 full &#039;On&#039;&lt;br /&gt;
&lt;br /&gt;
==Upgrade script==&lt;br /&gt;
&lt;br /&gt;
If a site is switching to forced natural weights, they will probably want to upgrade all existing categories.&lt;br /&gt;
&lt;br /&gt;
This new optional upgrade script will examine all grade categories looking at aggregation methods.  It should report on what exists and allow the admin to perform an automated upgrade as follows:&lt;br /&gt;
&lt;br /&gt;
# If GRADE_AGGREGATE_WEIGHTED_MEAN then:&lt;br /&gt;
#* Store value of &#039;aggregationcoef&#039; fields to &#039;weight&#039; fields in grade_items&lt;br /&gt;
#* Set &#039;weightoverride&#039; field in grade_items&lt;br /&gt;
# If ... then:&lt;br /&gt;
#* &lt;br /&gt;
#* &lt;br /&gt;
&lt;br /&gt;
(We need exact strategies here for ALL aggregation types)&lt;br /&gt;
&lt;br /&gt;
==Database changes==&lt;br /&gt;
&lt;br /&gt;
;Add three fields to grade_items&lt;br /&gt;
# extracredit, tinyint, notnull, default: 0&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
# weightoverride, tinyint, notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
; Add one field to grade_grades&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
;This fixes the use of &#039;&#039;&#039;aggregationcoef&#039;&#039;&#039; representing both extra credit and weight in 2.7.&lt;br /&gt;
&lt;br /&gt;
== Unit test changes==&lt;br /&gt;
&lt;br /&gt;
==Functional test changes ==&lt;br /&gt;
&lt;br /&gt;
==Logic changes==&lt;br /&gt;
&lt;br /&gt;
Sum of Grades aggregation must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; hidden items and to &#039;&#039;&#039;exclude&#039;&#039;&#039; non-graded items&lt;br /&gt;
&lt;br /&gt;
Determination of range (in Grader and User report) and Max grade (in Setup screen) must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; extra credit items&lt;br /&gt;
&lt;br /&gt;
Natural weights must be saved and applied to the form.&lt;br /&gt;
&lt;br /&gt;
Natural weights are calculated for the Setup screen, the Grader report, and the User report. The calculation for the User report is different than that used for the Setup screen and Grader report.&lt;br /&gt;
&lt;br /&gt;
Weights should be stored in grade_items for the Setup screen and the Grader report and in the grade_grades table for the User report.&lt;br /&gt;
&lt;br /&gt;
==The Math==&lt;br /&gt;
The sum of weights for all containers (categories and course) add up to 100% except in the case where extra credit is used in which case 100% is exceeded by the weight of the extra credit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup screen and Grader report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# ungraded items&#039; points (if aggregateonlygraded is on))&lt;br /&gt;
# any items dropped through container&#039;s drop lowest or keep highest conditions&lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
A multiplicator is used when some natural weights have been manually adjusted = sum(all adjusted weights) / 100&lt;br /&gt;
&lt;br /&gt;
The natural weight for each item contained in a category or course (including extra credit items) is &#039;item maximum points&#039; / &#039;total category or course points&#039; (in which the item is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
The natural weight for each category (including extra credit categories) is &#039;total category points&#039; / &#039;total category or course points&#039; (in which the category is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
==Calculation examples==&lt;br /&gt;
&lt;br /&gt;
===Example 1 simple sum===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you just want their scores added together (out of 50).&lt;br /&gt;
:No action is required of the user regarding weights.&lt;br /&gt;
&lt;br /&gt;
===Example 2 simple mean===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you want the final grade to be the simple mean percentage of all these scores.&lt;br /&gt;
:User should adjust all weights to be the same, i.e., 25%&lt;br /&gt;
&lt;br /&gt;
===Example 3 typical weighted categories===&lt;br /&gt;
User has four categories whose category totals are not in relation to each other as the user desires. They want the &#039;Quizzes&#039; to be worth 20%, the &#039;Exams&#039; to be worth 50% (with the midterm worth 20% and the final worth 30%), &#039;Papers&#039; worth 20%, and &#039;Attendance&#039; worth 10%&lt;br /&gt;
: User would edit the weights and &lt;br /&gt;
::- place the value 20 on the Quizzes category line&lt;br /&gt;
::- place the value 50 on the Exams category line&lt;br /&gt;
::- place the value 20 on the midterm exam item line&lt;br /&gt;
::- place the value 30 on the final exam item line&lt;br /&gt;
::- place the value 20 on the Papers category line&lt;br /&gt;
::- place the value 20 on the Attendance category (or item) line&lt;br /&gt;
: Then the user would save their weight settings&lt;br /&gt;
&lt;br /&gt;
===Example 4 (complex)===&lt;br /&gt;
&lt;br /&gt;
Category 1 contains seven items&lt;br /&gt;
# Item A = 20 points&lt;br /&gt;
# Item B = 10 points is extra credit&lt;br /&gt;
# Item C = 30 points&lt;br /&gt;
# Item D = 40 points is extra credit&lt;br /&gt;
# Item E = 50 points is hidden&lt;br /&gt;
# Item F = 50 points is ungraded&lt;br /&gt;
# Item G = 10 points whose natural weight has been adjusted to 50% of the category grade&lt;br /&gt;
&lt;br /&gt;
; In the Setup screen and the Grader report the following conditions will exist&lt;br /&gt;
:- Category grademax = 120 (10 + 50 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 110 (50 + 30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 8.33% (20 / 120 * .5)&lt;br /&gt;
:- B weight = 4.16% (10 / 120 * .5)&lt;br /&gt;
:- C weight = 12.5% (30 / 120 * .5)&lt;br /&gt;
:- D weight = 33.33% (40 / 120) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 25% (50 / 120 * .5)&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
; In the User report the following conditions will exist&lt;br /&gt;
:- Category grademax = 70 (10 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 60 (30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 16.66% (20 / 60 * .5)&lt;br /&gt;
:- B weight = 8.33% (10 / 60 * .5)&lt;br /&gt;
:- C weight = 25% (30 / 60 * .5)&lt;br /&gt;
:- D weight = 66.66% (40 / 60) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 0%&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45775</id>
		<title>Natural weighting</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45775"/>
		<updated>2014-07-13T20:14:37Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* Rationale */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Natural Weighting&lt;br /&gt;
|state = Specification&lt;br /&gt;
|tracker = https://tracker.moodle.org/browse/MDL-43378&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=245442&lt;br /&gt;
|assignee = Moodle HQ&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=245442}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natural weighting is a modification to how grades are combined.&lt;br /&gt;
&lt;br /&gt;
When &#039;Sum of Grades&#039; aggregation is chosen (and natural weighting is active), there will be a weight column with form fields, looking like &amp;quot;Weighted mean&amp;quot; is in 2.7.  By default, the weight column shows the natural weights given to all categories and items based on gradebook structure.&lt;br /&gt;
&lt;br /&gt;
Weights can be overridden by modifying the values in the form fields.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Reset weights&amp;quot; button in each category resets the weights to their defaults.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rationale==&lt;br /&gt;
&lt;br /&gt;
;In grading, &#039;&#039;&#039;weight&#039;&#039;&#039; is the proportion of an item&#039;s value in relation to all the other items in its container (category or course). Value is most often represented as &#039;points&#039;. &lt;br /&gt;
;Every grade has a weight. &lt;br /&gt;
;There are three fundamental approaches to dealing with weighting in a gradebook&lt;br /&gt;
:- Simple (or natural) weighting. When accurate points for categories and course totals are maintained, both Sum of grades and Simple weighted mean of grades accomplish exactly the same thing.&lt;br /&gt;
:- Adjusted weighting. Users often want to adjust categories and even items to have a weight other than the natural weight, essentially ignoring the points entirely. An example would be, Quizzes=40%, Assignments=50%, Attendance=10%. &lt;br /&gt;
:- Mean of grades. If I have a category made up of five quizzes all worth different points and I want a category percentage to just tell the average (or mean) of all the quiz results&#039; percentage correct, I would choose this approach again, disregarding the points.&lt;br /&gt;
;Simplifying the understanding of weighting reduces the aggregation methodology down to &#039;either/ or&#039; &lt;br /&gt;
:- either &#039;leave weights as is -- natural&#039; &lt;br /&gt;
:- or &#039;adjust to suit my needs -- adjusted weights&#039;&lt;br /&gt;
&lt;br /&gt;
The interface needed to present these options can be much easier for the common user to grasp. They don&#039;t need to know special terminology generally reserved for Mathematics and Computer Science choosing between three or four or five or more aggregation methods (they don&#039;t even choose an aggregation method). The &#039;&#039;&#039;actual&#039;&#039;&#039; of an item or category is &#039;&#039;&#039;always&#039;&#039;&#039; displayed to them. If that&#039;s not the weight they, they adjust them.&lt;br /&gt;
&lt;br /&gt;
This interface and calculations are expected to suit the needs of all except very edge cases (which can still be handled with formulas).  If it turns out that this is enough for everyone then we can potentially remove quite a lot of aggregation code from the gradebook at a later stage, improving speed and readability.&lt;br /&gt;
&lt;br /&gt;
How natural weights meets the requirements of the aggregation types:&lt;br /&gt;
;Sum of grades: Leave all weightings as is, no change necessary.&lt;br /&gt;
;Mean of grades: Set all weights equal to each other. Doesn&#039;t matter what the number is, as in legacy behavior Moodle will automatically adjust so the sum equals 100%. However, in this implementation the group wants to have a pop-up warning the user the weights don&#039;t add up to 100% and they will therefore be adjusted uniformly to equal 100%.&lt;br /&gt;
;Weighted mean of grades: Adjust weights as desired. No change from current behavior.&lt;br /&gt;
;Simple weighted mean of grades: Leave all weightings as is, no change necessary. Same as Sum of grades.&lt;br /&gt;
;Mean of grades (with extra credits): Extra credit has a natural weight that takes the total container (category/ course) weight above 100% (hence, &#039;extra&#039;). Extra credit is available at all times no matter what scheme of weighting is chosen.&lt;br /&gt;
;Highest : User would input the value &#039;1&#039; for &#039;Keep highest&#039; in the category&lt;br /&gt;
;Lowest : Not possible using natural weights, but it can be replaced by a calculation into a new item.&lt;br /&gt;
;Median / Mode of grades: Not possible using natural weights, but it&#039;s doubtful anyone uses these anyway so perhaps this can be deprecated entirely.&lt;br /&gt;
&lt;br /&gt;
==Implementation stages==&lt;br /&gt;
&lt;br /&gt;
To be safe, we plan to implement this in stages:&lt;br /&gt;
&lt;br /&gt;
STAGE 1) Implement natural weighting as part of the Sum of Grades aggregation type, with admin settings that allow them to disable all other aggregations if they choose. (Moodle 2.8)&lt;br /&gt;
&lt;br /&gt;
STAGE 2) Once people have been using this for a while, explore the possibility of removing other aggregation code or making them into optional plugins. (Moodle 3.0 perhaps)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Interfaces==&lt;br /&gt;
&lt;br /&gt;
=== Category editing ===&lt;br /&gt;
&lt;br /&gt;
Prototype from luther.edu:&lt;br /&gt;
[[Image:NaturalWeights.png]]&lt;br /&gt;
&lt;br /&gt;
In addition the weights should be editable form fields here, and there would be one button per category to &amp;quot;reset weights&amp;quot; back to a natural Sum of Grades.&lt;br /&gt;
&lt;br /&gt;
=== Admin settings ===&lt;br /&gt;
&lt;br /&gt;
New setting to &amp;quot;Force Natural Weighting&amp;quot; (on/off).   This would default to OFF on upgraded sites and ON for new sites.&lt;br /&gt;
&lt;br /&gt;
ON:  this will hide the aggregation menu and all new categories will default to &amp;quot;Sum of grades&amp;quot; and natural weights.  It will not affect existing gradebooks with other aggregations set (see upgrade script below for a conversion strategy).&lt;br /&gt;
&lt;br /&gt;
OFF: aggregation menu is shown, but Sum of Grades will still contain new natural weighting UI and logic.&lt;br /&gt;
&lt;br /&gt;
NOTE: I&#039;d really like to see a third option, &#039;Optional&#039; with the use case of admins wanting to introduce this new method to some teachers on a trial basis but not have it necessarily forced on all courses. We initially saw 2.9 being the point at which we would go down to two settings, &#039;On&#039; or &#039;Off&#039; with 3.0 full &#039;On&#039;&lt;br /&gt;
&lt;br /&gt;
==Upgrade script==&lt;br /&gt;
&lt;br /&gt;
If a site is switching to forced natural weights, they will probably want to upgrade all existing categories.&lt;br /&gt;
&lt;br /&gt;
This new optional upgrade script will examine all grade categories looking at aggregation methods.  It should report on what exists and allow the admin to perform an automated upgrade as follows:&lt;br /&gt;
&lt;br /&gt;
# If GRADE_AGGREGATE_WEIGHTED_MEAN then:&lt;br /&gt;
#* Store value of &#039;aggregationcoef&#039; fields to &#039;weight&#039; fields in grade_items&lt;br /&gt;
#* Set &#039;weightoverride&#039; field in grade_items&lt;br /&gt;
# If ... then:&lt;br /&gt;
#* &lt;br /&gt;
#* &lt;br /&gt;
&lt;br /&gt;
(We need exact strategies here for ALL aggregation types)&lt;br /&gt;
&lt;br /&gt;
==Database changes==&lt;br /&gt;
&lt;br /&gt;
;Add three fields to grade_items&lt;br /&gt;
# extracredit, tinyint, notnull, default: 0&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
# weightoverride, tinyint, notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
; Add one field to grade_grades&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
;This fixes the use of &#039;&#039;&#039;aggregationcoef&#039;&#039;&#039; representing both extra credit and weight in 2.7.&lt;br /&gt;
&lt;br /&gt;
== Unit test changes==&lt;br /&gt;
&lt;br /&gt;
==Functional test changes ==&lt;br /&gt;
&lt;br /&gt;
==Logic changes==&lt;br /&gt;
&lt;br /&gt;
Sum of Grades aggregation must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; hidden items and to &#039;&#039;&#039;exclude&#039;&#039;&#039; non-graded items&lt;br /&gt;
&lt;br /&gt;
Determination of range (in Grader and User report) and Max grade (in Setup screen) must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; extra credit items&lt;br /&gt;
&lt;br /&gt;
Natural weights must be saved and applied to the form.&lt;br /&gt;
&lt;br /&gt;
Natural weights are calculated for the Setup screen, the Grader report, and the User report. The calculation for the User report is different than that used for the Setup screen and Grader report.&lt;br /&gt;
&lt;br /&gt;
Weights should be stored in grade_items for the Setup screen and the Grader report and in the grade_grades table for the User report.&lt;br /&gt;
&lt;br /&gt;
==The Math==&lt;br /&gt;
The sum of weights for all containers (categories and course) add up to 100% except in the case where extra credit is used in which case 100% is exceeded by the weight of the extra credit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup screen and Grader report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# ungraded items&#039; points (if aggregateonlygraded is on))&lt;br /&gt;
# any items dropped through container&#039;s drop lowest or keep highest conditions&lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
A multiplicator is used when some natural weights have been manually adjusted = sum(all adjusted weights) / 100&lt;br /&gt;
&lt;br /&gt;
The natural weight for each item contained in a category or course (including extra credit items) is &#039;item maximum points&#039; / &#039;total category or course points&#039; (in which the item is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
The natural weight for each category (including extra credit categories) is &#039;total category points&#039; / &#039;total category or course points&#039; (in which the category is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
==Calculation examples==&lt;br /&gt;
&lt;br /&gt;
===Example 1 simple sum===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you just want their scores added together (out of 50).&lt;br /&gt;
:No action is required of the user regarding weights.&lt;br /&gt;
&lt;br /&gt;
===Example 2 simple mean===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you want the final grade to be the simple mean percentage of all these scores.&lt;br /&gt;
:User should adjust all weights to be the same, i.e., 25%&lt;br /&gt;
&lt;br /&gt;
===Example 3 typical weighted categories===&lt;br /&gt;
User has four categories whose category totals are not in relation to each other as the user desires. They want the &#039;Quizzes&#039; to be worth 20%, the &#039;Exams&#039; to be worth 50% (with the midterm worth 20% and the final worth 30%), &#039;Papers&#039; worth 20%, and &#039;Attendance&#039; worth 10%&lt;br /&gt;
: User would edit the weights and &lt;br /&gt;
::- place the value 20 on the Quizzes category line&lt;br /&gt;
::- place the value 50 on the Exams category line&lt;br /&gt;
::- place the value 20 on the midterm exam item line&lt;br /&gt;
::- place the value 30 on the final exam item line&lt;br /&gt;
::- place the value 20 on the Papers category line&lt;br /&gt;
::- place the value 20 on the Attendance category (or item) line&lt;br /&gt;
: Then the user would save their weight settings&lt;br /&gt;
&lt;br /&gt;
===Example 4 (complex)===&lt;br /&gt;
&lt;br /&gt;
Category 1 contains seven items&lt;br /&gt;
# Item A = 20 points&lt;br /&gt;
# Item B = 10 points is extra credit&lt;br /&gt;
# Item C = 30 points&lt;br /&gt;
# Item D = 40 points is extra credit&lt;br /&gt;
# Item E = 50 points is hidden&lt;br /&gt;
# Item F = 50 points is ungraded&lt;br /&gt;
# Item G = 10 points whose natural weight has been adjusted to 50% of the category grade&lt;br /&gt;
&lt;br /&gt;
; In the Setup screen and the Grader report the following conditions will exist&lt;br /&gt;
:- Category grademax = 120 (10 + 50 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 110 (50 + 30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 8.33% (20 / 120 * .5)&lt;br /&gt;
:- B weight = 4.16% (10 / 120 * .5)&lt;br /&gt;
:- C weight = 12.5% (30 / 120 * .5)&lt;br /&gt;
:- D weight = 33.33% (40 / 120) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 25% (50 / 120 * .5)&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
; In the User report the following conditions will exist&lt;br /&gt;
:- Category grademax = 70 (10 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 60 (30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 16.66% (20 / 60 * .5)&lt;br /&gt;
:- B weight = 8.33% (10 / 60 * .5)&lt;br /&gt;
:- C weight = 25% (30 / 60 * .5)&lt;br /&gt;
:- D weight = 66.66% (40 / 60) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 0%&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45774</id>
		<title>Natural weighting</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45774"/>
		<updated>2014-07-13T20:13:45Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* Rationale */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Natural Weighting&lt;br /&gt;
|state = Specification&lt;br /&gt;
|tracker = https://tracker.moodle.org/browse/MDL-43378&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=245442&lt;br /&gt;
|assignee = Moodle HQ&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=245442}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natural weighting is a modification to how grades are combined.&lt;br /&gt;
&lt;br /&gt;
When &#039;Sum of Grades&#039; aggregation is chosen (and natural weighting is active), there will be a weight column with form fields, looking like &amp;quot;Weighted mean&amp;quot; is in 2.7.  By default, the weight column shows the natural weights given to all categories and items based on gradebook structure.&lt;br /&gt;
&lt;br /&gt;
Weights can be overridden by modifying the values in the form fields.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Reset weights&amp;quot; button in each category resets the weights to their defaults.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rationale==&lt;br /&gt;
&lt;br /&gt;
;In grading, &#039;&#039;&#039;weight&#039;&#039;&#039; is the proportion of an item&#039;s value in relation to all the other items in its container (category or course). Value is most often represented as &#039;points&#039;. &lt;br /&gt;
;Every grade has a weight. &lt;br /&gt;
;There are three fundamental approaches to dealing with weighting in a gradebook&lt;br /&gt;
:- Simple (or natural) weighting. When accurate points for categories and course totals are maintained, both Sum of grades and Simple weighted mean of grades accomplish exactly the same thing.&lt;br /&gt;
:- Adjusted weighting. Users often want to adjust categories and even items to have a weight other than the natural weight, essentially ignoring the points entirely. An example would be, Quizzes=40%, Assignments=50%, Attendance=10%. &lt;br /&gt;
:- Mean of grades. If I have a category made up of five quizzes all worth different points and I want a category percentage to just tell the average (or mean) of all the quiz results&#039; percentage correct, I would choose this approach again, disregarding the points.&lt;br /&gt;
&lt;br /&gt;
Simplifying the understanding of weighting reduces the aggregation methodology down to &#039;either/ or&#039; &lt;br /&gt;
:- either &#039;leave weights as is -- natural&#039; &lt;br /&gt;
:- or &#039;adjust to suit my needs -- adjusted weights&#039;&lt;br /&gt;
&lt;br /&gt;
The interface needed to present these options can be much easier for the common user to grasp. They don&#039;t need to know special terminology generally reserved for Mathematics and Computer Science choosing between three or four or five or more aggregation methods (they don&#039;t even choose an aggregation method). The &#039;&#039;&#039;actual&#039;&#039;&#039; of an item or category is &#039;&#039;&#039;always&#039;&#039;&#039; displayed to them. If that&#039;s not the weight they, they adjust them.&lt;br /&gt;
&lt;br /&gt;
This interface and calculations are expected to suit the needs of all except very edge cases (which can still be handled with formulas).  If it turns out that this is enough for everyone then we can potentially remove quite a lot of aggregation code from the gradebook at a later stage, improving speed and readability.&lt;br /&gt;
&lt;br /&gt;
How natural weights meets the requirements of the aggregation types:&lt;br /&gt;
;Sum of grades: Leave all weightings as is, no change necessary.&lt;br /&gt;
;Mean of grades: Set all weights equal to each other. Doesn&#039;t matter what the number is, as in legacy behavior Moodle will automatically adjust so the sum equals 100%. However, in this implementation the group wants to have a pop-up warning the user the weights don&#039;t add up to 100% and they will therefore be adjusted uniformly to equal 100%.&lt;br /&gt;
;Weighted mean of grades: Adjust weights as desired. No change from current behavior.&lt;br /&gt;
;Simple weighted mean of grades: Leave all weightings as is, no change necessary. Same as Sum of grades.&lt;br /&gt;
;Mean of grades (with extra credits): Extra credit has a natural weight that takes the total container (category/ course) weight above 100% (hence, &#039;extra&#039;). Extra credit is available at all times no matter what scheme of weighting is chosen.&lt;br /&gt;
;Highest : User would input the value &#039;1&#039; for &#039;Keep highest&#039; in the category&lt;br /&gt;
;Lowest : Not possible using natural weights, but it can be replaced by a calculation into a new item.&lt;br /&gt;
;Median / Mode of grades: Not possible using natural weights, but it&#039;s doubtful anyone uses these anyway so perhaps this can be deprecated entirely.&lt;br /&gt;
&lt;br /&gt;
==Implementation stages==&lt;br /&gt;
&lt;br /&gt;
To be safe, we plan to implement this in stages:&lt;br /&gt;
&lt;br /&gt;
STAGE 1) Implement natural weighting as part of the Sum of Grades aggregation type, with admin settings that allow them to disable all other aggregations if they choose. (Moodle 2.8)&lt;br /&gt;
&lt;br /&gt;
STAGE 2) Once people have been using this for a while, explore the possibility of removing other aggregation code or making them into optional plugins. (Moodle 3.0 perhaps)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Interfaces==&lt;br /&gt;
&lt;br /&gt;
=== Category editing ===&lt;br /&gt;
&lt;br /&gt;
Prototype from luther.edu:&lt;br /&gt;
[[Image:NaturalWeights.png]]&lt;br /&gt;
&lt;br /&gt;
In addition the weights should be editable form fields here, and there would be one button per category to &amp;quot;reset weights&amp;quot; back to a natural Sum of Grades.&lt;br /&gt;
&lt;br /&gt;
=== Admin settings ===&lt;br /&gt;
&lt;br /&gt;
New setting to &amp;quot;Force Natural Weighting&amp;quot; (on/off).   This would default to OFF on upgraded sites and ON for new sites.&lt;br /&gt;
&lt;br /&gt;
ON:  this will hide the aggregation menu and all new categories will default to &amp;quot;Sum of grades&amp;quot; and natural weights.  It will not affect existing gradebooks with other aggregations set (see upgrade script below for a conversion strategy).&lt;br /&gt;
&lt;br /&gt;
OFF: aggregation menu is shown, but Sum of Grades will still contain new natural weighting UI and logic.&lt;br /&gt;
&lt;br /&gt;
NOTE: I&#039;d really like to see a third option, &#039;Optional&#039; with the use case of admins wanting to introduce this new method to some teachers on a trial basis but not have it necessarily forced on all courses. We initially saw 2.9 being the point at which we would go down to two settings, &#039;On&#039; or &#039;Off&#039; with 3.0 full &#039;On&#039;&lt;br /&gt;
&lt;br /&gt;
==Upgrade script==&lt;br /&gt;
&lt;br /&gt;
If a site is switching to forced natural weights, they will probably want to upgrade all existing categories.&lt;br /&gt;
&lt;br /&gt;
This new optional upgrade script will examine all grade categories looking at aggregation methods.  It should report on what exists and allow the admin to perform an automated upgrade as follows:&lt;br /&gt;
&lt;br /&gt;
# If GRADE_AGGREGATE_WEIGHTED_MEAN then:&lt;br /&gt;
#* Store value of &#039;aggregationcoef&#039; fields to &#039;weight&#039; fields in grade_items&lt;br /&gt;
#* Set &#039;weightoverride&#039; field in grade_items&lt;br /&gt;
# If ... then:&lt;br /&gt;
#* &lt;br /&gt;
#* &lt;br /&gt;
&lt;br /&gt;
(We need exact strategies here for ALL aggregation types)&lt;br /&gt;
&lt;br /&gt;
==Database changes==&lt;br /&gt;
&lt;br /&gt;
;Add three fields to grade_items&lt;br /&gt;
# extracredit, tinyint, notnull, default: 0&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
# weightoverride, tinyint, notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
; Add one field to grade_grades&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
;This fixes the use of &#039;&#039;&#039;aggregationcoef&#039;&#039;&#039; representing both extra credit and weight in 2.7.&lt;br /&gt;
&lt;br /&gt;
== Unit test changes==&lt;br /&gt;
&lt;br /&gt;
==Functional test changes ==&lt;br /&gt;
&lt;br /&gt;
==Logic changes==&lt;br /&gt;
&lt;br /&gt;
Sum of Grades aggregation must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; hidden items and to &#039;&#039;&#039;exclude&#039;&#039;&#039; non-graded items&lt;br /&gt;
&lt;br /&gt;
Determination of range (in Grader and User report) and Max grade (in Setup screen) must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; extra credit items&lt;br /&gt;
&lt;br /&gt;
Natural weights must be saved and applied to the form.&lt;br /&gt;
&lt;br /&gt;
Natural weights are calculated for the Setup screen, the Grader report, and the User report. The calculation for the User report is different than that used for the Setup screen and Grader report.&lt;br /&gt;
&lt;br /&gt;
Weights should be stored in grade_items for the Setup screen and the Grader report and in the grade_grades table for the User report.&lt;br /&gt;
&lt;br /&gt;
==The Math==&lt;br /&gt;
The sum of weights for all containers (categories and course) add up to 100% except in the case where extra credit is used in which case 100% is exceeded by the weight of the extra credit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup screen and Grader report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# ungraded items&#039; points (if aggregateonlygraded is on))&lt;br /&gt;
# any items dropped through container&#039;s drop lowest or keep highest conditions&lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
A multiplicator is used when some natural weights have been manually adjusted = sum(all adjusted weights) / 100&lt;br /&gt;
&lt;br /&gt;
The natural weight for each item contained in a category or course (including extra credit items) is &#039;item maximum points&#039; / &#039;total category or course points&#039; (in which the item is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
The natural weight for each category (including extra credit categories) is &#039;total category points&#039; / &#039;total category or course points&#039; (in which the category is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
==Calculation examples==&lt;br /&gt;
&lt;br /&gt;
===Example 1 simple sum===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you just want their scores added together (out of 50).&lt;br /&gt;
:No action is required of the user regarding weights.&lt;br /&gt;
&lt;br /&gt;
===Example 2 simple mean===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you want the final grade to be the simple mean percentage of all these scores.&lt;br /&gt;
:User should adjust all weights to be the same, i.e., 25%&lt;br /&gt;
&lt;br /&gt;
===Example 3 typical weighted categories===&lt;br /&gt;
User has four categories whose category totals are not in relation to each other as the user desires. They want the &#039;Quizzes&#039; to be worth 20%, the &#039;Exams&#039; to be worth 50% (with the midterm worth 20% and the final worth 30%), &#039;Papers&#039; worth 20%, and &#039;Attendance&#039; worth 10%&lt;br /&gt;
: User would edit the weights and &lt;br /&gt;
::- place the value 20 on the Quizzes category line&lt;br /&gt;
::- place the value 50 on the Exams category line&lt;br /&gt;
::- place the value 20 on the midterm exam item line&lt;br /&gt;
::- place the value 30 on the final exam item line&lt;br /&gt;
::- place the value 20 on the Papers category line&lt;br /&gt;
::- place the value 20 on the Attendance category (or item) line&lt;br /&gt;
: Then the user would save their weight settings&lt;br /&gt;
&lt;br /&gt;
===Example 4 (complex)===&lt;br /&gt;
&lt;br /&gt;
Category 1 contains seven items&lt;br /&gt;
# Item A = 20 points&lt;br /&gt;
# Item B = 10 points is extra credit&lt;br /&gt;
# Item C = 30 points&lt;br /&gt;
# Item D = 40 points is extra credit&lt;br /&gt;
# Item E = 50 points is hidden&lt;br /&gt;
# Item F = 50 points is ungraded&lt;br /&gt;
# Item G = 10 points whose natural weight has been adjusted to 50% of the category grade&lt;br /&gt;
&lt;br /&gt;
; In the Setup screen and the Grader report the following conditions will exist&lt;br /&gt;
:- Category grademax = 120 (10 + 50 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 110 (50 + 30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 8.33% (20 / 120 * .5)&lt;br /&gt;
:- B weight = 4.16% (10 / 120 * .5)&lt;br /&gt;
:- C weight = 12.5% (30 / 120 * .5)&lt;br /&gt;
:- D weight = 33.33% (40 / 120) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 25% (50 / 120 * .5)&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
; In the User report the following conditions will exist&lt;br /&gt;
:- Category grademax = 70 (10 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 60 (30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 16.66% (20 / 60 * .5)&lt;br /&gt;
:- B weight = 8.33% (10 / 60 * .5)&lt;br /&gt;
:- C weight = 25% (30 / 60 * .5)&lt;br /&gt;
:- D weight = 66.66% (40 / 60) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 0%&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45773</id>
		<title>Natural weighting</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45773"/>
		<updated>2014-07-13T20:13:10Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* Rationale */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Natural Weighting&lt;br /&gt;
|state = Specification&lt;br /&gt;
|tracker = https://tracker.moodle.org/browse/MDL-43378&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=245442&lt;br /&gt;
|assignee = Moodle HQ&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=245442}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natural weighting is a modification to how grades are combined.&lt;br /&gt;
&lt;br /&gt;
When &#039;Sum of Grades&#039; aggregation is chosen (and natural weighting is active), there will be a weight column with form fields, looking like &amp;quot;Weighted mean&amp;quot; is in 2.7.  By default, the weight column shows the natural weights given to all categories and items based on gradebook structure.&lt;br /&gt;
&lt;br /&gt;
Weights can be overridden by modifying the values in the form fields.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Reset weights&amp;quot; button in each category resets the weights to their defaults.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rationale==&lt;br /&gt;
&lt;br /&gt;
&amp;gt; In grading, &#039;&#039;&#039;weight&#039;&#039;&#039; is the proportion of an item&#039;s value in relation to all the other items in its container (category or course). Value is most often represented as &#039;points&#039;. &lt;br /&gt;
&amp;gt; Every grade has a weight. &lt;br /&gt;
&amp;gt; There are three fundamental approaches to dealing with weighting in a gradebook&lt;br /&gt;
:- Simple (or natural) weighting. When accurate points for categories and course totals are maintained, both Sum of grades and Simple weighted mean of grades accomplish exactly the same thing.&lt;br /&gt;
:- Adjusted weighting. Users often want to adjust categories and even items to have a weight other than the natural weight, essentially ignoring the points entirely. An example would be, Quizzes=40%, Assignments=50%, Attendance=10%. &lt;br /&gt;
:- Mean of grades. If I have a category made up of five quizzes all worth different points and I want a category percentage to just tell the average (or mean) of all the quiz results&#039; percentage correct, I would choose this approach again, disregarding the points.&lt;br /&gt;
&lt;br /&gt;
Simplifying the understanding of weighting reduces the aggregation methodology down to &#039;either/ or&#039; &lt;br /&gt;
:- either &#039;leave weights as is -- natural&#039; &lt;br /&gt;
:- or &#039;adjust to suit my needs -- adjusted weights&#039;&lt;br /&gt;
&lt;br /&gt;
The interface needed to present these options can be much easier for the common user to grasp. They don&#039;t need to know special terminology generally reserved for Mathematics and Computer Science choosing between three or four or five or more aggregation methods (they don&#039;t even choose an aggregation method). The &#039;&#039;&#039;actual&#039;&#039;&#039; of an item or category is &#039;&#039;&#039;always&#039;&#039;&#039; displayed to them. If that&#039;s not the weight they, they adjust them.&lt;br /&gt;
&lt;br /&gt;
This interface and calculations are expected to suit the needs of all except very edge cases (which can still be handled with formulas).  If it turns out that this is enough for everyone then we can potentially remove quite a lot of aggregation code from the gradebook at a later stage, improving speed and readability.&lt;br /&gt;
&lt;br /&gt;
How natural weights meets the requirements of the aggregation types:&lt;br /&gt;
;Sum of grades: Leave all weightings as is, no change necessary.&lt;br /&gt;
;Mean of grades: Set all weights equal to each other. Doesn&#039;t matter what the number is, as in legacy behavior Moodle will automatically adjust so the sum equals 100%. However, in this implementation the group wants to have a pop-up warning the user the weights don&#039;t add up to 100% and they will therefore be adjusted uniformly to equal 100%.&lt;br /&gt;
;Weighted mean of grades: Adjust weights as desired. No change from current behavior.&lt;br /&gt;
;Simple weighted mean of grades: Leave all weightings as is, no change necessary. Same as Sum of grades.&lt;br /&gt;
;Mean of grades (with extra credits): Extra credit has a natural weight that takes the total container (category/ course) weight above 100% (hence, &#039;extra&#039;). Extra credit is available at all times no matter what scheme of weighting is chosen.&lt;br /&gt;
;Highest : User would input the value &#039;1&#039; for &#039;Keep highest&#039; in the category&lt;br /&gt;
;Lowest : Not possible using natural weights, but it can be replaced by a calculation into a new item.&lt;br /&gt;
;Median / Mode of grades: Not possible using natural weights, but it&#039;s doubtful anyone uses these anyway so perhaps this can be deprecated entirely.&lt;br /&gt;
&lt;br /&gt;
==Implementation stages==&lt;br /&gt;
&lt;br /&gt;
To be safe, we plan to implement this in stages:&lt;br /&gt;
&lt;br /&gt;
STAGE 1) Implement natural weighting as part of the Sum of Grades aggregation type, with admin settings that allow them to disable all other aggregations if they choose. (Moodle 2.8)&lt;br /&gt;
&lt;br /&gt;
STAGE 2) Once people have been using this for a while, explore the possibility of removing other aggregation code or making them into optional plugins. (Moodle 3.0 perhaps)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Interfaces==&lt;br /&gt;
&lt;br /&gt;
=== Category editing ===&lt;br /&gt;
&lt;br /&gt;
Prototype from luther.edu:&lt;br /&gt;
[[Image:NaturalWeights.png]]&lt;br /&gt;
&lt;br /&gt;
In addition the weights should be editable form fields here, and there would be one button per category to &amp;quot;reset weights&amp;quot; back to a natural Sum of Grades.&lt;br /&gt;
&lt;br /&gt;
=== Admin settings ===&lt;br /&gt;
&lt;br /&gt;
New setting to &amp;quot;Force Natural Weighting&amp;quot; (on/off).   This would default to OFF on upgraded sites and ON for new sites.&lt;br /&gt;
&lt;br /&gt;
ON:  this will hide the aggregation menu and all new categories will default to &amp;quot;Sum of grades&amp;quot; and natural weights.  It will not affect existing gradebooks with other aggregations set (see upgrade script below for a conversion strategy).&lt;br /&gt;
&lt;br /&gt;
OFF: aggregation menu is shown, but Sum of Grades will still contain new natural weighting UI and logic.&lt;br /&gt;
&lt;br /&gt;
NOTE: I&#039;d really like to see a third option, &#039;Optional&#039; with the use case of admins wanting to introduce this new method to some teachers on a trial basis but not have it necessarily forced on all courses. We initially saw 2.9 being the point at which we would go down to two settings, &#039;On&#039; or &#039;Off&#039; with 3.0 full &#039;On&#039;&lt;br /&gt;
&lt;br /&gt;
==Upgrade script==&lt;br /&gt;
&lt;br /&gt;
If a site is switching to forced natural weights, they will probably want to upgrade all existing categories.&lt;br /&gt;
&lt;br /&gt;
This new optional upgrade script will examine all grade categories looking at aggregation methods.  It should report on what exists and allow the admin to perform an automated upgrade as follows:&lt;br /&gt;
&lt;br /&gt;
# If GRADE_AGGREGATE_WEIGHTED_MEAN then:&lt;br /&gt;
#* Store value of &#039;aggregationcoef&#039; fields to &#039;weight&#039; fields in grade_items&lt;br /&gt;
#* Set &#039;weightoverride&#039; field in grade_items&lt;br /&gt;
# If ... then:&lt;br /&gt;
#* &lt;br /&gt;
#* &lt;br /&gt;
&lt;br /&gt;
(We need exact strategies here for ALL aggregation types)&lt;br /&gt;
&lt;br /&gt;
==Database changes==&lt;br /&gt;
&lt;br /&gt;
;Add three fields to grade_items&lt;br /&gt;
# extracredit, tinyint, notnull, default: 0&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
# weightoverride, tinyint, notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
; Add one field to grade_grades&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
;This fixes the use of &#039;&#039;&#039;aggregationcoef&#039;&#039;&#039; representing both extra credit and weight in 2.7.&lt;br /&gt;
&lt;br /&gt;
== Unit test changes==&lt;br /&gt;
&lt;br /&gt;
==Functional test changes ==&lt;br /&gt;
&lt;br /&gt;
==Logic changes==&lt;br /&gt;
&lt;br /&gt;
Sum of Grades aggregation must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; hidden items and to &#039;&#039;&#039;exclude&#039;&#039;&#039; non-graded items&lt;br /&gt;
&lt;br /&gt;
Determination of range (in Grader and User report) and Max grade (in Setup screen) must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; extra credit items&lt;br /&gt;
&lt;br /&gt;
Natural weights must be saved and applied to the form.&lt;br /&gt;
&lt;br /&gt;
Natural weights are calculated for the Setup screen, the Grader report, and the User report. The calculation for the User report is different than that used for the Setup screen and Grader report.&lt;br /&gt;
&lt;br /&gt;
Weights should be stored in grade_items for the Setup screen and the Grader report and in the grade_grades table for the User report.&lt;br /&gt;
&lt;br /&gt;
==The Math==&lt;br /&gt;
The sum of weights for all containers (categories and course) add up to 100% except in the case where extra credit is used in which case 100% is exceeded by the weight of the extra credit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup screen and Grader report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# ungraded items&#039; points (if aggregateonlygraded is on))&lt;br /&gt;
# any items dropped through container&#039;s drop lowest or keep highest conditions&lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
A multiplicator is used when some natural weights have been manually adjusted = sum(all adjusted weights) / 100&lt;br /&gt;
&lt;br /&gt;
The natural weight for each item contained in a category or course (including extra credit items) is &#039;item maximum points&#039; / &#039;total category or course points&#039; (in which the item is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
The natural weight for each category (including extra credit categories) is &#039;total category points&#039; / &#039;total category or course points&#039; (in which the category is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
==Calculation examples==&lt;br /&gt;
&lt;br /&gt;
===Example 1 simple sum===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you just want their scores added together (out of 50).&lt;br /&gt;
:No action is required of the user regarding weights.&lt;br /&gt;
&lt;br /&gt;
===Example 2 simple mean===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you want the final grade to be the simple mean percentage of all these scores.&lt;br /&gt;
:User should adjust all weights to be the same, i.e., 25%&lt;br /&gt;
&lt;br /&gt;
===Example 3 typical weighted categories===&lt;br /&gt;
User has four categories whose category totals are not in relation to each other as the user desires. They want the &#039;Quizzes&#039; to be worth 20%, the &#039;Exams&#039; to be worth 50% (with the midterm worth 20% and the final worth 30%), &#039;Papers&#039; worth 20%, and &#039;Attendance&#039; worth 10%&lt;br /&gt;
: User would edit the weights and &lt;br /&gt;
::- place the value 20 on the Quizzes category line&lt;br /&gt;
::- place the value 50 on the Exams category line&lt;br /&gt;
::- place the value 20 on the midterm exam item line&lt;br /&gt;
::- place the value 30 on the final exam item line&lt;br /&gt;
::- place the value 20 on the Papers category line&lt;br /&gt;
::- place the value 20 on the Attendance category (or item) line&lt;br /&gt;
: Then the user would save their weight settings&lt;br /&gt;
&lt;br /&gt;
===Example 4 (complex)===&lt;br /&gt;
&lt;br /&gt;
Category 1 contains seven items&lt;br /&gt;
# Item A = 20 points&lt;br /&gt;
# Item B = 10 points is extra credit&lt;br /&gt;
# Item C = 30 points&lt;br /&gt;
# Item D = 40 points is extra credit&lt;br /&gt;
# Item E = 50 points is hidden&lt;br /&gt;
# Item F = 50 points is ungraded&lt;br /&gt;
# Item G = 10 points whose natural weight has been adjusted to 50% of the category grade&lt;br /&gt;
&lt;br /&gt;
; In the Setup screen and the Grader report the following conditions will exist&lt;br /&gt;
:- Category grademax = 120 (10 + 50 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 110 (50 + 30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 8.33% (20 / 120 * .5)&lt;br /&gt;
:- B weight = 4.16% (10 / 120 * .5)&lt;br /&gt;
:- C weight = 12.5% (30 / 120 * .5)&lt;br /&gt;
:- D weight = 33.33% (40 / 120) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 25% (50 / 120 * .5)&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
; In the User report the following conditions will exist&lt;br /&gt;
:- Category grademax = 70 (10 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 60 (30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 16.66% (20 / 60 * .5)&lt;br /&gt;
:- B weight = 8.33% (10 / 60 * .5)&lt;br /&gt;
:- C weight = 25% (30 / 60 * .5)&lt;br /&gt;
:- D weight = 66.66% (40 / 60) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 0%&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45772</id>
		<title>Natural weighting</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Natural_weighting&amp;diff=45772"/>
		<updated>2014-07-13T20:12:12Z</updated>

		<summary type="html">&lt;p&gt;Bobpuffer: /* Rationale */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Natural Weighting&lt;br /&gt;
|state = Specification&lt;br /&gt;
|tracker = https://tracker.moodle.org/browse/MDL-43378&lt;br /&gt;
|discussion = https://moodle.org/mod/forum/discuss.php?d=245442&lt;br /&gt;
|assignee = Moodle HQ&lt;br /&gt;
}}&lt;br /&gt;
{{Work in progress|forumurl=https://moodle.org/mod/forum/discuss.php?d=245442}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natural weighting is a modification to how grades are combined.&lt;br /&gt;
&lt;br /&gt;
When &#039;Sum of Grades&#039; aggregation is chosen (and natural weighting is active), there will be a weight column with form fields, looking like &amp;quot;Weighted mean&amp;quot; is in 2.7.  By default, the weight column shows the natural weights given to all categories and items based on gradebook structure.&lt;br /&gt;
&lt;br /&gt;
Weights can be overridden by modifying the values in the form fields.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Reset weights&amp;quot; button in each category resets the weights to their defaults.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rationale==&lt;br /&gt;
&lt;br /&gt;
:-In grading, &#039;&#039;&#039;weight&#039;&#039;&#039; is the proportion of an item&#039;s value in relation to all the other items in its container (category or course). Value is most often represented as &#039;points&#039;. &lt;br /&gt;
:- Every grade has a weight. &lt;br /&gt;
:- There are three fundamental approaches to dealing with weighting in a gradebook&lt;br /&gt;
::- Simple (or natural) weighting. When accurate points for categories and course totals are maintained, both Sum of grades and Simple weighted mean of grades accomplish exactly the same thing.&lt;br /&gt;
::- Adjusted weighting. Users often want to adjust categories and even items to have a weight other than the natural weight, essentially ignoring the points entirely. An example would be, Quizzes=40%, Assignments=50%, Attendance=10%. &lt;br /&gt;
::- Mean of grades. If I have a category made up of five quizzes all worth different points and I want a category percentage to just tell the average (or mean) of all the quiz results&#039; percentage correct, I would choose this approach again, disregarding the points.&lt;br /&gt;
&lt;br /&gt;
Simplifying the understanding of weighting reduces the aggregation methodology down to &#039;either/ or&#039; &lt;br /&gt;
:- either &#039;leave weights as is -- natural&#039; &lt;br /&gt;
:- or &#039;adjust to suit my needs -- adjusted weights&#039;&lt;br /&gt;
&lt;br /&gt;
The interface needed to present these options can be much easier for the common user to grasp. They don&#039;t need to know special terminology generally reserved for Mathematics and Computer Science choosing between three or four or five or more aggregation methods (they don&#039;t even choose an aggregation method). The &#039;&#039;&#039;actual&#039;&#039;&#039; of an item or category is &#039;&#039;&#039;always&#039;&#039;&#039; displayed to them. If that&#039;s not the weight they, they adjust them.&lt;br /&gt;
&lt;br /&gt;
This interface and calculations are expected to suit the needs of all except very edge cases (which can still be handled with formulas).  If it turns out that this is enough for everyone then we can potentially remove quite a lot of aggregation code from the gradebook at a later stage, improving speed and readability.&lt;br /&gt;
&lt;br /&gt;
How natural weights meets the requirements of the aggregation types:&lt;br /&gt;
;Sum of grades: Leave all weightings as is, no change necessary.&lt;br /&gt;
;Mean of grades: Set all weights equal to each other. Doesn&#039;t matter what the number is, as in legacy behavior Moodle will automatically adjust so the sum equals 100%. However, in this implementation the group wants to have a pop-up warning the user the weights don&#039;t add up to 100% and they will therefore be adjusted uniformly to equal 100%.&lt;br /&gt;
;Weighted mean of grades: Adjust weights as desired. No change from current behavior.&lt;br /&gt;
;Simple weighted mean of grades: Leave all weightings as is, no change necessary. Same as Sum of grades.&lt;br /&gt;
;Mean of grades (with extra credits): Extra credit has a natural weight that takes the total container (category/ course) weight above 100% (hence, &#039;extra&#039;). Extra credit is available at all times no matter what scheme of weighting is chosen.&lt;br /&gt;
;Highest : User would input the value &#039;1&#039; for &#039;Keep highest&#039; in the category&lt;br /&gt;
;Lowest : Not possible using natural weights, but it can be replaced by a calculation into a new item.&lt;br /&gt;
;Median / Mode of grades: Not possible using natural weights, but it&#039;s doubtful anyone uses these anyway so perhaps this can be deprecated entirely.&lt;br /&gt;
&lt;br /&gt;
==Implementation stages==&lt;br /&gt;
&lt;br /&gt;
To be safe, we plan to implement this in stages:&lt;br /&gt;
&lt;br /&gt;
STAGE 1) Implement natural weighting as part of the Sum of Grades aggregation type, with admin settings that allow them to disable all other aggregations if they choose. (Moodle 2.8)&lt;br /&gt;
&lt;br /&gt;
STAGE 2) Once people have been using this for a while, explore the possibility of removing other aggregation code or making them into optional plugins. (Moodle 3.0 perhaps)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Interfaces==&lt;br /&gt;
&lt;br /&gt;
=== Category editing ===&lt;br /&gt;
&lt;br /&gt;
Prototype from luther.edu:&lt;br /&gt;
[[Image:NaturalWeights.png]]&lt;br /&gt;
&lt;br /&gt;
In addition the weights should be editable form fields here, and there would be one button per category to &amp;quot;reset weights&amp;quot; back to a natural Sum of Grades.&lt;br /&gt;
&lt;br /&gt;
=== Admin settings ===&lt;br /&gt;
&lt;br /&gt;
New setting to &amp;quot;Force Natural Weighting&amp;quot; (on/off).   This would default to OFF on upgraded sites and ON for new sites.&lt;br /&gt;
&lt;br /&gt;
ON:  this will hide the aggregation menu and all new categories will default to &amp;quot;Sum of grades&amp;quot; and natural weights.  It will not affect existing gradebooks with other aggregations set (see upgrade script below for a conversion strategy).&lt;br /&gt;
&lt;br /&gt;
OFF: aggregation menu is shown, but Sum of Grades will still contain new natural weighting UI and logic.&lt;br /&gt;
&lt;br /&gt;
NOTE: I&#039;d really like to see a third option, &#039;Optional&#039; with the use case of admins wanting to introduce this new method to some teachers on a trial basis but not have it necessarily forced on all courses. We initially saw 2.9 being the point at which we would go down to two settings, &#039;On&#039; or &#039;Off&#039; with 3.0 full &#039;On&#039;&lt;br /&gt;
&lt;br /&gt;
==Upgrade script==&lt;br /&gt;
&lt;br /&gt;
If a site is switching to forced natural weights, they will probably want to upgrade all existing categories.&lt;br /&gt;
&lt;br /&gt;
This new optional upgrade script will examine all grade categories looking at aggregation methods.  It should report on what exists and allow the admin to perform an automated upgrade as follows:&lt;br /&gt;
&lt;br /&gt;
# If GRADE_AGGREGATE_WEIGHTED_MEAN then:&lt;br /&gt;
#* Store value of &#039;aggregationcoef&#039; fields to &#039;weight&#039; fields in grade_items&lt;br /&gt;
#* Set &#039;weightoverride&#039; field in grade_items&lt;br /&gt;
# If ... then:&lt;br /&gt;
#* &lt;br /&gt;
#* &lt;br /&gt;
&lt;br /&gt;
(We need exact strategies here for ALL aggregation types)&lt;br /&gt;
&lt;br /&gt;
==Database changes==&lt;br /&gt;
&lt;br /&gt;
;Add three fields to grade_items&lt;br /&gt;
# extracredit, tinyint, notnull, default: 0&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
# weightoverride, tinyint, notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
; Add one field to grade_grades&lt;br /&gt;
# weight, decimal(10,5), notnull, default: 0&lt;br /&gt;
&lt;br /&gt;
;This fixes the use of &#039;&#039;&#039;aggregationcoef&#039;&#039;&#039; representing both extra credit and weight in 2.7.&lt;br /&gt;
&lt;br /&gt;
== Unit test changes==&lt;br /&gt;
&lt;br /&gt;
==Functional test changes ==&lt;br /&gt;
&lt;br /&gt;
==Logic changes==&lt;br /&gt;
&lt;br /&gt;
Sum of Grades aggregation must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; hidden items and to &#039;&#039;&#039;exclude&#039;&#039;&#039; non-graded items&lt;br /&gt;
&lt;br /&gt;
Determination of range (in Grader and User report) and Max grade (in Setup screen) must be fixed to &#039;&#039;&#039;exclude&#039;&#039;&#039; extra credit items&lt;br /&gt;
&lt;br /&gt;
Natural weights must be saved and applied to the form.&lt;br /&gt;
&lt;br /&gt;
Natural weights are calculated for the Setup screen, the Grader report, and the User report. The calculation for the User report is different than that used for the Setup screen and Grader report.&lt;br /&gt;
&lt;br /&gt;
Weights should be stored in grade_items for the Setup screen and the Grader report and in the grade_grades table for the User report.&lt;br /&gt;
&lt;br /&gt;
==The Math==&lt;br /&gt;
The sum of weights for all containers (categories and course) add up to 100% except in the case where extra credit is used in which case 100% is exceeded by the weight of the extra credit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup screen and Grader report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User report&#039;&#039;&#039;&lt;br /&gt;
For the purposes of the calculations below the total category or course points is its total maximum points - (all of the below)&lt;br /&gt;
# extra credit items&#039; points &lt;br /&gt;
# hidden items&#039; points (unless hidetotalsthatcontainhiddenitems = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) &lt;br /&gt;
# ungraded items&#039; points (if aggregateonlygraded is on))&lt;br /&gt;
# any items dropped through container&#039;s drop lowest or keep highest conditions&lt;br /&gt;
# all points associated with contained items or categories who&#039;ve had their weights overridden&lt;br /&gt;
&lt;br /&gt;
A multiplicator is used when some natural weights have been manually adjusted = sum(all adjusted weights) / 100&lt;br /&gt;
&lt;br /&gt;
The natural weight for each item contained in a category or course (including extra credit items) is &#039;item maximum points&#039; / &#039;total category or course points&#039; (in which the item is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
The natural weight for each category (including extra credit categories) is &#039;total category points&#039; / &#039;total category or course points&#039; (in which the category is contained) * multiplicator (if any)&lt;br /&gt;
&lt;br /&gt;
==Calculation examples==&lt;br /&gt;
&lt;br /&gt;
===Example 1 simple sum===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you just want their scores added together (out of 50).&lt;br /&gt;
:No action is required of the user regarding weights.&lt;br /&gt;
&lt;br /&gt;
===Example 2 simple mean===&lt;br /&gt;
&lt;br /&gt;
In this case you have three assignments: A (10 points), B (10 points) and C (10 points) plus a final quiz D (20 points), and you want the final grade to be the simple mean percentage of all these scores.&lt;br /&gt;
:User should adjust all weights to be the same, i.e., 25%&lt;br /&gt;
&lt;br /&gt;
===Example 3 typical weighted categories===&lt;br /&gt;
User has four categories whose category totals are not in relation to each other as the user desires. They want the &#039;Quizzes&#039; to be worth 20%, the &#039;Exams&#039; to be worth 50% (with the midterm worth 20% and the final worth 30%), &#039;Papers&#039; worth 20%, and &#039;Attendance&#039; worth 10%&lt;br /&gt;
: User would edit the weights and &lt;br /&gt;
::- place the value 20 on the Quizzes category line&lt;br /&gt;
::- place the value 50 on the Exams category line&lt;br /&gt;
::- place the value 20 on the midterm exam item line&lt;br /&gt;
::- place the value 30 on the final exam item line&lt;br /&gt;
::- place the value 20 on the Papers category line&lt;br /&gt;
::- place the value 20 on the Attendance category (or item) line&lt;br /&gt;
: Then the user would save their weight settings&lt;br /&gt;
&lt;br /&gt;
===Example 4 (complex)===&lt;br /&gt;
&lt;br /&gt;
Category 1 contains seven items&lt;br /&gt;
# Item A = 20 points&lt;br /&gt;
# Item B = 10 points is extra credit&lt;br /&gt;
# Item C = 30 points&lt;br /&gt;
# Item D = 40 points is extra credit&lt;br /&gt;
# Item E = 50 points is hidden&lt;br /&gt;
# Item F = 50 points is ungraded&lt;br /&gt;
# Item G = 10 points whose natural weight has been adjusted to 50% of the category grade&lt;br /&gt;
&lt;br /&gt;
; In the Setup screen and the Grader report the following conditions will exist&lt;br /&gt;
:- Category grademax = 120 (10 + 50 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 110 (50 + 30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 8.33% (20 / 120 * .5)&lt;br /&gt;
:- B weight = 4.16% (10 / 120 * .5)&lt;br /&gt;
:- C weight = 12.5% (30 / 120 * .5)&lt;br /&gt;
:- D weight = 33.33% (40 / 120) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 25% (50 / 120 * .5)&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
; In the User report the following conditions will exist&lt;br /&gt;
:- Category grademax = 70 (10 + 30 + 10 + 20)&lt;br /&gt;
:- Remainder minus adjusted weights = 60 (30 + 10 + 20) the 10 points adjusted out represent 50% of the final category grade&lt;br /&gt;
:- Multiplicator for each weight calculation to adjust for the 50% of weight already accounted for = .5 (50% / 100%)&lt;br /&gt;
:- A weight = 16.66% (20 / 60 * .5)&lt;br /&gt;
:- B weight = 8.33% (10 / 60 * .5)&lt;br /&gt;
:- C weight = 25% (30 / 60 * .5)&lt;br /&gt;
:- D weight = 66.66% (40 / 60) extra credit is not adjust, retains its value regardless of weights being overridden&lt;br /&gt;
:- E weight = 0%&lt;br /&gt;
:- F weight = 0%&lt;br /&gt;
:- G weight = 50% (adjusted)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;/div&gt;</summary>
		<author><name>Bobpuffer</name></author>
	</entry>
</feed>