Note: You are currently viewing documentation for Moodle 3.7. Up-to-date documentation for the latest stable version of Moodle may be available here: Analytics settings.

Analytics settings

From MoodleDocs

The Moodle learning analytics system requires some initial configuration before it can be used. You can access Analytics settings from Site administration > Analytics > Analytics settings.

Site information

New feature
in Moodle 3.7!

Site information will be used to help learning analytics models take characteristics of the institution into account. This information is also reported as part of site data collection when you register your site. This will allow HQ to understand which areas in learning analytics are seeing the most use and prioritize development resources appropriately.

Configure learning analytics settings

configure settings.png

The settings for the Moodle Learning Analytics system are set to reasonable defaults, but let’s review them. To configure and enable Moodle Learning Analytics settings, access the Analytics settings panel under Site Administration/Analytics.

Predictions processor

Predictions processor selection

Prediction processors are the machine learning backends that process the datasets generated from the calculated indicators and targets and return predictions. Moodle core includes 2 prediction processors:

  • The PHP processor is the default. There are no other system requirements to use this processor.
  • The Python processor is more powerful and it generates graphs that explain the model performance. It requires setting up extra tools: Python itself ( and the moodlemlbackend python package. The latest version of the package for Moodle 3.7 is compatible with python 2.7 and python 3.4. Note that the package should be available for both the Command Line Interface (CLI) user and the user who runs the web server (e.g. www-data).
   pip install "moodlemlbackend>=1.0.0,<2.0.0"

Log store

From Moodle version 2.7 and up, the “Standard logstore” is the default. If for some reason you also have data in the older “legacy logs,” you can enable the Moodle Learning Analytics system to access them instead.

Analysis intervals

Analysis intervals determine how often insights will be generated, and how much information to use for each calculation. Using proportional analysis intervals allows courses of different lengths to be used to train a single model.

Analysis intervals

Each analysis interval divides the course duration into segments. At the end of each defined segment, the predictions engine will run and generate insights. It is recommended that you only enable the analysis intervals you are interested in using; the evaluation process will iterate through all enabled analysis intervals, so the more analysis intervals enabled, the slower the evaluation process will be.

Models output directory

Models output directory

This setting allows you to define a directory where machine learning backends data is stored. Be sure this directory exists and is writable by the web server. This setting can be used by Moodle sites with multiple frontend nodes (a cluster) to specify a shared directory across nodes. This directory can be used by machine learning backends to store trained algorithms (its internal variables weights and stuff like that) to use them later to get predictions. Moodle cron lock will prevent multiple executions of the analytics tasks that train machine learning algorithms and get predictions from them.

Scheduled tasks

Most analytics API processes are executed through scheduled tasks. These processes usually read the activity log table and can require some time to finish. You can find Train models and Predict models scheduled tasks listed in Administration > Site administration > Server > Scheduled tasks. It is recommended to edit the tasks schedule so they run nightly.

Defining roles

Moodle learning analytics makes use of a number of capabilities. These can be added or removed from roles at the site level or within certain contexts to customise who can view insights.

To receive notifications and view insights, a user must have the analytics:listinsights capability within the context used as the "Analysable" for the model. For example, the Students at risk of dropping out model operates within the context of a course. Insights will be generated for each enrolment within any course matching the criteria of the model (courses with a start date in the past and an end date in the future, with at least one teacher and student), and these insights will be sent to anyone with the listinsights capability in that course. By default, the roles of Teacher, Non-editing teacher, and Manager have this capability.

Some models (e.g. the No teaching model) generate insights at the Site level. To receive insights from these models, the user must have a role assignment at the System level which includes the listinsights capability. By default, this is included in the Manager role if assigned at the site level.

Note: Site administrators do not automatically receive insight notifications, though they can choose to view details of any insight notifications on the system. To enable site administrators to receive notifications of insights, assign an additional role that includes the listinsights capability to the site administrator at the system level (e.g. the Manager role).