Local-first teacher reporting

Draft end-of-year reports without losing the teacher voice.

Reports Master helps teachers turn classes, subjects, students, scores, and statement banks into editable report drafts. Data is stored locally by default, with optional AI generation only when enabled by the teacher.

Classes Students Statements Drafts
Year 5 - 5R Statement bank
Maths Effort Missing statement text
English Attainment

{name} {has_have} made secure progress.

Ava Patel

Ava has shown consistent effort and is working securely at the expected level.

Getting started

From blank workspace to report drafts

1

Create subjects and classes

Add the subjects taught in school, then create classes with a year group and class name. A class can have many subjects, and the same subject can be taught across many classes.

2

Add teachers and students

Assign teachers per class subject, with a bulk option for primary class teachers and per-subject overrides for specialist lessons. Students are assigned to classes and receive scores per subject.

3

Complete the statement bank

Reports Master automatically creates every required statement row for your class subjects and score labels. Fill in the missing text once, then reuse it across matching students.

4

Generate, edit, export

Generate rule-based or optional AI-assisted drafts, review and personalise the text, then export final reports as CSV or one-page-per-student PDF output.

Documentation

Core workflows

Classes and subjects

Use the Subjects page as the master list. On the Classes page, choose subjects from that list rather than typing free text. This keeps statement generation and student scoring aligned.

Teacher assignment

In class edit mode, use Set all subjects to to fill every subject with a class teacher, then override individual subjects such as PE, Computing, or Music.

Student scoring

Students belong to a class. Their effort and attainment scores are stored per subject, so primary and secondary class structures can use the same reporting flow.

Statement placeholders

Statement text can include pronoun and grammar placeholders: {name}, {they}, {them}, {their}, {is_are}, {has_have}, {was_were}, and {s}.

Draft protection

Generated drafts are editable. Teacher edits are preserved, and generation skips edited drafts unless a later workflow explicitly replaces them.

Privacy and AI

Reports Master is local-first. Optional AI generation only runs after an API key is saved and the teacher chooses AI generation for a class or all classes.

Import and export

CSV mapping and output

Flexible imports

CSV imports read the header row and let teachers map columns to app fields. Obvious column names are matched automatically before validation and import.

year_group,subjects,class_name
Year 5,"English, Maths, Science",5R

Students

Student imports support names, pronouns, class, subject, effort score, and attainment score. Scores are validated against the current score labels.

class,subject,first_name,last_name,pronoun_set,effort_score,attainment_score
7A,English,Ava,Patel,she-her,1,Expected

Statements

Statement imports update matching auto-created statement rows by year group, subject, score type, and score label.

year_group,subject,score_type,score_label,statement_text
Year 7,English,effort,1,{name} {has_have} shown excellent effort.

Exports

CSV export includes one row per student report. PDF export creates one page per student with all subject report text included.

Desktop builds

Installers are published through GitHub Releases

The release workflow builds Windows and macOS variants when an app-v* tag is pushed.

View repository