---
title: "Get Exercise Stats"
method: GET
path: "/admin/exercise-stats"
tags: ["Admin - Exercise Stats"]
---

# Get Exercise Stats

`GET /admin/exercise-stats`

Get cached exercise completion analytics.
Returns None for stats if no cached data exists.

## Response `200`

Successful Response

- RoutersAdminExerciseStatsExerciseStatsResponse — Response model for GET /admin/exercise-stats.
  - `computed_at` string, date-time, nullable
  - `is_computing` boolean, required
  - `self_practice_stats` ExerciseCompletionStats — Statistics for a source group (self_practice or teacher_assignment).
    - `source_type` 'self_practice' | 'teacher_assignment', required
    - `student_count` integer, required
    - `mean_ratio` number, required
    - `median_ratio` number, required
    - `std_ratio` number, required
    - `min_ratio` number, required
    - `max_ratio` number, required
    - `zero_ratio_count` integer, required
    - `full_ratio_count` integer, required
    - `mean_finished` number
    - `median_finished` number
    - `std_finished` number
    - `min_finished` integer
    - `max_finished` integer
    - `mean_total` number
    - `median_total` number
    - `std_total` number
    - `min_total` integer
    - `max_total` integer
    - `heatmap_data` HeatmapDataPoint[], required
      - `finished` integer, required
      - `total` integer, required
      - `count` integer, required
    - `histogram_data` HistogramBucket[], required
      - `bucket_start` number, required
      - `bucket_end` number, required
      - `count` integer, required
  - `teacher_assignment_stats` ExerciseCompletionStats — Statistics for a source group (self_practice or teacher_assignment).
    - `source_type` 'self_practice' | 'teacher_assignment', required
    - `student_count` integer, required
    - `mean_ratio` number, required
    - `median_ratio` number, required
    - `std_ratio` number, required
    - `min_ratio` number, required
    - `max_ratio` number, required
    - `zero_ratio_count` integer, required
    - `full_ratio_count` integer, required
    - `mean_finished` number
    - `median_finished` number
    - `std_finished` number
    - `min_finished` integer
    - `max_finished` integer
    - `mean_total` number
    - `median_total` number
    - `std_total` number
    - `min_total` integer
    - `max_total` integer
    - `heatmap_data` HeatmapDataPoint[], required
      - `finished` integer, required
      - `total` integer, required
      - `count` integer, required
    - `histogram_data` HistogramBucket[], required
      - `bucket_start` number, required
      - `bucket_end` number, required
      - `count` integer, required

---

[API](https://skmtc.dev/excellence-ai/apis/excellence-learning.md) · [All operations](https://skmtc.dev/excellence-ai/apis/excellence-learning/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/excellence-ai/excellence-learning/revisions/c407f3b5a05b/schema)
