Quiz Statistics Report
The quiz statistics report gives instructors and admins the headline numbers for a quiz: how many times it has been taken, the average score, and the pass rate. It also exposes per-question numbers so you can see which questions are hardest.
What you can do
- See how many graded attempts a quiz has had, right in the Quizzes list.
- Read a quiz's average score and pass rate to judge whether it is too easy or too hard.
- Drill into a single question to see how many times it was answered and its average score.
- Spot questions that separate strong students from weak ones using a discrimination number (once a question has enough answers).
- Pull the same numbers over the REST API to feed your own dashboard or an AI assistant.

How to use it
Go to Learnomy > Quizzes. The list table shows one row per quiz with its Attempts count and its Passing score.
Let students take and finish the quiz. Statistics are built only from attempts that have been graded, so an in-progress or ungraded (for example essay-pending) attempt is not counted yet.
Read the Attempts column to see the total number of graded attempts for each quiz.
For the full figures - attempt count, average score, and pass rate - request the quiz statistics endpoint (see For developers). These are the three numbers the report is built from.
To find your hardest questions, request the per-question statistics for a question. A lower average score means the question is harder. Once a question has at least 10 graded answers, you also get a discrimination number that shows how well it separates strong students from weak ones.
Settings & options
There is nothing to switch on. The report is read-only and is computed live from quiz attempts, so it is always available once a quiz has graded attempts.
What the numbers mean and where they come from:
- Attempts - the count of attempts on the quiz whose status is
graded. In-progress and ungraded attempts are excluded. - Average score - the average of each graded attempt's
percentage, rounded to two decimals. - Pass rate - the share of graded attempts that passed, as a percentage. An attempt passes when its score meets the quiz's Passing score (
passing_scoreon the quiz), so changing the passing score changes the pass rate. - Per-question times answered / average score - counted from every response to that question across all attempts. Average score is shown as a percentage of the marks available.
- Discrimination - a point-biserial value that only appears once a question has 10 or more graded responses, below which it is not statistically meaningful.
For developers
- Quiz statistics:
GET /learnomy/v1/quizzes/{id}/statistics. Returnsquiz_id,attempt_count,avg_score, andpass_rate. Gated by thecan_managepermission (instructor/admin). - The quiz numbers are computed in
QuizAttempt::get_statistics( $quiz_id ), a single aggregate query over the attempts table filtered tostatus = 'graded'(COUNT(*)for attempts,AVG(percentage)for average score,SUM(passed)for the pass count). - Per-question statistics:
GET /learnomy/v1/questions/{id}/statistics. Returnsquestion_id,times_answered,avg_score_pct, anddiscrimination(null until 10+ responses). Gated bycan_read. - The per-question numbers are computed in
QuestionResponse::get_statistics( $question_id ); the discrimination value is calculated in the questions controller'scalculate_discrimination(). - The same data is exposed as an ability,
learnomy/get-quiz-analytics(categorylearnomy-reporting), described as per-quiz attempt/pass statistics plus per-question difficulty. It takes aquiz_idand is permission-checked against manage access on that quiz.