School access code
This tool holds the school’s shared writing data. Enter the access code from your admin to continue.
This tool holds the school’s shared writing data. Enter the access code from your admin to continue.
Sign in to open your class dashboard — your classes are already set up by your admin, on any device you sign in from.
Type your name exactly as your admin entered it on the staff list.
{{ signinPinHint }}
{{ signinCodeHint }}
{{ signinError }}
Whole-class heat map: students across the top, criteria down the left. Colours come from each student’s most recent analysed sample only; the bottom row shows how many samples sit behind each column. Click a name for their annotated samples, goals and progress — a blue name means the sample shown here is a cold write. Ratings are locked against stray clicks — use Unlock editing below to change one; your judgement always wins.
{{ grp.sub }}
{{ grp.provenance }}
| Criterion | % secure | |
|---|---|---|
| {{ crow.text }} {{ crow.prog }} | {{ cell.letter }} | {{ crow.pct }} |
| Samples analysed per student | {{ stuc2.count }} |
No students yet — add your class in .
Bulk-printable cards for the whole class — data cards show progress over time with a date above each sample column (a blue date marks a cold write); goal cards carry each student’s current writing goal; parent summaries are a jargon-free half-page update for families. Print, cut along the dashed lines, and send home or place on the data wall or student desks.
{{ card.meta }}
No analysed samples in this range.
| {{ ccol.label }} | |
|---|---|
| {{ crd.feature }} | {{ ccell.letter }} |
{{ card.legend }}
{{ schoolName }}
My writing goal
{{ gcd.name }} · {{ gcd.cls }}
No goal set yet — set one from this student’s latest sample. This card will not print.
“{{ gcd.text }}”
Example: {{ gcd.example }}
Date set: {{ gcd.dateSet }}
Date achieved: ______________
Sentence-level grammar · {{ gcd.stageLabel }}
What the student can do now (from their latest analysed sample), their current goal, and one way to help at home — pre-filled to match the goal. Edit any card before printing (it saves as you type) or use Suggest for an AI-tailored tip. Parents never see rating codes or the heat map.
{{ schoolName }}
Writing update
{{ pcd.name }} · {{ pcd.cls }} · {{ pcd.printed }}
No analysed samples or goal yet — this card will not print.
What {{ pcd.first }} can do now
Based on writing from {{ pcd.asOf }}
Current writing goal
“{{ pcd.goalText }}”
How you can help at home
Sentence-level writing · {{ pcd.stageLabel }}
Whole-school picture for staff with admin rights — classroom teachers see only their own class. Each cell’s number is the percentage of rated students secure (Got it) on that criterion, from each student’s most recent analysed sample. The colour follows the cohort’s average rating — green mostly Got it, amber mostly Some evidence, rose mostly Not evident.
{{ schoolStats }}
{{ sgp.sub }}
| Criterion | {{ scol.name }} {{ scol.sub }} |
|---|---|
| {{ srow.text }} | {{ scell.pct }} |
Unlike the snapshot above, every analysed sample counts here, grouped by data cycle — each cell is the percentage of all rated criteria secure across the cohort in that cycle. Rising numbers along a row = growth.
| Data cycle | {{ cy }} |
|---|---|
| {{ prow.name }} | {{ pcell.pct }} |
The whole-school picture from each term’s cold write — unedited writing with no AI or teacher feedback, collected in the designated week. Only teacher-approved cold writes from the window (or an admin make-up) count here, one per student per term. Each cell’s number is the percentage of rated students secure (Got it); the colour follows the group’s average rating — green mostly Got it, amber mostly Some evidence, rose mostly Not evident. Track terms reads left to right across the year; Compare classes puts classes side by side for one term. Click an underlined heading for the student-by-student map.
{{ sdStats }}
{{ sdEmptyMsg }}
{{ stg.sub }}
{{ stt.sub }}
| Criterion | {{ stc.sub }} |
|---|---|
| {{ str1.text }} | {{ stcell.pct }} |
{{ stt.openNote }}
| Criterion | |
|---|---|
| {{ sor2.text }} | {{ soc2.letter }} |
{{ sdg.sub }}
| Criterion | {{ sdc.sub }} |
|---|---|
| {{ sdr.text }} | {{ sdcell.pct }} |
Read-only — each column is one student’s approved {{ sdTermLabel }} cold write.
| Criterion | |
|---|---|
| {{ sor.text }} | {{ soc.letter }} |
No samples yet.
“{{ gl.text }}”
{{ gl.meta }}
e.g. {{ gl.example }}
“{{ pgl.text }}”
{{ pgl.meta }}
No goals set yet — suggestions appear beside each analysed sample.
One-off analysis against a different stage — doesn’t affect the class heat map or data cards.
SpokenThis piece was dictated — the spelling and much of the punctuation came from the device, not the student.
{{ smpCwTag }}{{ smpCwNote }}
Submitted by {{ stFirstName }} from the student page — pending your review. It doesn’t count in the heat map, data cards or parent cards until you approve it.
Check the writing and the AI ratings below (adjust any you disagree with), have the goal conversation with {{ stFirstName }}, then approve.
Term {{ smpCwTerm }} cold write — approving also counts it in the whole-school data.
{{ fb.label }}
{{ fb.text }}
Highlights are the evidence. Each carries a chip naming the grammar feature and its criterion number — click a chip to jump to that criterion below, or click a criterion’s number to light up every matching highlight here.
Paper sample — ratings entered manually, no digital text stored.
{{ cr.text }} {{ cr.prog }}
“{{ ev.text }}” {{ ev.note }}
{{ ev.explain }}
{{ cr.aiNote }}
Pattern across samples: {{ cr.flag }}
Drawn from Some evidence (nearly there) and Not evident ratings in this sample. A blue dot marks the next step the student page suggested to this student before they submitted — setting it as the goal keeps their feedback and their goal in step. Choose one focus — or pick any other criterion below. Edit the wording before printing.
“{{ gc.goal }}”
{{ gc.ratingLabel }} · {{ gc.crit }}
{{ gc.how }}
Example: {{ gc.example }}
Research base: {{ gc.research }}
Each column is one sample, oldest first — its date sits above the column. A blue date marks a cold write.
No analysed samples yet.
{{ wizCwNote }}
{{ wizCwBlock }}
{{ wizStageNote }}
AI transcription of handwriting is imperfect — especially young handwriting. Check the transcription against every page and fix it before analysing; the analysis is only as good as the text it reads.
{{ wizError }}
{{ busyMsg }}
{{ wizStudentName }} · analysed against {{ wizStageLabel }}. {{ reviewIntro }}
{{ rc.text }} {{ rc.prog }}
“{{ rev.text }}”
{{ rev.explain }}
{{ rc.note }}
Pattern across samples: {{ rc.flag }}
Every grammatical element in the Sentence-Level Grammar CwT, across all stages, explained in plain language with an example — no prior grammar knowledge assumed. The tag on each term shows the stage where the CwT first expects it.
The same terms written for students, not for staff — student language, student examples, and the Ochre colour code. Each sheet is cumulative: this stage’s new terms are set large, with earlier stages as a reminder strip underneath. Prints on A4 or A3.
{{ gi.def }}
{{ gi.eg }}
Built around one principle: teacher judgement is paramount. The AI drafts; you decide. Every rating, note and goal can be overwritten.
Try everything on the demo class first
3/4 Cobalt — a full worked example with analysed samples, goals and history. Nothing you do in the demo is saved, and it never appears in your school’s data or exports.
{{ gs.body }}
{{ lg2.label }} — {{ lg2.desc }}
Goals are only ever drawn from Not evident and Some evidence.
Some evidence vs Got it — the key distinction. Some evidence means the feature appears once, or appears more than once but inconsistently or only partly correct — one adjectival clause in a whole report, or "because" clauses that keep missing their comma. Got it means the feature is used correctly more than once, in different sentences, without prompting — you would trust the student to do it again tomorrow in a new piece. Criteria worded in the plural (“phrases or clauses”, “sentences”) deliberately require more than one instance — the AI analysis is held to the same rule and must quote two distinct pieces of evidence before awarding Got it.
One sample is one snapshot. A feature can be secure in a recount and invisible in a procedure. Rate what this sample shows; the heat map and progress views do the accumulating for you.
The sparing-use exception. Exclamatory and interrogative sentences are used deliberately and rarely — one well-placed use per text is the mastery behaviour, so the once-only rule would keep them at Some evidence forever. When one of these is rated Some evidence but has also appeared correctly in two or more earlier samples, the tool shows a Pattern across samples flag on that criterion with a one-click Rate Got it. The rating never changes automatically — the flag is a prompt, and the decision is yours.
The multi-part exception. A few criteria name the sentence types they require — simple, compound and complex sentences of varying lengths (Stage 2 and 3) and a combination of simple and compound sentences (Stage 1). Two quotes cannot prove a three-part claim, so for these criteria only, the AI provides one labelled quote per required type (“simple: …”, “compound: …”, “complex: …”). Got it = all named types present and genuine variation in sentence length; Some evidence = only some of the types, or all types but uniform lengths. Every other criterion keeps the standard two-quote cap.
Most recent sample only. Each student’s column shows the ratings from their single most recent analysed sample. It is a snapshot of where they are now — not an accumulation or average of every sample collected.
Earlier samples are never lost. They stay on the student’s page, and the Progress over time view lines every sample up side by side so you can see growth.
How many samples sit behind the map? The line above each map states how many students have an analysed sample and the total collected; the bottom row of the map shows the count for each individual student.
Your overrides carry through. Clicking a cell on the map (or changing a rating on the sample page) updates the most recent sample itself, so the map and the student record always agree.
{{ ri.name }}
{{ ri.note }}
Honesty note. {{ honestyNote }}
Criteria are taken verbatim from your Sentence-Level Grammar CwT Progression of Learning document (NSW English K-10 Syllabus, CWT outcomes ENE-CWT-01 → EN3-CWT-01). Progression codes reference the National Literacy Learning Progressions — CrT and GrA sub-elements only, and only the codes named in your tracking documents.
Everyone here appears on the sign-in screen and lands straight on their own class, from any device. The admin ticked “backup reminder” is the primary admin — only they get the weekly prompt. Admins see the whole-school view and manage staff, class lists and backups.
Load every teacher’s roll before they first sign in. Accepts your roll format — an optional Teacher,<name> line, then one <class>,<student> row per student. Existing classes gain any missing students; nothing is deleted.
{{ csvMsg }}
One designated week each term when the whole school collects a cold write — an unedited piece with no AI or teacher feedback. During the window every class’s student page switches to cold-write mode automatically, and approved pieces count toward the whole-school data (one per student per term; a later one only counts if you delete the first). Teachers set their own class prompt in the Cold writes section below.
Make-ups you grant on a student’s profile stay open until this date — set it to the last day of the term.
{{ cwWindowStatus }}
“Analysed against” sets the stage each student’s writing is measured on — a Stage 2 class member can be analysed against Stage 1 content.
Students open student.html at the same web address as this tool and sign in with their personal writing code. They see only their own goal and submissions — never anyone else’s — and anything they submit waits as pending on their profile until you approve it.
DEMO — demo writing never joins the class data.
{{ cs.code }}
{{ cwClassIntro }}
Students see this on their page during any cold write. Leave it blank and they can write on any topic.
{{ dataStorageNote }} Download the whole-school backup weekly and keep it on the school drive; restoring a backup pushes it back out to every teacher.
{{ backupStatus }}
Move students into next year’s classes, mark leavers, and start the new year fresh. Class heat maps and data cards reset; every sample stays on each student’s profile, past years stay in School data under the year picker, and leavers are archived with their data.
{{ dataStorageNote }} Backups are managed by your admin from the School view.
Stage-based classes mean most students stay where they are — everyone is set to stay below. Change only the movers (ES1 students going up to a Stage 1 class, and students finishing Year 2, 4 or 6 who cross a stage boundary) and mark anyone leaving the school.
Nothing is deleted: every sample stays on each student’s profile, past years stay in School data under the year picker, and leavers are archived with their data. From {{ rollToYear }}, class heat maps and data cards start fresh.
{{ rollSummary }}
The rollover can’t be undone from inside the tool — this backup is the way back. Keep it on the school drive.
Bookmark-sized desk strip — three copies print per A4 page with cut lines. Edit the wording below; it saves as you type.
The AI drafts from your goal wording — review it here before printing. Clear the box to print the card without an example.
{{ schoolName }}
My writing goal
{{ goalStudentName }} · {{ goalClassName }}
“{{ goalEditText }}”
Example: {{ goalExample }}
Date set: {{ goalDateSet }}
Date achieved: ______________
Sentence-level grammar · {{ goalStageLabel }}
This student already has a goal in progress
“{{ goalConfirmActiveText }}”
Set {{ goalConfirmActiveDate }}
Students keep one goal at a time. What should happen to the current one?
Restore backup
{{ restoreError }}
This backup contains {{ restoreSummary }}.
Replace overwrites the school’s current data with the backup. Merge keeps what is here and adds anything from the backup that isn’t already present. Nothing changes until you choose.
{{ restorePushNote }}