> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vacademy.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Progress reports

> A learner's attendance, scores, study time and progress, for the AI app to write their report.

Each tool below is one switch in **Settings → MCP Server**. Your AI app sees a tool only when it is switched on for your role; every call is checked again on the server.

## `learner_report`

**Progress reports: view data** · Read only

Let the connected AI app read the data behind a learner's progress report — attendance and every live class, test scores with rank and class average, marks by subject, study time and what was studied, course progress next to the batch average, assignments with feedback, doubts with their replies and the analysis of each attempt — plus the reports already generated in the dashboard, so it can write the report for you. Read-only. The AI app writes the report itself, so it uses no AI credits.

| Action | What it does |
| :- | :- |
| `guide` | what every field means, the dashboard report's status/grade rules and how to write a grounded report. Read it once before writing. |
| `data` | `report` = the facts the dashboard report is built from (attendance, live classes, assessments with rank/percentile/class average, marks by subject, study habits, course progress, certificates, assignments, doubts, logins, topic mastery / Bloom's / confidence / misconceptions); `detail` = what that report throws away (every live class, per-module progress next to the batch average, what was studied slide by slide, assignment submissions with feedback, the doubts' text and replies, and the analysis of each attempt). Ask for only the modules / detail the admin's report needs when the window is long. |
| `saved_reports` | progress reports already generated in the dashboard (to compare periods). |
| `saved_report` | one of them in full. |

<Accordion title="Parameters">
  <ParamField path="action" type="string" required>
    The action to run: `guide`, `data`, `saved_reports`, `saved_report`.
  </ParamField>

  <ParamField path="learner_id" type="string">
    The learner's learner\_id (from learners find).
  </ParamField>

  <ParamField path="start_date" type="string">
    data: window start, YYYY-MM-DD.
  </ParamField>

  <ParamField path="end_date" type="string">
    data: window end, YYYY-MM-DD (inclusive).
  </ParamField>

  <ParamField path="batch_id" type="string">
    data: one of the learner's batch\_ids (from learners get) to scope progress / assignments. Default: their latest batch.
  </ParamField>

  <ParamField path="modules" type="string[]">
    data: report sections to include. Default: all.
  </ParamField>

  <ParamField path="detail" type="string[]">
    data: detail parts to include. Default: all but attempt\_details (the per-question input of each attempt — large). \['none'] = no detail.
  </ParamField>

  <ParamField path="attempt_limit" type="integer">
    data: newest attempts to include in attempt\_insights (default 10, max 50; attempt\_details max 15).
  </ParamField>

  <ParamField path="report_id" type="string">
    saved\_report: a report\_id from saved\_reports.
  </ParamField>

  <ParamField path="page" type="integer">
    saved\_reports: page, from 0.
  </ParamField>
</Accordion>

<Accordion title="What your AI app is told about this tool">
  ```text theme={null}
  A learner's progress-report data, for YOU to write the report (for the admin, a parent or the learner). Read-only; uses no AI credits — you are the writer. Pick an `action`:
  - guide: what every field means, the dashboard report's status/grade rules and how to write a grounded report. Read it once before writing.
  - data (learner_id, start_date, end_date — YYYY-MM-DD, default the last 30 days, max 366 days; optional batch_id, modules, detail, attempt_limit): `report` = the facts the dashboard report is built from (attendance, live classes, assessments with rank/percentile/class average, marks by subject, study habits, course progress, certificates, assignments, doubts, logins, topic mastery / Bloom's / confidence / misconceptions); `detail` = what that report throws away (every live class, per-module progress next to the batch average, what was studied slide by slide, assignment submissions with feedback, the doubts' text and replies, and the analysis of each attempt). Ask for only the modules / detail the admin's report needs when the window is long.
  - saved_reports (learner_id): progress reports already generated in the dashboard (to compare periods).
  - saved_report (report_id): one of them in full.
  Get the learner_id from learners(action='find'). Never invent numbers: every figure you write must come from this data.
  ```
</Accordion>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.