---
title: "Get Student Progression"
method: GET
path: "/student/progression"
tags: ["student_progression"]
---

# Get Student Progression

`GET /student/progression`

Skill + theme mastery for the authenticated student's dashboard.

May generate (and persist) v2 evaluations on the fly for first submissions
that don't have one yet — the same cold-start routine the error-analysis
endpoint uses — so the first call after a stretch of activity can take
longer; subsequent calls reuse the persisted evaluations.

## Response `200`

Successful Response

- StudentProgressionResponse — Skill + theme mastery for the dashboard. `student_grade` is null when the student isn't classed; the frontend uses it to decide whether to show the bac-countdown framing. Empty `skills` means "not enough data yet" (the frontend shows a practise-more nudge). Recurring errors come from the EXC-257 endpoint and are merged client-side.
  - `student_grade` string, nullable, required
  - `skills_tracked` integer, required
  - `overall_mastery` number, required
  - `bac_date` string, required
  - `skills` SchemasStudentProgressionSkillMasteryResponse[], required
    - `savoir_faire_id` string, required
    - `name` string, required
    - `chapter` string, required
    - `posterior` number, required
    - `n_observations` integer, required
    - `prior_reason` string, required
  - `themes` ThemeMasteryResponse[], required
    - `chapter` string, required
    - `mastery` number, required
    - `skills_count` integer, required

## Other responses

- `400` — Malformed identifier
- `404` — Resource not found
- `502` — Upstream LLM returned unusable output

---

[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)
