Demo class Explore freely — nothing you do here is saved, and demo data never appears in exports or backups.
{{ syncNoteBanner }}
{{ restoreNote }}

School access code

This tool holds the school’s shared writing data. Enter the access code from your admin to continue.

Who’s using the tool?

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 }}

{{ className }}

{{ classStageLabel }} {{ classTeacher }} · {{ classCount }} students

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.

{{ lg.label }} {{ lg.desc }}
{{ heatLockNote }}

{{ grp.title }}

{{ 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 .

Data cards

{{ className }} · {{ cardsCount }} cards

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 type
Samples
Students
Criteria
{{ ccg.title }}
{{ card.name }} printed {{ card.printed }}

{{ 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

  • {{ cdo }}

Based on writing from {{ pcd.asOf }}

Current writing goal

“{{ pcd.goalText }}”

How you can help at home

Thinking… Pre-filled to match the goal — edit freely, or Suggest an AI-tailored one.

Sentence-level writing · {{ pcd.stageLabel }}

{{ schoolName }}

admin view

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 }}

Weekly backup due. {{ backupStatus }} Download the whole-school backup and keep it on the school drive.
{{ backupStatus }}

{{ sgp.title }}

{{ sgp.sub }}

Criterion {{ scol.name }} {{ scol.sub }}
{{ srow.text }} {{ scell.pct }}

Progress over time

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 }}

School data

termly cold writes

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.title }}

{{ stg.sub }}

{{ stt.name }}

{{ stt.sub }}

Criterion {{ stc.sub }}
{{ str1.text }} {{ stcell.pct }}

{{ stt.openTitle }}

{{ stt.openNote }}

Criterion {{ sos2.name }}
{{ sor2.text }} {{ soc2.letter }}

{{ sdg.title }}

{{ sdg.sub }}

Criterion {{ sdc.sub }}
{{ sdr.text }} {{ sdcell.pct }}

{{ sdg.openTitle }}

Read-only — each column is one student’s approved {{ sdTermLabel }} cold write.

Criterion {{ sos.name }}
{{ sor.text }} {{ soc.letter }}

{{ stName }}

Working at {{ stWorkingStageLabel }} working {{ stWorkingStage }}, in a {{ classStageShort }} class
cold write make-up open · expires {{ stMakeupExpiry }} For a student who missed the whole-school window — their next piece on the student page becomes their Term {{ cwCurTerm }} cold write and counts toward school data. Expires {{ cwMakeupExpiry }}.

Samples

No samples yet.

Goals

“{{ gl.text }}”

{{ gl.meta }}

e.g. {{ gl.example }}

Previous goals ({{ stPrevCount }})

“{{ pgl.text }}”

{{ pgl.meta }}

No goals set yet — suggestions appear beside each analysed sample.

{{ smpTitle }}

{{ smpMeta }}

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 }}

{{ smpPromoteNote }}

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.

What the student saw ({{ smpDraftCount }})

{{ fb.label }}

{{ fb.text }}

{{ seg.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.

Criteria ratings & evidence {{ smpRatingsHint }}

Ratings are locked — a goal has already been set from this sample.
Editing unlocked for this sample.

{{ cr.text }} {{ cr.prog }} teacher override

“{{ ev.text }}” {{ ev.note }}

{{ ev.explain }}

{{ cr.aiNote }}

Pattern across samples: {{ cr.flag }}

Suggested goals

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 }}

How to teach this

{{ gc.how }}

Example: {{ gc.example }}

Research base: {{ gc.research }}

current goal
Different focus:
Write your own goal
Link to criterion (optional):

Progress over time

Each column is one sample, oldest first — its date sits above the column. A blue date marks a cold write.

{{ pd.label }}
{{ pr.text }}

No analysed samples yet.

Analyse a writing sample

{{ ws.label }}

{{ wizCwNote }}

{{ wizCwBlock }}

{{ wizStageNote }}

Photos or a scanned PDF. On an iPad you can select several photos at once, or take one photo at a time and keep adding pages.
{{ wp.img }}
PDF — {{ wp.name }}Tap to preview
Page {{ wp.n }}

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.

{{ wizPreviewTitle }} Check it’s the right one before transcribing.
{{ wizPreviewImg }} {{ wizPreviewFrame }}

{{ wizError }}

{{ busyMsg }}

{{ wizStudentName }} · analysed against {{ wizStageLabel }}. {{ reviewIntro }}

{{ rseg.text }}

{{ rc.text }} {{ rc.prog }}

“{{ rev.text }}”

{{ rev.explain }}

{{ rc.note }}

Pattern across samples: {{ rc.flag }}

Glossary

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.

Student wall sheets

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.

{{ gg.title }}

{{ gi.term }} {{ gi.stage }}

{{ gi.def }}

{{ gi.eg }}

How to use this tool

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.

  1. {{ gs.n }}

    {{ gs.title }}

    {{ gs.body }}

The rating scale

{{ lg2.label }} — {{ lg2.desc }}

Goals are only ever drawn from Not evident and Some evidence.

How to decide between ratings

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.

How the class heat map is calculated

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.

Research base

{{ ri.name }}
{{ ri.note }}

Honesty note. {{ honestyNote }}

Sources for the criteria

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.

Setup

Staff

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.

{{ sf2.classes }}

{{ classesHeading }}

{{ sc.teacher }} {{ sc.count }} students

Pre-load class lists (CSV)

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 }}

Cold write window

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 }}

Students in {{ className }}

“Analysed against” sets the stage each student’s writing is measured on — a Stage 2 class member can be analysed against Stage 1 content.

Student page

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.

Two words and a number — easy to type, hard to guess. Regenerating a code stops the old one working. Try the page yourself with the code DEMO — demo writing never joins the class data.
{{ cs.name }} {{ cs.code }}

Cold writes

{{ cwClassIntro }}

Students see this on their page during any cold write. Leave it blank and they can write on any topic.

Whole-school data

{{ 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 }}

End of school year

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.

{{ rolloverStatus }}

Data

{{ dataStorageNote }} Backups are managed by your admin from the School view.

End-of-year rollover

{{ rollFromYear }} → {{ rollToYear }}

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.

{{ rc.name }}

{{ rc.stageLabel }} {{ rc.teacher }}
{{ rs.name }}

{{ rollSummary }}

1. Download a backup — required

The rollover can’t be undone from inside the tool — this backup is the way back. Keep it on the school drive.

Backup downloaded ✓

2. Run the rollover

Goal card

Bookmark-sized desk strip — three copies print per A4 page with cut lines. Edit the wording below; it saves as you type.

Thinking…

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 }}

Or restore a single class only: