Trusted in Healthcare, Associations & Compliance
20+ Years 2M+ Learners 99.9% Uptime
Lambda LearningLearning · Commerce · Analytics
LMS Analytics · Mar 21, 2023· Updated Oct 8, 2026

Moodle™ analytics and reporting: what's built in and how to get more

Moodle™ analytics and reporting come in several layers: standard course and site reports, a custom Report builder, predictive learning analytics models and the personal Dashboard. Each layer answers a different kind of question, and most reporting problems we see come from looking in the wrong layer or from data that was never switched on.

This guide covers what is built in, where it stops, which plugins fill the gaps and when a dedicated analytics tool is worth adding. For the wider picture beyond Moodle, see our guide to learning analytics.

Moodle reporting features for teachers and site administrators

What Moodle analytics and reporting cover

Reporting tells you what happened: who logged in, who completed an activity, what grades were earned. Analytics goes a step further and tries to explain or predict. Moodle's documentation draws the same line: the standard reports are primarily descriptive, and the analytics models add prediction.

QuestionWhere to look in Moodle
What did learners do in my course, and when?Course logs, activity report, course participation report
Who has finished which activities, or the whole course?Activity completion and course completion reports
How are learners performing?Grader report, user report, quiz reports
What changed on the site, and is it healthy?Site logs, config changes, security and performance overviews
I need a list across courses or users that no standard report gives meCustom reports (Report builder)
Which students are likely to drop out?Analytics models and insights
What is due for me this week?The Dashboard and its blocks

Built-in Moodle reports

Every Moodle site ships with standard reports. Nothing needs installing, although a few have to be enabled.

Moodle course reports

Teachers open these from Reports in the course navigation. The course reports documentation lists the current set:

  • Logs and live logs. Logs show which pages a learner accessed, the date and time, the IP address and the action taken. Filter by group, user, date, activity and action, or download them as text, ODS or Excel. Live logs show events as they happen.
  • Activity report. The number of views for each activity and resource in the course.
  • Course participation. Who has taken part in a given activity and how many times, filtered by role, group and action (view or post). You can message the learners who have not done something straight from the report.
  • Statistics. Graphs and tables of activity over time. The Moodle statistics report counts hits, not distinct users, and it must be enabled by an administrator under Advanced features.
  • Event monitoring. Rules that notify teachers or admins when a chosen event happens. It is disabled by default.

Log-based reports only reach as far back as your site keeps its logs, so check the log retention setting.

Grades and completion reports

  • Grader report. The course gradebook. It collects every graded item in the course and lets teachers view and change grades, sort them into categories and calculate totals.
  • User report and overview report. The user report breaks down one learner's grades item by item, with weightings and feedback. The overview report shows a learner's course totals across their courses.
  • Activity completion report. A grid with a row per learner and a column per tracked activity, showing what each person has completed and whether they reached a passing grade. Teachers can override a status, and overridden items are marked.
  • Course completion report. Who has met the course's completion criteria. It can be downloaded as a CSV file.
  • Quiz reports. Each quiz has grades, responses, statistics and manual grading reports. The statistics report helps you find questions that are unclear or unfair.

Completion reports stay empty unless completion conditions are set on the activities.

Site-level reports

Administrators have a separate set of site-wide reports:

  • Logs and live logs for the whole site, with live logs covering the past hour.
  • Config changes, a record of changes administrators have made to site settings.
  • Backups, listing course backups, their status and the next scheduled run.
  • Security overview and performance overview, which check settings that put the site at risk or slow it down.

Recent versions add AI usage and AI policy acceptance reports. All of these are operational: they describe the health of the site, not learning outcomes.

Custom reports with the Moodle Report builder

