Customer & Employee Training16 min read

LMS Reporting: What Each Report Can and Cannot Tell You

Every platform ships the same ten reports, so the shortlist question is not which reports exist. It is what writes the numbers behind them, which ones go blank on content you bought, and which questions no learning platform can answer at all. Five reports to make a vendor run live on your own data…

Onur Öztürk
Co-Founder
A ruler lying across a card but ending well before its far edge, standing for where a platform's data stops

Every learning platform ships roughly the same ten reports, so the real LMS reporting question on a shortlist isn’t which reports a vendor has. It’s what writes the numbers behind them, and what each one stops being able to tell you the moment somebody asks a follow-up question. This guide goes report by report: what each one honestly measures, where the platform’s data ends, which system already holds the answer instead, and the five reports to make every vendor produce live on your own course and your own team list before you sign anything.

Take your real material into the demo: the course you already have and the list of people who have to take it will tell you more in ten minutes than any feature comparison.

Key Takeaways

  • Every number on an LMS dashboard is built from four stored fields: an enrollment record, a status the course writes back, a timestamp, and a score. A question that can’t be assembled from those four has no reporting feature behind it.
  • “Complete” has no single definition. Two platforms can show two different completion rates for the same course and the same people, and both can be correct.
  • The reports that change what you do are the drop-off point and the question-level breakdown. Completion and time spent mostly tell you what already happened.
  • Three questions no learning platform answers: did behavior change on the job, did the business number move, and what would have happened without the training.

Every LMS Report Is Built From Four Fields

A learning platform stores far less than its dashboard implies. Behind every chart there are four things: an enrollment record saying this person was assigned this course, a status the course writes back, a timestamp for when that status arrived, and a score if the course produced one.

That’s the whole raw material. Every report you’ll be shown is those four fields counted, grouped or filtered a different way. So if a question you’ve been asked can’t be assembled out of enrollment, status, time and score, no amount of reporting will answer it, and no vendor can sell you the answer.

Once you hold that, the standard report set stops being a feature list and becomes a set of known limits.

Report What it honestly answers What it looks like it answers, and doesn’t
Completion rate How many assigned people reached whatever this course calls “done” Whether anyone learned anything
Time spent How long the course was open between opening and leaving Attention, effort, or how difficult the material is
Drop-off point Which lesson people stop at Why they stopped
Question-level results Which questions people get wrong Which people are weak
Score and pass rate How people did against the pass mark you set Whether the pass mark is set correctly
Certificates issued Who passed, and on what date Who is still current today
Activity by date When records were written When the learning happened

Take that table into the demo. Ask each vendor which of the right-hand claims their sales deck is quietly making.

Completion Rate: Ask What Writes “Complete”

Completion is the number your director will quote back at you, and it’s the one with no fixed definition.

Depending on the platform and the course, “complete” can mean any of three different events:

  • The learner reached the last page.
  • The learner passed a quiz at the pass mark you set.
  • The content itself sent a completed status back from the inside.

A course that marks completion on the last page will nearly always look better than the same course marking completion on a passed assessment.

So two platforms can report two different completion rates for the same course and the same people, and neither is broken. This also bites inside one platform: change how a course is built and your month-over-month trend moves for reasons that have nothing to do with your team.

Packaged content decides this for you. When a course is imported as a package, the package’s own author chose what counts as done, and the platform records whatever arrives. That’s the practical difference between a status a package writes back and a richer stream of statements, which SCORM and xAPI handle differently.

Ask every vendor one question and get the answer in writing: what event sets a course to complete here, and can I change it? Without that sentence, your vendor comparison and your own trend line are both meaningless.

Time Spent Is the Number to Stop Reporting

Time spent is the least trustworthy figure on the dashboard, and it’s usually the first one people put in a board pack.

It’s wall-clock time between opening the course and leaving it, as reported by the content itself. A learner who opens a module and goes to lunch adds an hour. A learner who closes the browser tab instead of exiting properly can send back nothing at all, so a person who did the work shows as zero.

It isn’t attention, it isn’t effort, and it isn’t a measure of how hard the material is. Averaged across a team, it produces a number that looks precise and can’t be defended.

Drop it from the monthly report. If somebody insists, rename it to what it is, session length. It’s only useful as a flag on a single record: one person with forty minutes on a five-minute module is a conversation, not a statistic.

The Drop-Off Point Is the Number That Tells You What to Fix

The completion rate tells you people left. The drop-off point tells you where, and only one of those is actionable.

If a course loses a chunk of people at lesson four, you have a lesson-four problem, not an engagement problem. Maybe lesson four is where the video is twelve minutes long, or where the policy language starts, or where the quiz asks about something the course never covered. You can go and look.

It’s also the cheapest fix in training. Rebuilding a course because completion is low costs weeks. Rewriting one lesson costs an afternoon and usually moves the same number.

So read drop-off before completion every month. Take the course with the worst completion rate, fix the lesson people stop at, and check the same number after the next cohort. That’s the only proof the fix worked.

Question-Level Results Are the Only Report That Changes What You Build

Completion tells you somebody finished. Question-level results tell you whether the course taught.

If most of a cohort misses the same question, that isn’t a fact about the people. It’s a fact about the lesson before it, which either didn’t cover the point, covered it in language they don’t use, or covered it four lessons earlier and never came back. Assessment data is the only report that points at a specific paragraph you can rewrite.

The common response is the wrong one: the question gets rewritten to be easier, the pass rate recovers, and nothing has been taught. Fix the lesson, not the question. If the question is genuinely ambiguous, that’s a separate defect, and it shows up as a question people who passed everything else still get wrong.

Two things make this usable: quizzes inside the course rather than only at the end, and a report broken down per question rather than per person. Quiz building and analytics are on every Mini Course Generator plan, and most platforms carry some form of both, so the thing to check isn’t whether reporting exists. It’s the shape. Ask to see the per-question breakdown on screen, not a summary score.

Run it after every cohort. One rewritten lesson per cycle beats a redesign.

Certificates Tell You Who Passed, Not Who Is Still Current

Certificate reports count issuance. Audits ask about currency. Those are not the same question, and the gap between them is where compliance programs get caught.

A platform can usually tell you how many people hold a certificate for a course. What it typically can’t tell you is how many of those certificates lapsed last month, which is the version an auditor or a regulator asks about. A tick in a box can’t express “was compliant, isn’t any more”. It has no way to hold the difference between never trained, trained, due for a refresher, and expired.

So keep the expiry state somewhere built to carry it. A training matrix with a proper set of states, including an explicit expired state, holds the fact the dashboard can’t. Feed it from the platform’s certificate export rather than maintaining it by hand.

Before you sign, ask the vendor to show you a list of people whose certification expires in the next ninety days. If the answer is a spreadsheet export plus a formula you write yourself, that’s fine, but you need to know it now and not during an audit.

Content You Didn’t Build Reports on Its Own Terms

The moment your library includes content somebody else built, your reporting becomes uneven, and nobody warns you at the point of purchase.

An imported package reports only what its author chose to send back, and authors choose differently:

  • Some return a completion status and nothing else.
  • Some return a single final score.
  • Some return question-level data on every answer.

Your platform can’t invent what the package never sends, so the report that works beautifully on the course you built can be blank on the compliance module you bought.

This is the sequencing mistake that costs the most. The library decision and the platform decision get made separately, months apart, and the reporting gap shows up after both contracts are signed.

Mini Course Generator sits on both sides of it: it exports SCORM packages, and a course built in it can also hold a SCORM activity produced in another system as a block, with tracking on how learners interact with that activity. That’s a block inside a course rather than a wholesale library import.

Ask any vendor which reports go blank on bought content, and ask your content supplier what its packages report back. Both answers before either contract.

How Learners Get In Decides What You Can Report

This is the cheapest mistake to avoid and the one most often made on day one: the access method you choose at setup decides what your reports can contain forever.

A course opened by a plain public link gives you visit counts, not people. There’s no enrollment record, so there’s no “who hasn’t done it yet”, no reminder list, and nothing to hand an auditor. A report with names in it needs an access mode that identifies the learner before they start:

  • An emailed invitation tied to one person.
  • A verified email address.
  • A password wall.
  • Single sign-on from your own systems.

