Writing a term's worth of report cards without the pronoun mistakes
Report writing season is a fortnight of the same sentences, retyped thirty times with one word changed. This tool keeps the school details, the subject list and the grade scales in one place, gives you a bank of phrases that put the right name and the right pronouns into every report, and prints the whole class one report to a page. Here is what each part does and where the traps are.
The mistake that gets noticed at home
Ask any teacher what goes wrong with report cards and you will get the same answer. Somewhere in the pile there is a report that calls a girl "he", because the sentence was copied from the boy before her and only half of it was changed. Parents notice immediately. It reads as though nobody looked at their child closely enough to know which words applied.
It happens because the sensible thing to do is also the dangerous thing to do. No teacher writes thirty reports from a blank page. They keep a document of phrases that say what needs saying, and they paste. The pasting is fine. The problem is that a pasted sentence carries the last child's name, the last child's pronouns, and sometimes the last child's subject, and a person checking their own work at eleven at night reads what they meant to write rather than what is on the screen.
So the phrases here are not stored as finished sentences. They are stored with gaps in them. The gaps are filled in against whichever pupil is open at the moment you click, and if you would rather they stayed as gaps until the reports go to the printer, there is a setting for that too.
Typing the school details once
The panel on the right holds everything that is the same on every report. The school name and a second line under it, which most schools use for the address or a phone number. The term and the school year. The class or form. The class teacher and the head teacher, whose names appear against the signature lines at the foot of each report.
There is a date box for the date of the report itself, and a separate setting for how dates are written. Five styles are offered: 24 July 2026, 24/07/2026, July 24, 2026, 07/24/2026 and 2026-07-24. The choice matters more than it looks. A report that goes home in a British school with the date written 07/24/2026 looks like it came from somebody else's template, and a date of birth written 03/11/2014 means two different days depending on which side of the Atlantic you read it. Whatever you choose applies to the report date and to any date of birth, so the two can never disagree.
None of these need retyping between pupils. Fill them in once at the start of the evening and they sit on every report you write afterwards.
The subject list and the two grade scales
Subjects go in one to a line, in the order you want them printed. The list that comes loaded is a typical upper primary set: English, mathematics, science, history, geography, art and design, music, physical education and computing. Replace it with your own. A secondary form tutor collating from other departments will want a longer list; a specialist teacher writing about one subject can cut it to a single line.
Two separate scales sit underneath. Attainment is what the child can do, and effort is how hard they tried, and the whole point of printing them side by side is that they are not the same thing. A child can be working at the top of the class while coasting, and another can be a long way behind while trying harder than anyone. A single grade hides both cases.
Attainment offers A* to E, 9 to 1, percentages, the primary wording of working towards, expected standard and greater depth, a plain excellent to poor set, or a list of your own typed in with commas. Effort has its own choice of words, numbers one to four, letters A to D, or again your own. Where a numbered or lettered effort scale is used, a key line prints under the subject table saying what the numbers mean, because a parent reading "3" with nothing to compare it to has no idea whether to be pleased.
Percentages are the one attainment scale that behaves differently. A list of a hundred options in a dropdown would be absurd, so choosing percentages swaps the dropdown for a number box, and anything that is not a number between nought and a hundred is flagged. If you switch to percentages after typing letter grades, the letters stay where they are and you are told they are not numbers, rather than having them quietly deleted.
Getting the class in without typing it
Typing thirty names is twenty minutes you do not have. Every register system will export a class list, so paste the block into the class list box at the foot of the panel, or open the file directly.
A header row is read if there is one. The columns understood are name, known as, pronouns, form, date of birth, possible, present, authorised, unauthorised and late, and spellings vary enough that several forms of each are accepted: "forename", "preferred name" and "known as" all mean the same thing here, as do "authorised" and "authorized". Commas, semicolons, tabs and pipes are all recognised as separators, so an export made for a European spreadsheet works as well as one made for an English one.
The pronoun column takes whatever your system produces. She, her, she/her, F, female and girl all mean the same, as do the equivalents for he and for they. Anything unrecognised, or a missing column, gives they, which reads correctly for anybody and can be changed on the pupil's own line in a second.
If there is no header row at all, the first column is taken as the name and the second is guessed: if it looks like a pronoun it becomes one, otherwise it is treated as the name the child is called. A plain list of names one to a line works perfectly well and is often the fastest thing to produce.
Rows that hold nothing but stray punctuation are skipped, because spreadsheet exports frequently carry a line of commas at the bottom and a report addressed to ",,," helps nobody. You can choose whether the list you bring in replaces the class or is added to it, which is what you want when a new child joins after you have already started.
Working through the class one child at a time
The panel on the left is one report. At the top are the child's own details, then attendance, then a row for each subject with an attainment grade, an effort grade and a comment box. Below that sits the general comment and the targets for next term.
Press Next and the whole thing is stored and the following child appears. Press Previous to go back. The dropdown at the top jumps straight to anybody in the class, which matters when a parent rings on Tuesday about a report you wrote on Sunday. Add pupil puts a blank report at the end for a late arrival, and Remove takes one away.
Effort grades and per-subject comments can both be switched off if your school's report is simpler than that. Switching them off removes the columns from the printed report and from the file you download, but nothing you have typed is thrown away, so you can turn them back on and it is all still there.
The preview underneath is the actual report, updating as you type. It is not a rough approximation of the printout; it is the printout, which is why there is no separate preview button and no surprise when the paper comes out of the machine.
How the placeholders work, and the rule most people get wrong
A phrase in the bank looks like this: "{He} {has} made good progress in most subjects." Click it against a girl and it arrives as "She has made good progress in most subjects." Click it against a child who uses they and it arrives as "They have made good progress in most subjects."
That second one is where hand-editing fails. Swapping he for they and leaving the rest alone gives "They has made good progress", which is wrong in a way that is very hard to see when you are reading your own writing. "They" takes a plural verb. So {is} becomes are, {was} becomes were, {has} becomes have and {does} becomes do, and the endings {s} and {es} disappear entirely, turning "tackle{s}" into "tackle" rather than "tackles".
Now the rule people get wrong. Agreement follows the subject of the clause, not the child. "Rowan works hard" is correct however Rowan refers to themselves, because the subject of that sentence is a name, and names are third person singular whatever pronouns go with them. Only when the subject is the pronoun itself does the verb change. Every phrase in the bank is written to that rule: after {name} the verb is spelled out plainly, and the verb placeholders appear only after a pronoun. If you write your own phrases, copy that habit and they will behave.
Capitalisation follows the placeholder. Write {He} and you get She, He or They with a capital letter for the start of a sentence; write {he} and you get the lower-case version for the middle of one. The same applies to {his}, {him} and {himself}. The name that gets used is whatever is in the known as box, falling back to the first word of the full name, so a report about Daniel Novak can call him Danny throughout while the heading still carries his full name.
There are seventy-odd phrases across ten headings: opening lines, progress, effort and attitude, behaviour, homework, speaking and group work, things to work on, targets, short subject comments and closing lines. They go into whichever comment box you last typed in, which means you can click into the science comment, pick a subject phrase, and carry on. Nothing is locked: once a phrase lands in a box it is ordinary text and you should change it until it says something true about that particular child.
Attendance, and the sum that catches a slip
Five figures make up the attendance block: possible, present, authorised absence, unauthorised absence and late marks. The percentage is worked out as present divided by possible, shown to one decimal place.
The useful part is the check underneath. Present plus authorised plus unauthorised should come to exactly the possible figure, because every session is one of those three things. If it does not, you are told what it does come to and that one of the five boxes is wrong. That catches the commonest slip in the whole job, which is copying a figure from the wrong row of the register and sending a child's parents an attendance record that does not add up.
Whether the figures are sessions or days is a setting, because primary schools generally count sessions, two to a day, and the wording on the printed report should match whatever the number actually is. Late marks are printed but deliberately left out of the percentage, since a late child was present.
Printing the class, one report to a page
Print this one sends the open report to the printer on its own, which is what you want when a parent asks for a copy in March.
Print all sends the lot, with a page break after every report so that no child's targets end up on the back of somebody else's science comment. Only the report itself reaches the paper: the editing panel, the set-up panel, the site header and everything else on the page are left out, and the page is laid out for A4 with a twelve millimetre margin.
Subject rows, the attendance block and the signature lines are all kept whole rather than being allowed to split across a page break, which is the difference between a report that looks typeset and one that looks like a printout. If a report runs long because every subject has a full paragraph, it will flow onto a second sheet rather than being squeezed.
The signature lines can be switched off. When they are on you get three: class teacher, head teacher and one for the parent or carer to sign and date, which is how most schools get the acknowledgement slip back.
Keeping the work, and moving it about
Everything is saved in this browser as you type. Close the tab in the middle of the eleventh report, come back after tea, and the eleventh report is where you left it. It survives a reload and a crash. What it does not survive is a different computer, a different browser, or a cleared cache, and school laptops do get wiped.
So save a .json when you stop for the night. That file is the whole class: every grade, every comment, the subject list and the scales. Opening it puts all of it back. It is also how a set of reports gets to somebody else, whether that is a job share partner writing the other half of the class or a head of year adding a comment at the bottom.
The .csv download is a different thing and answers a different need. One row per child, with a column for each subject's attainment, effort and comment, plus attendance and the general comment. That is the shape a school office wants for its own records, and it opens straight into a spreadsheet with accented names intact.
Start over clears everything and puts the worked example back. It asks twice, because a term's writing should never be one stray click from gone.
Things it deliberately does not do
There is no crest or logo upload. A picture would have to be stored somewhere, and storing school images alongside children's comments is a bigger promise than a free tool should make. The line under the school name carries the address or the strapline, which covers most of what a header needs.
It does not work out class averages, rankings or position in class. Those belong on a mark sheet rather than on something that goes home, and putting a child's rank in front of a parent tells them about the other twenty-nine children rather than about their own.
It does not write the comment for you. The bank offers sentences that are true of somebody, and choosing which ones are true of this child, then editing them until they fit, is the part that makes a report worth reading. A report assembled entirely from unedited stock phrases reads exactly like what it is.
Renaming a subject keeps everything attached to it, so changing science to combined science leaves every grade and comment in place. Deleting a subject line does delete its comments for the whole class, which is why clearing the subject box by accident leaves the old list standing until you type a replacement.
Where the data stays
Children's names, grades, attendance and written comments about their behaviour are among the most sensitive things a school holds. None of it leaves the machine you are sitting at. There is no account, no upload, no server that sees a name, and nothing to delete afterwards on somebody else's system because nothing was ever sent to one.
You can prove it: load the page, pull out the network cable or turn off the wireless, and write the whole class anyway. Everything still works, because everything was already running in front of you. The files you download are written by the browser onto your own disk.
That matters practically as well as legally. A school with rules about which services may handle pupil data does not need to add this one to a list, because there is no service. The only copies of a set of reports are the ones on your computer and the ones you print.