Since Moodle 4.0, core Moodle has included a Report builder for creating Moodle custom reports without SQL. It is based on the Report builder in Moodle Workplace and lives at Site administration > Reports > Custom reports. The custom reports documentation describes the workflow:

  1. Pick a report source. Sources in the current documentation include users, cohorts, courses, course categories, course participants (enrolments, groups, course completion and course access), badges, competencies, groups, roles, files, notes, comments, blogs, tags and task logs.
  2. Choose columns, then set conditions, filters, sorting and the card view.
  3. Define an audience. Share the report with a system role, a cohort or manually selected users.
  4. Add a schedule. The report is emailed to the audience as a file (CSV by default) at a frequency from hourly to annually.

You will also see the term "system reports". Those are fixed report pages inside Moodle built on the same Report builder API. Custom reports are the ones you assemble yourself.

Know the limits before you promise anyone a report. Each custom report starts from a single source, and the documented source list does not include gradebook items, activity-level completion, quiz attempts or log data. Administrators can also cap the number of custom reports to protect performance.

Moodle learning analytics: models and insights

Learning analytics in Moodle is a separate feature from reporting. The Moodle Analytics API has been in core since Moodle 3.4, having started as the Inspire plugin. It runs models over your site's data and sends predictions, called insights, to the people who can act on them.

According to the analytics documentation, core Moodle includes three models:

  • Students at risk of dropping out, which predicts non-completion from low engagement.
  • Upcoming activities due.
  • No teaching, an insight aimed at site managers.

Models are managed under Site administration > Analytics > Analytics models, and most are not enabled by default. Machine learning models must also be trained on your own site's history before they predict anything.

The students at risk model shows what that means. It expects courses with fixed start and end dates, is not designed for rolling enrolment and excludes courses longer than a year. It trains on finished courses that had activity, then predicts for courses in progress.

When a model flags a learner, the teacher gets a notification with suggested actions: send the student a message, open that student's outline report, view the prediction details, acknowledge it or mark it as not useful. Predictions use a PHP backend by default, with a Python backend as an option, and developers can add models through the API.

For self-paced training with open enrolment, the dropout model is a poor fit. Completion reports and scheduled custom reports serve those programs better.

Dashboards in Moodle

The Moodle dashboard is a personal page, not a management console. The Dashboard documentation describes it as a customizable page that gives each user details of their progress and upcoming deadlines. By default it shows the Timeline, with the Calendar in the block drawer, alongside the Course overview of enrolled courses.

Users can turn on edit mode to add, remove and move blocks, and reset the page to the default at any time. Administrators set the default layout under Site administration > Appearance > Default Dashboard page and can apply it to everyone with "Reset Dashboard for all users".

For a per-course progress view, the Completion Progress block is a long-standing community plugin. It gives learners a colour-coded view of activities and gives teachers an overview for spotting learners who are falling behind.

What core Moodle does not offer is a Moodle analytics dashboard of charts and KPIs for managers.

Moodle reporting plugins and alternatives

Plugins are add-ons that extend Moodle, and each reporting plugin tends to deliver one type of report. Two are worth understanding. Our list of the best Moodle plugins covers the wider field.

Configurable Reports plugin

The Moodle Configurable Reports plugin is a block that lets admins and teachers build course, category, user and timeline reports without SQL, and also run custom SQL reports. It predates the core Report builder and is still installed on thousands of sites.

Check its status before relying on it. When we looked, the latest release in the plugins directory was 4.5.0, published in late 2024 and listed for Moodle 4.0 to 4.5. We did not find a release listed for Moodle 5.x. On a newer version, confirm compatibility first, and consider whether the core Report builder now covers what you used it for.

Ad-hoc database queries

The Ad-hoc database queries plugin lets administrators save SQL queries as reports that run on demand or on a schedule, with results shown as a table and downloadable as CSV.

The cost is that someone has to write and maintain SQL against Moodle's database, and a heavy query runs against your live site. It is a tool for a technical administrator, not a training manager.

What to look for in any reporting option