Mini Course Generator handles this through Gateways, which offers six ways to control who gets into a course, from open to everyone through to specific named learners and in-app authentication. Most platforms have an equivalent set. The point isn’t the feature, it’s the order of operations.

Choose the access mode from the report you need, not from what’s easiest to send. Write the sentence your report has to produce first, for example “every warehouse supervisor completed the manual handling refresher before 31 March”, then pick the access method that can produce it.

Rollups by Team, Department or Client Are a Plan Question

“Can I see results by department?” reads like a reporting question. It’s almost always a plan question, and it’s where quotes come apart.

Rollups need two things: somebody has to tell the platform who belongs to which team, and somebody other than you has to be allowed to log in and look. That second part is team seats, and seats are usually tiered. Reporting for a separate customer or client account is a different capability again, and it typically sits higher still.

Mini Course Generator includes reporting on every plan, tiers team seats across the higher plans, and offers account-based reporting for your customers’ admins near the top of the range. What it does not have, and won’t pretend to have, is multi-tenancy: no sub-accounts, no separate instance per client, no reseller tier. If you need a genuinely separate portal for each client, the honest answer here is no.

Take your org chart to the demo. Hand it over, and make them reproduce two levels of it live, with a second login that sees only one branch. Then check what that costs on the pricing page rather than in the proposal, and if you’re comparing several vendors, work out the full cost of an LMS across seat tiers before the rollup requirement changes which plan you’re actually buying.

Where the Platform’s Data Ends, and Which System Already Holds the Answer

Three questions no learning platform can answer, stated plainly.

  • Did behavior change on the job?
  • Did the business number move?
  • What would have happened without the training?

The data that would prove the first two lives in systems the platform never sees. The third isn’t a software problem at all, it’s a study-design problem, and no amount of data solves it, because nothing separates a training effect from everything else that changed that quarter.

Saying that out loud to your director buys more credibility than any dashboard screenshot. Then route each question to the system that already owns the number.

The question you were handed Where the number actually lives
How fast are new hires productive? Your HRIS, plus the manager’s own sign-off on the ramp checklist
Are we keeping people longer? Your HRIS
Has support load dropped? The ticket queue
Are reps hitting quota sooner? The CRM
Did call quality improve? The QA scorecard
Are incidents down? The safety log
Do we have a skills gap? A skills framework you maintain, not a learning platform
Did the training cause any of it? No system owns this

That last row is not a gap in your platform. It’s the honest state of the field.

The skills-gap row is worth saying plainly about our own product too: Mini Course Generator has no skills taxonomy, no competency mapping and no workforce-planning data, so it can’t produce a skills-gap report and doesn’t claim to. It’s a course platform with a reporting surface, not an analytics platform, and any vendor telling you otherwise is selling you a chart.

For the wider question of which numbers to commit to before anyone asks, what to measure and what to leave alone is the next decision after this one. If your learners are customers rather than employees, the routing works the same way but the owning systems differ, and customer education has its own measurement rules.

What Leaves the Platform Matters More Than What the Dashboard Draws

The report your director wants is a joined one. It has training data on one side and something from the business on the other, and nobody builds that inside a learning platform.

So the question that matters most in a demo is not what the dashboard draws. It’s what can get out, in three forms:

  • A scheduled file you can open in a spreadsheet, without asking anyone.
  • An event fired the moment somebody finishes, so another system can react without a person copying a row.
  • An interface a developer can call if you ever need the data somewhere else.

“Dashboards only” is a real answer, and it means your monthly report is manual forever. Budget four hours a month for the rest of the contract and decide whether that’s acceptable.

Mini Course Generator covers all three at different levels. Webhooks and connections through Zapier, Make, a WordPress plugin and the MCG App for Intercom handle the event side, and a REST API with headless delivery sits on the top, talk-to-us plan. Content is exportable as PDF or SCORM packages at any time, which matters more than it sounds: an export you control is what makes leaving a platform survivable.

Ask all three in the demo, in this order: can I schedule an export, can you fire an event on completion, is there an API. Then work out what to connect to what, and in what order. Event-driven automations are usually first, because they remove the manual step that gets skipped in a busy month.

Five Reports to Make a Vendor Run Live on Your Own Data

This is the decision. Not which platform has the best reporting, but which five things you make each vendor do, live, with your material, in the room.

Send the material ahead of the call:

  • One course you built.
  • One package you bought.
  • A list of thirty real people with their departments.
  • The sentence your monthly report has to produce.

Then ask for these five.

  1. Upload both courses and run the same report on each. One course you built, one bought package. The failure to watch for is a report that’s full for the first and half empty for the second, which is the whole content-you-didn’t-build problem showing up in ten minutes.

  2. Enroll a real group and produce a per-question report for one lesson. Not a summary score. The breakdown that names which question people missed. If it only exists as a per-person list, you can’t use it to fix a lesson.

  3. Produce a rollup by department, using your org chart. Then have them log in as a manager who should see one department and nothing else. This is where seat tiers and permissions surface, and it’s the demo step vendors most often want to defer.

  4. Export the result to a file, on a schedule. Have them set it up, not describe it. Open the file. Check that it contains the person, the course, the status, the date and the score, and that the status column means what you think it means.

  5. Show the record after somebody leaves the company. Ask them to deactivate a learner and show you what happens to that person’s completions and certificates. Does the record survive, does it stay in the report, and can you still produce it for an audit two years later? Almost nobody asks this, and the answers vary wildly.

Add one question that isn’t a report: what event sets a course to complete here, and can I change it? Get that in writing alongside the quote.

Every one of these five fails somewhere with somebody, and none of the failures appear in a feature list.

Questions That Come Up Most

Why do two platforms show different completion rates for the same course?

Because “complete” isn’t defined the same way. One may mark completion when the learner reaches the last page, another when they pass a quiz at the pass mark, another only when the content itself sends a completed status back. Get the definition in writing from each vendor before you compare their numbers, or you’re comparing three different measurements.

Why is question-level data missing on some of our courses?

Almost certainly because those courses were imported as packages built somewhere else. A package reports only what its author chose to send back, so some return a completion status and nothing more. Ask your content supplier what its packages report, and ask your platform which reports go blank on imported content.

Can I get reports broken down by department or store?

Usually yes, but it’s a plan question rather than a feature question. You need somewhere to record who belongs to which group, and enough seats for the managers who’ll look. Take your org chart to the demo, make them build two levels of it live, and check what that needs in seats before you accept a quote.

Can an LMS prove training ROI?

No, and a vendor who says otherwise is overselling. A learning platform shows what people did inside the course. It can’t see whether behavior changed on the job, it can’t see the business number, and nothing tells you what would have happened without the training. Route those questions to the HRIS, the ticket queue, the CRM or the safety log, and say plainly which ones nobody can answer.

The One-Page Monthly Report Your Director Will Actually Read

Four numbers and one sentence. That’s the whole report, and it fits on one page because everything on it can be defended.

  • On-time completion for the courses that carry a due date, with the definition of complete written underneath in six words.
  • The lesson people stop at, for the course with the worst completion rate.
  • The one question most people missed last month.
  • The number of certificates expiring in the next ninety days.

Then the sentence, which is the only part that matters: what you changed because of those numbers. “We rewrote lesson four of manual handling after 30 percent stopped there” is a monthly report. A dashboard screenshot isn’t.

Do one thing first: write down the report you’ve already promised, in a single sentence, before Thursday’s call. Then make each vendor produce it live on your own course and your own list. A platform that can’t do it in the demo won’t do it in month three either.

Once you know which report you need, you can build the course that produces it from material you already have and stop waiting for the platform to invent data nobody stored.

Sources

  • Mini Course Generator’s published plan inclusions, for reporting and quiz building being part of every plan, team seats across the higher plans, and account-based reporting for customers’ admins
  • Mini Course Generator product documentation for Gateways and its six learner-access options, the SCORM Upload Block and the interaction tracking it provides, the integration set (webhooks, Zapier, Make, the WordPress plugin and the MCG App for Intercom), the REST API and headless delivery on the top plan, and content export as PDF or SCORM
  • The published behavior of SCORM and xAPI course packages, for what a package reports back to a platform and what it does not

Start creating mini-courses today

Build interactive, AI-powered mini-courses in minutes — free to start.