Whether you are judging a Moodle analytics plugin or an external tool, look for six things: print-quality reports with charts; interactive lists and charts people can sort, filter and drill into; dashboards; exports to common file formats; scheduled creation and delivery; and ready-made reports you can adapt.

When built-in Moodle analytics is not enough

Built-in reporting handles course-level questions well. It tends to run out when you need to:

  • Combine grades, completion and activity for the same learners in one report.
  • Report across many courses, programs or more than one site.
  • Show time spent learning. Moodle's logs record events and timestamps, and none of the standard reports turn that into time on task.
  • Give managers charts and dashboards.
  • Join LMS data with data from other business systems.
  • Produce the same compliance evidence every month without manual work.

This is the point where Moodle data analytics usually moves to a dedicated tool that sits beside the LMS.

Our option is Zoola Analytics, a reporting and analytics platform built specifically for Moodle and Totara. You build custom reports and dashboards with a drag-and-drop interface, without writing SQL, and schedule them for automatic delivery. It also offers a Time Spent Learning plugin that separates active engagement from idle time, real-time dashboards, compliance reporting and blending of LMS data with other business tools.

It is not the right answer for everyone. If a handful of scheduled custom reports would cover your questions, start with what Moodle already includes.

Tips for getting more from Moodle reporting

  1. Define the questions first. Work up in stages: learner progress (who is enrolled, complete or overdue), activity and engagement, time spent, learning effectiveness (quiz statistics, grades, feedback), then compliance. Note who needs each answer and how often.
  2. Turn completion tracking on. Set a completion condition on every activity that matters, and set course completion criteria.
  3. Design courses consistently. Use the same structure, naming and grade categories across courses, and set start and end dates. Cross-course reports and analytics models depend on it.
  4. Schedule reports. Use Report builder schedules so stakeholders receive reports without logging in or asking you.
  5. Act on the data. Message learners who have not started, rewrite the quiz question most people get wrong, retire the resource nobody opens. For compliance training, agree in advance who follows up on overdue learners.

Frequently asked questions

Does Moodle have built-in analytics?

Yes. Moodle has included learning analytics in core since version 3.4. It ships with three models, including "Students at risk of dropping out", and sends insights with suggested actions. Most models are not enabled by default, and machine learning models must first be trained on your own site's data.

Is the Moodle Configurable Reports plugin still maintained?

It is still listed in the Moodle plugins directory and widely installed. When we checked, the latest release was 4.5.0 from late 2024, listed for Moodle 4.0 to 4.5, with none listed for Moodle 5.x. Check the plugin page before installing it or upgrading a site that depends on it.

How do I customize the Moodle dashboard?

Open the Dashboard, turn on edit mode, then add, remove or move blocks such as Timeline and Calendar. "Reset page to default" undoes your changes. Administrators set the default under Site administration > Appearance > Default Dashboard page and apply it with "Reset Dashboard for all users".

Why is a course not showing in the Moodle dashboard?

The Course overview only lists courses the user is enrolled in, and it is filtered. A course appears as "In progress" only if it is not yet completed, its start date has passed and its end date has not. Check the enrolment, switch the filter to "All", look under hidden courses and check the course dates.

How do I track student activity in Moodle?

Start with the course logs, the activity report and the course participation report on the course's Reports page. Add the activity completion report to see who has finished what. For a view across several courses, build a custom report from the course participants source in Report builder.

Need help with Moodle reporting?

At Lambda Learning we set up completion tracking, custom reports and analytics on our managed Moodle hosting, and add Zoola Analytics where the built-in tools run out. Not sure which layer your reporting problem belongs to? Book a call with our team and bring the questions you need answered.

Stewart Rogers

Stewart Rogers

Director of Product Management, Lambda Learning

Keep readingMore from the blog
Sign up

Stay informed.

Get the metrics your LMS hides — plus practical Moodle, Totara, and learning-commerce guidance — delivered to your inbox.

Lambda Learning