<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://heyzippy.io/blog/</id>
    <title>Zippy Blog</title>
    <updated>2026-10-23T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://heyzippy.io/blog/"/>
    <subtitle>Zippy Blog</subtitle>
    <icon>https://heyzippy.io/assets/img/favicon.svg</icon>
    <entry>
        <title type="html"><![CDATA[How our first cohort used the new Zippy AI tutor]]></title>
        <id>https://heyzippy.io/blog/run-1-first-live-cohort/</id>
        <link href="https://heyzippy.io/blog/run-1-first-live-cohort/"/>
        <updated>2026-10-23T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Two weeks before the O-Level and A-Level exams, we asked on Reddit for 20 to 40 students to test an AI tutor. 114 joined. Here is what they did and what they told us.]]></summary>
        <content type="html"><![CDATA[<p>Could an AI tutor help a student at the moment they need it the most?</p>
<video controls="" playsinline="" preload="metadata" poster="/img/blog/run-1/banner.jpg" style="width:100%;border-radius:12px;margin-bottom:1rem"><source src="/videos/run-1-film.mp4" type="video/mp4"></video>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="we-wanted-to-run-a-cohort-of-20-to-40-students-and-posted-on-reddit">We wanted to run a cohort of 20 to 40 students and posted on Reddit<a href="https://heyzippy.io/blog/run-1-first-live-cohort/#we-wanted-to-run-a-cohort-of-20-to-40-students-and-posted-on-reddit" class="hash-link" aria-label="Direct link to We wanted to run a cohort of 20 to 40 students and posted on Reddit" title="Direct link to We wanted to run a cohort of 20 to 40 students and posted on Reddit" translate="no">​</a></h2>
<p>Two weeks before the O-Level and A-Level exams in Singapore, we posted on r/SGExams. We offered a revision course in O-Level English or A-Level General Paper, self-paced, with instant feedback, and said we could probably take 20 to 40 students.</p>
<p><img decoding="async" loading="lazy" alt="The r/SGExams post, with &amp;quot;20-40 students&amp;quot; highlighted" src="https://heyzippy.io/assets/images/reddit-d3ce248e123f227b85af4ec60c5f99e9.jpg" width="1600" height="900" class="img_CNVe"></p>
<p>But because of overwhelming interest, we let in 114 students. In about two weeks they had 447 study sessions between them and had answered 2,324 questions.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="they-studied-late-into-the-night">They studied late into the night<a href="https://heyzippy.io/blog/run-1-first-live-cohort/#they-studied-late-into-the-night" class="hash-link" aria-label="Direct link to They studied late into the night" title="Direct link to They studied late into the night" translate="no">​</a></h2>
<p>Zippy marked their writing as they progressed. A student could hand in a whole essay and have it marked criterion by criterion, in seconds.</p>
<p><img decoding="async" loading="lazy" alt="An illustrative session: a demo student&amp;#39;s essay, marked for content, organisation and language, with feedback that quotes the essay" src="https://heyzippy.io/assets/images/session-50ed20de634a33a2f1f2d5c77763462f.jpg" width="1600" height="900" class="img_CNVe"></p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="when-it-got-stressful-they-played-games">When it got stressful, they played games<a href="https://heyzippy.io/blog/run-1-first-live-cohort/#when-it-got-stressful-they-played-games" class="hash-link" aria-label="Direct link to When it got stressful, they played games" title="Direct link to When it got stressful, they played games" translate="no">​</a></h2>
<p>Between lessons, students played the daily word game and spent the points they had earned on stickers.</p>
<p><img decoding="async" loading="lazy" alt="The daily word game and the sticker shop, recorded with demo accounts" src="https://heyzippy.io/assets/images/games-dfde4a7bbc27c189de2d0eaa2cd7b27b.jpg" width="1600" height="900" class="img_CNVe"></p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="in-their-own-words">In their own words<a href="https://heyzippy.io/blog/run-1-first-live-cohort/#in-their-own-words" class="hash-link" aria-label="Direct link to In their own words" title="Direct link to In their own words" translate="no">​</a></h2>
<p>After the first day, one A-Level student wrote to us:</p>
<blockquote>
<p>i read through the first day's lessons and found them rlly rlly helpful. as someone who has been worrying for gp paper 1, it helps me to become <strong>more confident and motivated to study</strong> for p1. thank u so much!!!</p>
</blockquote>
<p>We asked in the course's group chat how useful the course had been for their revision. 74% of the 23 students who answered said it was useful. They asked for more model answers and other school subjects.</p>
<p><img decoding="async" loading="lazy" alt="74% found it useful for revision" src="https://heyzippy.io/assets/images/useful-e51b306c9c90750095b02fa6ff0d1918.jpg" width="1600" height="900" class="img_CNVe"></p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="more-is-coming">More is coming<a href="https://heyzippy.io/blog/run-1-first-live-cohort/#more-is-coming" class="hash-link" aria-label="Direct link to More is coming" title="Direct link to More is coming" translate="no">​</a></h2>
<p>Our first cohort was English. Zippy now teaches more, in a fun and interactive way:</p>
<ul>
<li><strong>Maths, physics and programming.</strong> Change the ramp and watch where the ball stops, set a line and see the graph move, or fill in a Python loop, with feedback on every answer.</li>
<li><strong>Oral lessons.</strong> Answer out loud, and Zippy scores your pronunciation and fluency from your voice, and your content and language from what you said.</li>
<li><strong>Help at any hour.</strong> When you're stuck, ask Zippy about the exact question you're on, then try it again.</li>
<li><strong>What to practise next.</strong> As you learn, Zippy learns your strengths and the skills you still need, measured against your curriculum.</li>
<li><strong>Your teacher has the final say.</strong> Zippy drafts the marking, and a teacher can review every mark, change it and write back. When they do, you'll know.</li>
<li><strong>iPhone and Android.</strong> Learn wherever you study, on our apps or in any browser.</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Maths, physics, programming and more, as games" src="https://heyzippy.io/assets/images/coming-d2bf977ff9a60d641fe9415d297aee4c.jpg" width="1600" height="900" class="img_CNVe"></p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="in-our-beta-so-far">In our beta so far<a href="https://heyzippy.io/blog/run-1-first-live-cohort/#in-our-beta-so-far" class="hash-link" aria-label="Direct link to In our beta so far" title="Direct link to In our beta so far" translate="no">​</a></h2>
<p>Teachers have set up more than 100 workspaces on Zippy, with nearly 1,000 students, and Zippy has given instant feedback on 3,943 answers.</p>
<p><img decoding="async" loading="lazy" alt="In our beta so far: 100+ workspaces set up by teachers, 984 students, 3,943 answers given instant feedback" src="https://heyzippy.io/assets/images/beta-3631fcccd496cc4673deac677e9aa3fb.jpg" width="1600" height="900" class="img_CNVe"></p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="join-the-next-cohort">Join the next cohort<a href="https://heyzippy.io/blog/run-1-first-live-cohort/#join-the-next-cohort" class="hash-link" aria-label="Direct link to Join the next cohort" title="Direct link to Join the next cohort" translate="no">​</a></h2>
<p>Zippy is invite-only while in beta. Join our <a href="https://t.me/zippylearning" target="_blank" rel="noopener noreferrer">Telegram community</a> to be part of the next cohort, or, if you are a teacher looking for superpowers, to request an invitation code.</p>]]></content>
        <author>
            <name>Zippy Team</name>
        </author>
        <category label="cohort" term="cohort"/>
        <category label="o-level-english" term="o-level-english"/>
        <category label="general-paper" term="general-paper"/>
        <category label="learning" term="learning"/>
        <category label="teaching" term="teaching"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Oral tests: marking how it was said and what was said]]></title>
        <id>https://heyzippy.io/blog/audio-and-oral-tests/</id>
        <link href="https://heyzippy.io/blog/audio-and-oral-tests/"/>
        <updated>2026-08-26T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Put two rubrics on the same spoken answer. A speaking rubric marks pronunciation and fluency, your own marking scheme marks the content, and one recording comes back with both.]]></summary>
        <content type="html"><![CDATA[<p>Oral is the part of English that scales worst. Forty children, two minutes each, and the child who most needs to be heard is usually the one who has learned to go quiet. Most weeks, the oral practice that happens is the practice a parent supervises at home.</p>
<p>There is a second problem under that one. Marking an oral means holding two judgements at the same time. Was it clear and fluent, and was the answer any good. A child can read beautifully and answer a different question, and one number cannot say both things.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="two-rubrics-on-the-same-question">Two rubrics on the same question<a href="https://heyzippy.io/blog/audio-and-oral-tests/#two-rubrics-on-the-same-question" class="hash-link" aria-label="Direct link to Two rubrics on the same question" title="Direct link to Two rubrics on the same question" translate="no">​</a></h2>
<p>You can now put more than one rubric on a question, so an oral test carries both judgements.</p>
<p>The first is a speaking rubric. Pronunciation and fluency are scored by the speech engine, which listens to the recording instead of reading a transcript of it. Content and comprehension are marked from what the child actually said. That is the rubric we ship: four criteria, 20 marks. Intonation and completeness are there too, for reading-aloud tasks where there is a passage to be complete against.</p>
<p>The second is your own marking scheme, unchanged. In the example below it is the PSLE Primary 5/6 continuous-writing rubric from the Discover library: content and language, 18 marks each, the same grid your department already argues about in a moderation meeting.</p>
<p>Put both in a preset, and point the question at the preset. Here is that setup, one rubric at a time and then the two together.</p>
<div class="demo-yt"><div class="demo-yt__stage"><video class="demo-yt__video" src="/assets/demos/rubrics.mp4" poster="/assets/demos/rubrics-poster.jpg" preload="metadata" playsinline=""></video><button type="button" class="demo-yt__big" aria-label="Play Configure how work is marked"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M8 5.5v13l11-6.5z" fill="currentColor"></path></svg></button><div class="demo-yt__controls"><div class="demo-yt__scrub"><button type="button" class="demo-yt__seg" style="flex-grow:4.91" aria-label="Your rubrics live here, 0:00" title="Your rubrics live here"><span class="demo-yt__segfill" style="transform:scaleX(0)"></span></button><button type="button" class="demo-yt__seg" style="flex-grow:10.47" aria-label="Score, skills, and speaking, 0:05" title="Score, skills, and speaking"><span class="demo-yt__segfill" style="transform:scaleX(0)"></span></button><button type="button" class="demo-yt__seg" style="flex-grow:4.119999999999999" aria-label="A score rubric, 0:15" title="A score rubric"><span class="demo-yt__segfill" style="transform:scaleX(0)"></span></button><button type="button" class="demo-yt__seg" style="flex-grow:6.370000000000001" aria-label="Bands per criterion, 0:20" title="Bands per criterion"><span class="demo-yt__segfill" style="transform:scaleX(0)"></span></button><button type="button" class="demo-yt__seg" style="flex-grow:5.559999999999999" aria-label="A skills rubric, 0:26" title="A skills rubric"><span class="demo-yt__segfill" style="transform:scaleX(0)"></span></button><button type="button" class="demo-yt__seg" style="flex-grow:6.960000000000001" aria-label="Skills across levels, 0:31" title="Skills across levels"><span class="demo-yt__segfill" style="transform:scaleX(0)"></span></button><button type="button" class="demo-yt__seg" style="flex-grow:11.329999999999998" aria-label="A speaking rubric, 0:38" title="A speaking rubric"><span class="demo-yt__segfill" style="transform:scaleX(0)"></span></button><button type="button" class="demo-yt__seg" style="flex-grow:9.07" aria-label="The writing rubric it pairs with, 0:50" title="The writing rubric it pairs with"><span class="demo-yt__segfill" style="transform:scaleX(0)"></span></button><button type="button" class="demo-yt__seg" style="flex-grow:9.059999999999995" aria-label="Both of them in one preset, 0:59" title="Both of them in one preset"><span class="demo-yt__segfill" style="transform:scaleX(0)"></span></button><button type="button" class="demo-yt__seg" style="flex-grow:7.75" aria-label="What each one marks, 1:08" title="What each one marks"><span class="demo-yt__segfill" style="transform:scaleX(0)"></span></button></div><div class="demo-yt__row"><button type="button" class="demo-yt__ctl" aria-label="Play"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M8 5.5v13l11-6.5z" fill="currentColor"></path></svg></button><span class="demo-yt__time">0:00<!-- --> / <!-- -->1:16</span><span class="demo-yt__now" title="Every mark comes from a rubric you control.">Your rubrics live here</span><button type="button" class="demo-yt__ctl demo-yt__ctl--end" aria-label="Fullscreen"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 9V4h5M20 9V4h-5M4 15v5h5M20 15v5h-5" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path></svg></button></div></div></div><p class="demo-yt__caption">Every mark comes from a rubric you control.</p><div class="demo-yt__chapters"><div class="demo-yt__rail" role="tablist" aria-label="Configure how work is marked chapters"><button type="button" role="tab" aria-selected="true" class="demo-yt__card demo-yt__card--active"><span class="demo-yt__thumb"><img src="https://heyzippy.io/assets/demos/rubrics-thumbs/RB1.jpg" alt="" loading="lazy"><span class="demo-yt__stamp">0:00</span></span><span class="demo-yt__label"><span class="demo-yt__num">1</span>Your rubrics live here</span></button><button type="button" role="tab" aria-selected="false" class="demo-yt__card"><span class="demo-yt__thumb"><img src="https://heyzippy.io/assets/demos/rubrics-thumbs/RB2.jpg" alt="" loading="lazy"><span class="demo-yt__stamp">0:05</span></span><span class="demo-yt__label"><span class="demo-yt__num">2</span>Score, skills, and speaking</span></button><button type="button" role="tab" aria-selected="false" class="demo-yt__card"><span class="demo-yt__thumb"><img src="https://heyzippy.io/assets/demos/rubrics-thumbs/RB3.jpg" alt="" loading="lazy"><span class="demo-yt__stamp">0:15</span></span><span class="demo-yt__label"><span class="demo-yt__num">3</span>A score rubric</span></button><button type="button" role="tab" aria-selected="false" class="demo-yt__card"><span class="demo-yt__thumb"><img src="https://heyzippy.io/assets/demos/rubrics-thumbs/RB4.jpg" alt="" loading="lazy"><span class="demo-yt__stamp">0:20</span></span><span class="demo-yt__label"><span class="demo-yt__num">4</span>Bands per criterion</span></button><button type="button" role="tab" aria-selected="false" class="demo-yt__card"><span class="demo-yt__thumb"><img src="https://heyzippy.io/assets/demos/rubrics-thumbs/RB5.jpg" alt="" loading="lazy"><span class="demo-yt__stamp">0:26</span></span><span class="demo-yt__label"><span class="demo-yt__num">5</span>A skills rubric</span></button><button type="button" role="tab" aria-selected="false" class="demo-yt__card"><span class="demo-yt__thumb"><img src="https://heyzippy.io/assets/demos/rubrics-thumbs/RB6.jpg" alt="" loading="lazy"><span class="demo-yt__stamp">0:31</span></span><span class="demo-yt__label"><span class="demo-yt__num">6</span>Skills across levels</span></button><button type="button" role="tab" aria-selected="false" class="demo-yt__card"><span class="demo-yt__thumb"><img src="https://heyzippy.io/assets/demos/rubrics-thumbs/RB7.jpg" alt="" loading="lazy"><span class="demo-yt__stamp">0:38</span></span><span class="demo-yt__label"><span class="demo-yt__num">7</span>A speaking rubric</span></button><button type="button" role="tab" aria-selected="false" class="demo-yt__card"><span class="demo-yt__thumb"><img src="https://heyzippy.io/assets/demos/rubrics-thumbs/RB8.jpg" alt="" loading="lazy"><span class="demo-yt__stamp">0:50</span></span><span class="demo-yt__label"><span class="demo-yt__num">8</span>The writing rubric it pairs with</span></button><button type="button" role="tab" aria-selected="false" class="demo-yt__card"><span class="demo-yt__thumb"><img src="https://heyzippy.io/assets/demos/rubrics-thumbs/RB9.jpg" alt="" loading="lazy"><span class="demo-yt__stamp">0:59</span></span><span class="demo-yt__label"><span class="demo-yt__num">9</span>Both of them in one preset</span></button><button type="button" role="tab" aria-selected="false" class="demo-yt__card"><span class="demo-yt__thumb"><img src="https://heyzippy.io/assets/demos/rubrics-thumbs/RB10.jpg" alt="" loading="lazy"><span class="demo-yt__stamp">1:08</span></span><span class="demo-yt__label"><span class="demo-yt__num">10</span>What each one marks</span></button></div></div></div>
<p>One recording is marked against both rubrics in one pass. Each keeps its own marks, so a criterion out of 18 is reported out of 18 even when it sits beside one out of 5.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="the-child-speaks-it-or-uploads-a-clip">The child speaks it, or uploads a clip<a href="https://heyzippy.io/blog/audio-and-oral-tests/#the-child-speaks-it-or-uploads-a-clip" class="hash-link" aria-label="Direct link to The child speaks it, or uploads a clip" title="Direct link to The child speaks it, or uploads a clip" translate="no">​</a></h2>
<p>Press record in the browser, or upload a file. A rehearsal recorded at home on a phone comes in the same way and is marked the same way. Nothing has to be scheduled, and nobody has to be in the room.</p>
<div class="demo-yt"><div class="demo-yt__stage"><video class="demo-yt__video" src="/assets/demos/oral-practice.mp4" poster="/assets/demos/oral-practice-poster.jpg" preload="metadata" playsinline=""></video><button type="button" class="demo-yt__big" aria-label="Play Speak an answer, get it marked"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M8 5.5v13l11-6.5z" fill="currentColor"></path></svg></button><div class="demo-yt__controls"><div class="demo-yt__scrub"><button type="button" class="demo-yt__seg" style="flex-grow:6.11" aria-label="An oral question, 0:00" title="An oral question"><span class="demo-yt__segfill" style="transform:scaleX(0)"></span></button><button type="button" class="demo-yt__seg" style="flex-grow:4.409999999999999" aria-label="Record, or hand in a clip, 0:06" title="Record, or hand in a clip"><span class="demo-yt__segfill" style="transform:scaleX(0)"></span></button><button type="button" class="demo-yt__seg" style="flex-grow:4.300000000000001" aria-label="Their answer, handed in, 0:11" title="Their answer, handed in"><span class="demo-yt__segfill" style="transform:scaleX(0)"></span></button><button type="button" class="demo-yt__seg" style="flex-grow:11.370000000000001" aria-label="Both rubrics, one grade, 0:15" title="Both rubrics, one grade"><span class="demo-yt__segfill" style="transform:scaleX(0)"></span></button><button type="button" class="demo-yt__seg" style="flex-grow:7.210000000000004" aria-label="Every criterion, with its reason, 0:26" title="Every criterion, with its reason"><span class="demo-yt__segfill" style="transform:scaleX(0)"></span></button></div><div class="demo-yt__row"><button type="button" class="demo-yt__ctl" aria-label="Play"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M8 5.5v13l11-6.5z" fill="currentColor"></path></svg></button><span class="demo-yt__time">0:00<!-- --> / <!-- -->0:33</span><span class="demo-yt__now" title="An oral question, in the student portal.">An oral question</span><button type="button" class="demo-yt__ctl demo-yt__ctl--end" aria-label="Fullscreen"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 9V4h5M20 9V4h-5M4 15v5h5M20 15v5h-5" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path></svg></button></div></div></div><p class="demo-yt__caption">An oral question, in the student portal.</p><div class="demo-yt__chapters"><div class="demo-yt__rail" role="tablist" aria-label="Speak an answer, get it marked chapters"><button type="button" role="tab" aria-selected="true" class="demo-yt__card demo-yt__card--active"><span class="demo-yt__thumb"><img src="https://heyzippy.io/assets/demos/oral-practice-thumbs/OP1.jpg" alt="" loading="lazy"><span class="demo-yt__stamp">0:00</span></span><span class="demo-yt__label"><span class="demo-yt__num">1</span>An oral question</span></button><button type="button" role="tab" aria-selected="false" class="demo-yt__card"><span class="demo-yt__thumb"><img src="https://heyzippy.io/assets/demos/oral-practice-thumbs/OP2.jpg" alt="" loading="lazy"><span class="demo-yt__stamp">0:06</span></span><span class="demo-yt__label"><span class="demo-yt__num">2</span>Record, or hand in a clip</span></button><button type="button" role="tab" aria-selected="false" class="demo-yt__card"><span class="demo-yt__thumb"><img src="https://heyzippy.io/assets/demos/oral-practice-thumbs/OP3.jpg" alt="" loading="lazy"><span class="demo-yt__stamp">0:11</span></span><span class="demo-yt__label"><span class="demo-yt__num">3</span>Their answer, handed in</span></button><button type="button" role="tab" aria-selected="false" class="demo-yt__card"><span class="demo-yt__thumb"><img src="https://heyzippy.io/assets/demos/oral-practice-thumbs/OP4.jpg" alt="" loading="lazy"><span class="demo-yt__stamp">0:15</span></span><span class="demo-yt__label"><span class="demo-yt__num">4</span>Both rubrics, one grade</span></button><button type="button" role="tab" aria-selected="false" class="demo-yt__card"><span class="demo-yt__thumb"><img src="https://heyzippy.io/assets/demos/oral-practice-thumbs/OP5.jpg" alt="" loading="lazy"><span class="demo-yt__stamp">0:26</span></span><span class="demo-yt__label"><span class="demo-yt__num">5</span>Every criterion, with its reason</span></button></div></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="what-comes-back">What comes back<a href="https://heyzippy.io/blog/audio-and-oral-tests/#what-comes-back" class="hash-link" aria-label="Direct link to What comes back" title="Direct link to What comes back" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="One spoken answer marked on two stacked rubrics: pronunciation and fluency from the speech engine, content and comprehension on the speaking scale, and the writing rubric out of eighteen" src="https://heyzippy.io/assets/images/speaking-rubric-marks-182e1c55d98902a2743efcd144193db4.png" width="2880" height="1800" class="img_CNVe"></p>
<p>That is a real submission, answering <em>tell me about a project or activity you led</em>.</p>
<p>The speech engine heard it clearly: pronunciation 5 out of 5, fluency 5, both banded exemplary. On the speaking rubric, content 4 out of 5 and comprehension 5. The same twenty-two seconds of speech went to the writing rubric as well, where it scored content 11 out of 18, because the ideas are concise and only fairly elaborated, and language and organisation 14 out of 18. Forty-four out of fifty-six in total, and under every number a sentence naming what earned it.</p>
<p>Six numbers is more than a child needs to hear at once, which is a choice you make when you build the preset. A Primary 4 reading test might report pronunciation and completeness and nothing else. An oral exam rehearsal in Primary 6 wants the lot. <a href="https://heyzippy.io/docs/grading/rubric-types/">Rubric types</a> lists what each criterion measures, and <a href="https://heyzippy.io/docs/grading/configuring-rubrics/">configuring rubrics</a> covers building the preset.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="you-still-hold-the-pen">You still hold the pen<a href="https://heyzippy.io/blog/audio-and-oral-tests/#you-still-hold-the-pen" class="hash-link" aria-label="Direct link to You still hold the pen" title="Direct link to You still hold the pen" translate="no">​</a></h2>
<p>The marks arrive for you first. Change a score, rewrite a comment, send it back for another go, or release it as it stands. A child sees what you approve, when you approve it. Zippy does the listening so your attention goes to the four children whose scores moved.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="what-this-does-not-solve">What this does not solve<a href="https://heyzippy.io/blog/audio-and-oral-tests/#what-this-does-not-solve" class="hash-link" aria-label="Direct link to What this does not solve" title="Direct link to What this does not solve" translate="no">​</a></h2>
<p>It marks delivery and content, not confidence. A child who freezes in front of a stranger is not measured by any of this.</p>
<p>It hears one recording. Nerves on a Tuesday afternoon are not a language problem, and a single low fluency score is a reason to listen yourself rather than a verdict.</p>
<p>Two rubrics also mean two sets of numbers, and a child who is handed six of them will read the lowest one and stop. Decide what to report before you set the preset, not after the marks come back.</p>
<p>And it is English. The speech engine handles other languages, but the rubric we ship is written for English oral, so anything else starts from your own criteria.</p>
<p>If you want the marking scheme behind it, we wrote up <a href="https://heyzippy.io/blog/psle-reading-aloud-full-marks/">how PSLE Reading Aloud is scored</a> and <a href="https://heyzippy.io/blog/psle-english-oral-2026-parents-guide/">a parent's guide to the whole paper</a>.</p>]]></content>
        <author>
            <name>Zippy Team</name>
        </author>
        <category label="release" term="release"/>
        <category label="english-oral" term="english-oral"/>
        <category label="psle" term="psle"/>
        <category label="grading" term="grading"/>
        <category label="product-update" term="product-update"/>
        <category label="teaching" term="teaching"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How AI helps teachers mark PSLE compositions]]></title>
        <id>https://heyzippy.io/blog/ai-psle-composition-marking/</id>
        <link href="https://heyzippy.io/blog/ai-psle-composition-marking/"/>
        <updated>2026-08-25T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Thirty PSLE compositions marked against your own P5/6 bands, from photographed handwriting, with the reasoning attached and every mark waiting for your approval.]]></summary>
        <content type="html"><![CDATA[<p>Thirty compositions to mark, and each one needs a Content mark out of 18, a Language and
Organisation mark out of 18, and a comment the child can actually do something with.</p>
<p>What usually happens is that the marking gets thinner towards the bottom of the pile. The
comments get shorter, the next steps get vaguer, and the last few children get less than the
first few did. By then it is eleven at night, which is most of the explanation.</p>
<p>Here is what changes when the first pass is already done before you sit down.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="it-marks-against-your-bands-not-a-generic-scale">It marks against your bands, not a generic scale<a href="https://heyzippy.io/blog/ai-psle-composition-marking/#it-marks-against-your-bands-not-a-generic-scale" class="hash-link" aria-label="Direct link to It marks against your bands, not a generic scale" title="Direct link to It marks against your bands, not a generic scale" translate="no">​</a></h2>
<p>This is the part most tools get wrong. A marker carrying its own idea of good writing will
give you marks you have to argue with on every script.</p>
<p>Zippy holds the PSLE P5/6 Continuous Writing rubric as a rubric: Content and Language &amp;
Organisation, six levels each from No Credit to Exemplary, with the mark range attached to
every band.</p>
<p><img decoding="async" loading="lazy" alt="The PSLE P5/6 Continuous Writing rubric in Zippy, showing Content and Language &amp;amp; Organisation across six bands from No Credit to Exemplary, with the mark range for each band" src="https://heyzippy.io/assets/images/rubric-psle-p56-continuous-writing-73c9dcaa2e766e0fbbb5de1a0184e1ff.png" width="2640" height="1434" class="img_CNVe"></p>
<p><em>The bands as Zippy holds them. If your centre marks to its own descriptors, you replace these
with yours and it marks to those instead.</em></p>
<p>What each of those bands actually asks for, and two real scripts marked against them, is
covered in <a href="https://heyzippy.io/blog/psle-composition-marking-rubric/">how a PSLE composition is marked</a>. This
post is about what happens when you point it at a class set.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="what-comes-back-for-each-script">What comes back for each script<a href="https://heyzippy.io/blog/ai-psle-composition-marking/#what-comes-back-for-each-script" class="hash-link" aria-label="Direct link to What comes back for each script" title="Direct link to What comes back for each script" translate="no">​</a></h2>
<p>Two marks, not one total. A composition sitting at Content 15 and Language 9 needs a
completely different conversation from one at Content 9 and Language 15, and a single number
out of 36 hides that.</p>
<p>Underneath each mark, the reasoning: which band it landed in, which descriptor it matched, and
which line in the child's writing put it there. Annotations sit on the script itself, each one
tagged with the criterion it counts towards, so a comment about tenses is visibly a Language
comment rather than a general complaint.</p>
<p>That trail is what makes a mark arguable. You can disagree with it specifically, on the line,
rather than in general.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="it-reads-handwriting-from-a-photograph">It reads handwriting from a photograph<a href="https://heyzippy.io/blog/ai-psle-composition-marking/#it-reads-handwriting-from-a-photograph" class="hash-link" aria-label="Direct link to It reads handwriting from a photograph" title="Direct link to It reads handwriting from a photograph" translate="no">​</a></h2>
<p>Most PSLE composition practice is still done on paper. Tools that only accept typed text quietly
hand you a second job first, and typing thirty compositions is worse than marking them.</p>
<p>Photograph the pile. Zippy transcribes each script and marks the transcription. A phone camera
on a page of P5 handwriting is enough.</p>
<p>The honest limit: genuinely difficult handwriting produces transcription errors, and a
transcription error becomes a marking error. The scripts most likely to be misread are the
weakest ones, which is the wrong way round. Those are the ones to read yourself.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="how-often-it-agrees-with-you">How often it agrees with you<a href="https://heyzippy.io/blog/ai-psle-composition-marking/#how-often-it-agrees-with-you" class="hash-link" aria-label="Direct link to How often it agrees with you" title="Direct link to How often it agrees with you" translate="no">​</a></h2>
<p>Researchers at the University of Georgia measured how often an AI model landed on the same
mark as a human marker. It was <strong>33.5%</strong>. Give the model the teacher's own rubric and separate
work puts it above <strong>50%</strong>.</p>
<p>Neither number is a marking tool you can leave alone, and we would rather say so. What the
first pass buys is the hour of reading thirty pieces and writing thirty sets of comments from
nothing. The mark itself is still a judgement, and it stays yours.</p>
<p>That gap between a third and a half is also the argument for the section above. A marker
holding your descriptors does not have to guess at what your centre counts as
"sufficiently developed".</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="nothing-goes-out-until-you-release-it">Nothing goes out until you release it<a href="https://heyzippy.io/blog/ai-psle-composition-marking/#nothing-goes-out-until-you-release-it" class="hash-link" aria-label="Direct link to Nothing goes out until you release it" title="Direct link to Nothing goes out until you release it" translate="no">​</a></h2>
<p>Not the marks, not the annotations, not the feedback. A graded class set sits unreleased until
you say otherwise, and while it is held, the child's own view has nothing in it.</p>
<p>Every comment is yours to reword or delete, every mark is yours to change, and what you change
survives the next run rather than being overwritten by it. The mechanics of that, and why the
"it forgot what I decided" problem is the one that kills AI markers, are in
<a href="https://heyzippy.io/blog/ai-grading-teacher-control/">how to mark with AI and still be the one who marked it</a>.</p>
<p>What reaches a parent is the mark and the comment under your name, which is what a report has
always been.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="thirty-at-a-time-and-the-standard-holding">Thirty at a time, and the standard holding<a href="https://heyzippy.io/blog/ai-psle-composition-marking/#thirty-at-a-time-and-the-standard-holding" class="hash-link" aria-label="Direct link to Thirty at a time, and the standard holding" title="Direct link to Thirty at a time, and the standard holding" translate="no">​</a></h2>
<p>Speed is the obvious benefit. Consistency is the one that matters more, and it is harder to
see.</p>
<p>The twenty-eighth script is read by a different person than the first. Not a careless person.
A tired one, at eleven at night, whose sense of what "sufficiently developed" means has
drifted a little since script three. Across four teachers in a centre, that drift becomes a
fairness problem, and parents notice it before anyone internally does.</p>
<p>A rubric applied by machine does not drift. It puts the same descriptor against script 30 as
against script 1 and shows its reasoning both times, so a head of department can pull two
scripts marked a week apart and see whether the standard held.</p>
<p>You still decide. You are deciding against a consistent first pass rather than against your
own memory of what you did on Tuesday.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="where-it-struggles">Where it struggles<a href="https://heyzippy.io/blog/ai-psle-composition-marking/#where-it-struggles" class="hash-link" aria-label="Direct link to Where it struggles" title="Direct link to Where it struggles" translate="no">​</a></h2>
<p><strong>It does not know your class.</strong> It cannot know that this child has written the same ending
all term, or that this one reached 400 words for the first time. The band can be right while
the context is missing, and the context is often the more useful half.</p>
<p><strong>Voice is invisible to a rubric</strong>, so it is invisible here. A composition can be funny,
strange and completely alive, and the band descriptors have no vocabulary for it. That
judgement belongs to the person who knows what the child is capable of.</p>
<p><strong>It will not save the evening if you read all thirty in full.</strong> Teachers who spot-check the
bands they distrust save time. Teachers who re-read everything save very little. That is a
real trade-off, and better said now than discovered in week two.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="try-it-on-one-you-have-already-marked">Try it on one you have already marked<a href="https://heyzippy.io/blog/ai-psle-composition-marking/#try-it-on-one-you-have-already-marked" class="hash-link" aria-label="Direct link to Try it on one you have already marked" title="Direct link to Try it on one you have already marked" translate="no">​</a></h2>
<p>The honest test is a script whose mark you already know. Run it, and see where it disagrees
with you and where it does not.</p>
<p>The composition grader on <a href="https://heyzippy.io/grade/">the grading page</a> takes a single script without an
account. Zippy is <strong>free for teachers</strong>, and the free tier is a real tier rather than a trial.</p>
<hr>
<p><em>AI and human marker agreement, and the effect of supplying a rubric:
<a href="https://arxiv.org/pdf/2504.13557" target="_blank" rel="noopener noreferrer">arXiv 2504.13557</a>.</em></p>]]></content>
        <author>
            <name>Zippy Team</name>
        </author>
        <category label="psle" term="psle"/>
        <category label="ai-essay-grading" term="ai-essay-grading"/>
        <category label="grading" term="grading"/>
        <category label="teachers" term="teachers"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[O-Level Situational Writing: what makes up the 30 marks]]></title>
        <id>https://heyzippy.io/blog/o-level-situational-writing-marks/</id>
        <link href="https://heyzippy.io/blog/o-level-situational-writing-marks/"/>
        <updated>2026-08-24T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[O-Level Situational Writing carries 30 marks: Task Fulfilment 10, Language 20. The band descriptors, the word count, and why Band 3 to 4 is the real gap.]]></summary>
        <content type="html"><![CDATA[<p>Situational Writing is the half of O-Level English Paper 1 that students most often lose marks
on for reasons that have nothing to do with how well they write. The task is narrow, the marks
are split unevenly, and the thing being tested is not really prose.</p>
<p>Here is how the 30 marks are allocated, and what each band actually asks for.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="the-marks">The marks<a href="https://heyzippy.io/blog/o-level-situational-writing-marks/#the-marks" class="hash-link" aria-label="Direct link to The marks" title="Direct link to The marks" translate="no">​</a></h2>
<p>Syllabus <strong>1184</strong>, Paper 1 <strong>Section B</strong>. Word count <strong>250–350</strong>.</p>
<table><thead><tr><th>Criterion</th><th style="text-align:right">Marks</th><th>What it covers</th></tr></thead><tbody><tr><td>Task Fulfilment</td><td style="text-align:right">10</td><td>Addressing the required points; awareness of purpose, audience and context; use of the given information</td></tr><tr><td>Language</td><td style="text-align:right">20</td><td>Organisation of ideas; clarity of expression; accuracy of language</td></tr></tbody></table>
<p>Both run across Band 1 to Band 5, plus a zero for no creditable response.</p>
<p>Start with the split. <strong>Language carries twice the marks of Task Fulfilment.</strong> Students who have been told Situational Writing is "the comprehension-style one"
are revising for the wrong paper. It is a writing paper with a brief attached.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="task-fulfilment-band-by-band">Task Fulfilment, band by band<a href="https://heyzippy.io/blog/o-level-situational-writing-marks/#task-fulfilment-band-by-band" class="hash-link" aria-label="Direct link to Task Fulfilment, band by band" title="Direct link to Task Fulfilment, band by band" translate="no">​</a></h2>
<table><thead><tr><th>Band</th><th style="text-align:right">Marks</th><th>What the response does</th></tr></thead><tbody><tr><td>None</td><td style="text-align:right">0</td><td>No creditable response</td></tr><tr><td>Band 1</td><td style="text-align:right">1–2</td><td>One point addressed. Purpose, audience and context occasionally addressed. Occasional reference to given information</td></tr><tr><td>Band 2</td><td style="text-align:right">3–4</td><td>Some points addressed. Purpose, audience and context partially addressed. Some reference to given information</td></tr><tr><td>Band 3</td><td style="text-align:right">5–6</td><td>Most points addressed with some development. Purpose, audience and context addressed. Some attempts to use given information to support ideas</td></tr><tr><td>Band 4</td><td style="text-align:right">7–8</td><td>All points addressed with one or more developed in detail. Purpose, audience and context clearly addressed. Ideas generally supported by given information</td></tr><tr><td>Band 5</td><td style="text-align:right">9–10</td><td>All points addressed and developed in detail. Purpose, audience and context fully and clearly addressed. Ideas consistently supported by given information</td></tr></tbody></table>
<p>The Band 3 → Band 4 boundary is where most of the available improvement sits, and it is
mechanical rather than stylistic. Band 3 addresses <strong>most</strong> points. Band 4 addresses <strong>all</strong>
of them, with at least one developed in detail.</p>
<p>A student who answers three of four bullet points beautifully is capped at 6. A student who
answers all four adequately, developing one, reaches 7 or 8. Two marks are settled there
before a single sentence is judged for quality, which is why counting the bullet points and
ticking them off is worth doing before writing anything.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="language-band-by-band">Language, band by band<a href="https://heyzippy.io/blog/o-level-situational-writing-marks/#language-band-by-band" class="hash-link" aria-label="Direct link to Language, band by band" title="Direct link to Language, band by band" translate="no">​</a></h2>
<table><thead><tr><th>Band</th><th style="text-align:right">Marks</th><th>What the response does</th></tr></thead><tbody><tr><td>None</td><td style="text-align:right">0</td><td>No creditable response</td></tr><tr><td>Band 1</td><td style="text-align:right">1–4</td><td>Ideas presented in isolation. Simple vocabulary and grammar structures. A few examples of correct use</td></tr><tr><td>Band 2</td><td style="text-align:right">5–8</td><td>Some ideas coherently presented with attempts at cohesion. Mostly simple structures; meaning usually clear. Varying degrees of accuracy</td></tr><tr><td>Band 3</td><td style="text-align:right">9–12</td><td>Most ideas coherently presented with some cohesion <strong>within</strong> paragraphs. Structures sufficiently varied to convey intended meaning. Often accurate</td></tr><tr><td>Band 4</td><td style="text-align:right">13–16</td><td>Coherent presentation with some cohesion <strong>between</strong> paragraphs. Structures sufficiently varied to convey shades of meaning. Mostly accurate</td></tr><tr><td>Band 5</td><td style="text-align:right">17–20</td><td>Coherent and cohesive across the whole response. Effective use of ambitious vocabulary and structures. Complex language used accurately</td></tr></tbody></table>
<p>Two words carry the Band 3 to Band 4 jump: cohesion <strong>within</strong> paragraphs becomes cohesion
<strong>between</strong> them. That is a change to how the piece is built rather than to the vocabulary in
it. The reader has to be able to follow the argument across the whole response, not just
inside each block.</p>
<p>The second shift is "intended meaning" becoming "shades of meaning", which asks for precision
rather than range. A student reaching for ambitious vocabulary inaccurately is not moving from
Band 4 to Band 5. Band 5 requires complex language used <em>accurately</em>.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="how-the-marks-are-awarded">How the marks are awarded<a href="https://heyzippy.io/blog/o-level-situational-writing-marks/#how-the-marks-are-awarded" class="hash-link" aria-label="Direct link to How the marks are awarded" title="Direct link to How the marks are awarded" translate="no">​</a></h2>
<p>Three principles, and they are the same ones that govern Continuous Writing:</p>
<p><strong>Positive marking.</strong> Marks are awarded for what the candidate has written, never for what is
missing.</p>
<p><strong>Best-fit band first.</strong> The band is decided from overall quality, then the exact mark is
fixed within it. Markers do not accumulate points feature by feature.</p>
<p><strong>The two criteria are marked independently.</strong> A weak response on one does not drag the other
down. A student who misreads the brief but writes fluently still earns their Language marks,
which is why losing Task Fulfilment marks is survivable and losing Language marks is not.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="the-other-half-of-the-paper">The other half of the paper<a href="https://heyzippy.io/blog/o-level-situational-writing-marks/#the-other-half-of-the-paper" class="hash-link" aria-label="Direct link to The other half of the paper" title="Direct link to The other half of the paper" translate="no">​</a></h2>
<p>Continuous Writing, <strong>Section C</strong>, is marked out of 30 on the same 0–20 Language scale but a
different content criterion:</p>
<table><thead><tr><th>Criterion</th><th style="text-align:right">Marks</th></tr></thead><tbody><tr><td>Content</td><td style="text-align:right">10</td></tr><tr><td>Language</td><td style="text-align:right">20</td></tr></tbody></table>
<p>Word count <strong>350–500</strong>. So across Paper 1, Language is worth 40 of the 60 marks. A student
choosing where to spend revision time should know that before they start.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="what-this-does-not-tell-you">What this does not tell you<a href="https://heyzippy.io/blog/o-level-situational-writing-marks/#what-this-does-not-tell-you" class="hash-link" aria-label="Direct link to What this does not tell you" title="Direct link to What this does not tell you" translate="no">​</a></h2>
<p><strong>The band descriptors do not describe a register.</strong> "Purpose, audience and context clearly
addressed" is doing enormous work in a task that might be a letter to a principal or a report
for a committee. Whether the tone is right is a judgement the descriptor gestures at and does
not define, and it is where experienced markers disagree most.</p>
<p><strong>Nothing here rewards interest.</strong> Unlike
<a href="https://heyzippy.io/blog/psle-composition-marking-rubric/">PSLE continuous writing</a>, which explicitly asks
whether the composition is interesting, Situational Writing does not. A dull, accurate,
complete response scores well. Students who have been trained to make writing vivid sometimes
lose marks importing that habit into Section B.</p>
<p><strong>A band is not a next step.</strong> "Language Band 3" tells a student they are in the 9–12
range. It does not tell them the fix is cohesion between paragraphs rather than a bigger
vocabulary. Turning a band into an instruction is the teacher's work, and it is the part that
changes the next attempt.</p>
<p><strong>Word count is a constraint, not a criterion.</strong> Neither rubric awards marks for length. It
is worth saying because students consistently believe otherwise.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="marking-a-class-set-against-this">Marking a class set against this<a href="https://heyzippy.io/blog/o-level-situational-writing-marks/#marking-a-class-set-against-this" class="hash-link" aria-label="Direct link to Marking a class set against this" title="Direct link to Marking a class set against this" translate="no">​</a></h2>
<p>The difficulty with these descriptors is not understanding them. It is applying them the same
way to script 3 and script 31, the same way in March as in September, and the same way across
four teachers who each have their own reading of "shades of meaning".</p>
<p>Zippy marks against this rubric band by band and shows its working: which band, which
descriptor, which line it read. You approve, adjust or discard every mark before a student
sees it. Consistency across a whole department is what it is for.</p>
<p><a href="https://heyzippy.io/grade/">Try it on a script</a>, free for teachers.</p>
<hr>
<p><em>This rubric is SEAB-aligned and is what Zippy grades O-Level writing against; it is not an
official SEAB publication. For authoritative requirements see the current
<a href="https://www.seab.gov.sg/" target="_blank" rel="noopener noreferrer">SEAB syllabus documents</a> for 1184.</em></p>]]></content>
        <author>
            <name>Zippy Team</name>
        </author>
        <category label="rubric" term="rubric"/>
        <category label="grading" term="grading"/>
        <category label="teachers" term="teachers"/>
        <category label="teaching" term="teaching"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How a PSLE composition is marked: the rubric, explained]]></title>
        <id>https://heyzippy.io/blog/psle-composition-marking-rubric/</id>
        <link href="https://heyzippy.io/blog/psle-composition-marking-rubric/"/>
        <updated>2026-08-23T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[PSLE continuous writing is marked out of 36: Content 18, Language and Organisation 18. What each band asks for, and how two scripts earned 32 and 34.]]></summary>
        <content type="html"><![CDATA[<p>Most explanations of PSLE composition marking stop at "content and language". That is true and
useless. It does not tell a parent why one script got 24 and another got 32, and it does not
help a teacher explain the gap to the child who wrote the 24.</p>
<p>Here is the actual rubric, band by band, with two real scripts marked against it.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="the-marks">The marks<a href="https://heyzippy.io/blog/psle-composition-marking-rubric/#the-marks" class="hash-link" aria-label="Direct link to The marks" title="Direct link to The marks" translate="no">​</a></h2>
<p>Continuous writing for Primary 5 and 6 carries <strong>36 marks</strong>, split evenly:</p>
<table><thead><tr><th>Criterion</th><th style="text-align:right">Marks</th><th>What it covers</th></tr></thead><tbody><tr><td>Content</td><td style="text-align:right">18</td><td>Relevance, interest, and development of ideas</td></tr><tr><td>Language &amp; Organisation</td><td style="text-align:right">18</td><td>Grammar, expression, vocabulary, sequencing, paragraphing, linking</td></tr></tbody></table>
<p>Both criteria run across six levels: No Credit, Beginning, Developing, Satisfactory,
Proficient, Exemplary.</p>
<p><img decoding="async" loading="lazy" alt="The PSLE P5/6 Continuous Writing rubric in Zippy, showing Content and Language &amp;amp; Organisation across six bands from No Credit to Exemplary, with the mark range for each band" src="https://heyzippy.io/assets/images/rubric-psle-p56-continuous-writing-73c9dcaa2e766e0fbbb5de1a0184e1ff.png" width="2640" height="1434" class="img_CNVe"></p>
<p><em>The same rubric as Zippy holds it. Both criteria carry the same six bands and the same mark
ranges: 0, then 1–4, 5–8, 9–12, 13–15, 16–18.</em></p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="content-band-by-band">Content, band by band<a href="https://heyzippy.io/blog/psle-composition-marking-rubric/#content-band-by-band" class="hash-link" aria-label="Direct link to Content, band by band" title="Direct link to Content, band by band" translate="no">​</a></h2>
<table><thead><tr><th>Band</th><th style="text-align:right">Marks</th><th>What the script does</th></tr></thead><tbody><tr><td>No Credit</td><td style="text-align:right">0</td><td>No meaningful response, or copied text</td></tr><tr><td>Beginning</td><td style="text-align:right">1–4</td><td>A slight attempt at the topic. Ideas sparse or disjointed</td></tr><tr><td>Developing</td><td style="text-align:right">5–8</td><td>Some relevance, some attempt to interest. Minimally developed, limited elaboration, possible plot holes or an incomplete ending</td></tr><tr><td>Satisfactory</td><td style="text-align:right">9–12</td><td>Generally relevant, fairly interesting, sufficiently developed. Ideas present but may lack elaboration or have minor pacing issues</td></tr><tr><td>Proficient</td><td style="text-align:right">13–15</td><td>Relevant, interesting, well developed. Clear idea progression, believable details, coherent ending</td></tr><tr><td>Exemplary</td><td style="text-align:right">16–18</td><td>Fully relevant, highly interesting, thoroughly developed. Well-elaborated ideas, strong cause-effect flow, complete and satisfying ending</td></tr></tbody></table>
<p>Read the jump from Satisfactory to Proficient closely, because that is where most compositions
sit and where most marks are won. It is not about better words. It is <strong>elaboration, idea
progression and an ending that actually lands</strong>. "Sufficiently developed" becomes "well
developed"; "may lack elaboration" becomes "believable details".</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="language--organisation-band-by-band">Language &amp; Organisation, band by band<a href="https://heyzippy.io/blog/psle-composition-marking-rubric/#language--organisation-band-by-band" class="hash-link" aria-label="Direct link to Language &amp; Organisation, band by band" title="Direct link to Language &amp; Organisation, band by band" translate="no">​</a></h2>
<table><thead><tr><th>Band</th><th style="text-align:right">Marks</th><th>What the script does</th></tr></thead><tbody><tr><td>No Credit</td><td style="text-align:right">0</td><td>No meaningful response, or copied text</td></tr><tr><td>Beginning</td><td style="text-align:right">1–4</td><td>Limited correct use of grammar, expression, spelling, punctuation. A few examples of simple vocabulary and sentence structures</td></tr><tr><td>Developing</td><td style="text-align:right">5–8</td><td>Uneven accuracy, though meaning generally clear. Relies mostly on simple vocabulary and structures</td></tr><tr><td>Satisfactory</td><td style="text-align:right">9–12</td><td>Some accuracy. Fairly adequate range of vocabulary and structures. Fairly good sequencing, paragraphing and linking</td></tr><tr><td>Proficient</td><td style="text-align:right">13–15</td><td>General accuracy. Adequate range used appropriately in most instances. Ideas organised well through clear sequencing and linking</td></tr><tr><td>Exemplary</td><td style="text-align:right">16–18</td><td>Consistent accuracy. Wide range used effectively and appropriately. Ideas organised very well</td></tr></tbody></table>
<p>Note what the top band does not say. It does not ask for long words. It asks for a <strong>wide
range used effectively and appropriately</strong>, which is a different instruction, and a kinder
one. A well-placed short sentence counts. A misused "surreptitiously" does not.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="how-the-marks-are-actually-awarded">How the marks are actually awarded<a href="https://heyzippy.io/blog/psle-composition-marking-rubric/#how-the-marks-are-actually-awarded" class="hash-link" aria-label="Direct link to How the marks are actually awarded" title="Direct link to How the marks are actually awarded" translate="no">​</a></h2>
<p>Four principles govern the marking, and they matter more than the band descriptors:</p>
<p><strong>Best-fit level first, then the mark within it.</strong> A marker decides the band from the overall
impression, then fixes the exact number. They do not add up points for individual features.</p>
<p><strong>Positive marking.</strong> Marks are awarded for what the script clearly demonstrates, not deducted
for what is missing.</p>
<p><strong>Consistency.</strong> Small edits should not cause large score changes. Only a meaningful
improvement should shift the band.</p>
<p><strong>Zero is reserved.</strong> It is for blank, nonsensical or copied responses. Not for bad.</p>
<p>There is one hard rule worth knowing: <strong>if the script does not address the topic, Language &amp;
Organisation is capped at 12 marks.</strong> A beautifully written composition about the wrong thing
cannot reach the top bands. This is the single most expensive mistake a strong writer makes.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="two-scripts-marked">Two scripts, marked<a href="https://heyzippy.io/blog/psle-composition-marking-rubric/#two-scripts-marked" class="hash-link" aria-label="Direct link to Two scripts, marked" title="Direct link to Two scripts, marked" translate="no">​</a></h2>
<p><strong>"Making a difficult choice", 32/36.</strong> A boy finds a wallet holding more than a thousand
dollars while his mother is in hospital with lung cancer. He takes it, feels the guilt settle
"like a heavy stone", shows his mother, and returns it the next morning.</p>
<table><thead><tr><th>Criterion</th><th>Band</th><th style="text-align:right">Marks</th><th>Why</th></tr></thead><tbody><tr><td>Content</td><td>Exemplary</td><td style="text-align:right">16/18</td><td>Strong cause-effect flow: illness → temptation → guilt → redemption. Believable motivations, ending tied to theme</td></tr><tr><td>Language &amp; Organisation</td><td>Proficient–Exemplary</td><td style="text-align:right">16/18</td><td>Consistent accuracy, wide vocabulary used effectively, short sentences for impact: "She did not need to."</td></tr></tbody></table>
<p>The structural move that earns the Content mark is that the choice is <strong>made, regretted,
corrected, and then reflected on</strong>. Choice → consequence → lesson. Mid-band scripts describe a
difficult choice. Top-band scripts complete that loop.</p>
<p><strong>"Being thankful" (PSLE 2025), 34/36.</strong> A boy bored at a class party knocks over a
bookshelf, finds a biscuit tin of letters written by the 2021 cohort during the pandemic, and
rejoins the party.</p>
<table><thead><tr><th>Criterion</th><th>Band</th><th style="text-align:right">Marks</th><th>Why</th></tr></thead><tbody><tr><td>Content</td><td>Exemplary</td><td style="text-align:right">17/18</td><td>Theme woven through the story rather than stated at the end. Complete, emotionally satisfying ending</td></tr><tr><td>Language &amp; Organisation</td><td>Exemplary</td><td style="text-align:right">17/18</td><td>"revelled", "cascaded", "faint, as if written by shaking hands". Fragments used deliberately: "The pandemic years."</td></tr></tbody></table>
<p>The difference between 32 and 34 is not vocabulary. Both scripts have strong vocabulary. It is
that the second one never states its theme. Archie does not tell you he is grateful; you
watch him change. Showing rather than telling is the defining quality of the top Content band,
and it is teachable in a way that "use better words" is not.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="what-this-does-not-tell-you">What this does not tell you<a href="https://heyzippy.io/blog/psle-composition-marking-rubric/#what-this-does-not-tell-you" class="hash-link" aria-label="Direct link to What this does not tell you" title="Direct link to What this does not tell you" translate="no">​</a></h2>
<p>A rubric is a measuring instrument, and every measuring instrument has things it cannot see.</p>
<p><strong>It cannot see voice.</strong> The line "the whole affair was nothing more than a long yawn dressed
in crepe paper" is the funniest thing in either script. It earns its marks under "wide range
used effectively", but nothing in the descriptor is reaching for <em>that</em>. A child can score 30
with no discernible personality on the page.</p>
<p><strong>Two markers can disagree inside a band and both be right.</strong> Content 16 and Content 17 are
genuinely close. If your child's script came back a mark below what you expected, that is
usually the honest width of the band, not an error.</p>
<p><strong>It says nothing about improvement.</strong> A script that moves from 18 to 24 in a term is a
significant achievement, and the rubric has no way to record that. Only the teacher who saw
both drafts knows.</p>
<p><strong>A mark is not a diagnosis.</strong> "Content 11" tells you the band. It does not tell you the
child buried a good idea in paragraph four, or ended two sentences early because they ran out
of time. That reading is the teacher's job, and it is the part that actually changes the next
composition.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="applying-it-across-a-class">Applying it across a class<a href="https://heyzippy.io/blog/psle-composition-marking-rubric/#applying-it-across-a-class" class="hash-link" aria-label="Direct link to Applying it across a class" title="Direct link to Applying it across a class" translate="no">​</a></h2>
<p>Knowing the six bands is one thing. Applying them the same way to script 3 and script 30, at
eleven at night, is the part nobody writes rubrics about, and it is where a class set stops
being a marking problem and starts being a fairness one.</p>
<p><a href="https://heyzippy.io/blog/ai-psle-composition-marking/">How AI helps teachers mark PSLE compositions</a> covers what
that looks like in practice, including photographed handwriting and how often a machine agrees
with a human marker.</p>
<hr>
<p>The secondary equivalent is <a href="https://heyzippy.io/blog/o-level-situational-writing-marks/">O-Level Situational Writing</a>, which splits its 30 marks differently. If you want to see this rubric applied to a whole class rather than one script, <a href="https://heyzippy.io/blog/ai-psle-composition-marking/">marking thirty PSLE compositions</a> walks through it, and <a href="https://heyzippy.io/blog/ai-grading-rubrics-that-work/">AI grading is only as good as the rubric behind it</a> covers how the bands are configured.</p>
<hr>
<p><em>The rubric above is the one Zippy grades PSLE continuous writing against, and it is
syllabus-aligned rather than an official SEAB publication. For the authoritative subject
requirements, check the current <a href="https://www.moe.gov.sg/" target="_blank" rel="noopener noreferrer">MOE English syllabus</a> and SEAB's
examination materials.</em></p>]]></content>
        <author>
            <name>Zippy Team</name>
        </author>
        <category label="psle" term="psle"/>
        <category label="rubric" term="rubric"/>
        <category label="grading" term="grading"/>
        <category label="teachers" term="teachers"/>
        <category label="parents" term="parents"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How teachers stay in control of AI marking]]></title>
        <id>https://heyzippy.io/blog/ai-grading-teacher-control/</id>
        <link href="https://heyzippy.io/blog/ai-grading-teacher-control/"/>
        <updated>2026-08-22T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[An AI marker on its own agrees with a human about a third of the time. What makes it useful is where the teacher's judgement goes in, and if it stays.]]></summary>
        <content type="html"><![CDATA[<p>"Does AI marking actually save you anything, or does it just move the work?"</p>
<p>A teacher asked it that way, and it is the right question to ask first.</p>
<p>Most teachers who have tried an AI marker know the failure mode. You rewrite a comment it got wrong, the tool runs again, and your rewrite is gone. So you fix the same sentence twice. From then on you are supervising the thing that was supposed to save you the time, and supervising thirty of anything is no saving at all.</p>
<p>So the test is a narrow one. When you change what it wrote, does your change stick?</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="the-honest-answer-starts-at-335">The honest answer starts at 33.5%<a href="https://heyzippy.io/blog/ai-grading-teacher-control/#the-honest-answer-starts-at-335" class="hash-link" aria-label="Direct link to The honest answer starts at 33.5%" title="Direct link to The honest answer starts at 33.5%" translate="no">​</a></h2>
<p>Researchers at the University of Georgia measured how often an AI model landed on the same mark as a human marker. It was <strong>33.5%</strong> of the time. Give the model the teacher's own rubric and separate work puts it above 50%, and names the ways it still goes wrong: an incomplete rubric makes it overvalue neat presentation, an unusual-but-correct answer gets punished, and multilingual writing gets marked down for being multilingual.</p>
<p>A third is not a marking tool. A third is a second opinion you have to check, thirty times, and checking thirty is the job you already had.</p>
<p>That number is why nothing in Zippy says it marks your class. It drafts. You mark. The saving is real and it lives in one specific place: the first pass, the hour of reading thirty pieces and typing thirty sets of comments from nothing. Everything after the first pass is a judgement, and we have spent this release making sure the judgement stays yours and stays put.</p>
<p>Four places it goes in.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="1-your-rubric-goes-in-first-and-the-criteria-on-screen-are-yours">1. Your rubric goes in first, and the criteria on screen are yours<a href="https://heyzippy.io/blog/ai-grading-teacher-control/#1-your-rubric-goes-in-first-and-the-criteria-on-screen-are-yours" class="hash-link" aria-label="Direct link to 1. Your rubric goes in first, and the criteria on screen are yours" title="Direct link to 1. Your rubric goes in first, and the criteria on screen are yours" translate="no">​</a></h2>
<p>Zippy marks against the criteria you gave it, in the bands you named. <em>Content &amp; Ideas</em>, <em>Language accuracy</em>, whatever your centre calls them and however many there are. It does not carry a house rubric of its own and quietly apply that instead.</p>
<p>This is the mechanism the rest of the post rests on, and setting it up is the last section. The difference between an AI marker that agrees with you a third of the time and one that agrees with you half the time is whether it was given your criteria before it read anything.</p>
<p><img decoding="async" loading="lazy" alt="Zippy&amp;#39;s evaluation panel, headed &amp;quot;Graded with Narrative writing&amp;quot;, with a Change link and scores for Content &amp;amp; ideas, Language accuracy and Total" src="https://heyzippy.io/assets/images/rubric-criteria-5c4520a7202ec4d3d17863ce7b0355ad.png" width="1010" height="840" class="img_CNVe"></p>
<p><em>The top of the evaluation names the rubric it marked against, <code>Narrative writing</code> here, with <strong>Change</strong> beside it. The bands underneath are that rubric's criteria, not ours: 5/9, 5/9, 10/18.</em></p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="2-the-first-pass-is-zippys-every-mark-on-the-page-is-editable">2. The first pass is Zippy's. Every mark on the page is editable<a href="https://heyzippy.io/blog/ai-grading-teacher-control/#2-the-first-pass-is-zippys-every-mark-on-the-page-is-editable" class="hash-link" aria-label="Direct link to 2. The first pass is Zippy's. Every mark on the page is editable" title="Direct link to 2. The first pass is Zippy's. Every mark on the page is editable" translate="no">​</a></h2>
<p>Click any highlight on the script and the comment behind it opens: what Zippy thinks is wrong, the suggested rewrite, and which criterion the note counts towards. Change the wording, change the suggestion, or delete the note. Edit and delete sit on the annotation itself, where you are already reading it.</p>
<p>Editing or removing an annotation never moves the score on its own. The score moves when you edit the score, or when you ask for a re-grade.</p>
<p><img decoding="async" loading="lazy" alt="An annotation popover open over the phrase &amp;quot;going to be rain soon&amp;quot;, carrying a grammar note, a LANGUAGE ACCURACY tag, and edit and delete buttons" src="https://heyzippy.io/assets/images/annotation-edit-a829d63ce768ea1fd1cbcc307c620795.png" width="830" height="470" class="img_CNVe"></p>
<p><em>The note on "their going to be rain soon", tagged <code>LANGUAGE ACCURACY</code> so you can see which criterion it counts towards. The pencil and the bin are on the note itself.</em></p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="3-what-you-decide-survives-the-next-run">3. What you decide survives the next run<a href="https://heyzippy.io/blog/ai-grading-teacher-control/#3-what-you-decide-survives-the-next-run" class="hash-link" aria-label="Direct link to 3. What you decide survives the next run" title="Direct link to 3. What you decide survives the next run" translate="no">​</a></h2>
<p>This is the one that decides whether the rest is worth anything. Re-grade is a button you press: it costs half a credit and it never runs by itself. When it runs, your corrections go into the marking rather than being wiped by it. Where Zippy still disagrees with something you changed, it records the disagreement beside your value instead of applying it. Your number stays on the page. Re-grade a class of thirty and you get thirty records to look at when you feel like it, and no dialog boxes to click through.</p>
<p>Undo is real in the other direction too. Every field you edit carries an <code>EDITED</code> chip, and the chip is the button: click it and Zippy's original wording comes back exactly as written, because it was stored the moment you changed it. There is a <strong>Revert all</strong> for the whole piece.</p>
<p><img decoding="async" loading="lazy" alt="The evaluation panel after a teacher has edited four fields, showing EDITED chips and a Revert all strip" src="https://heyzippy.io/assets/images/5revertonecriterion-dfdd14f756cf104bd037d890c3b4902a.png" width="1536" height="1488" class="img_CNVe"></p>
<p><em><code>You edited 4 fields</code>, with Revert all above and an <code>EDITED</code> chip on each one. Revert a mark and the totals move with it.</em></p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="4-nothing-leaves-the-room-until-you-press-release">4. Nothing leaves the room until you press Release<a href="https://heyzippy.io/blog/ai-grading-teacher-control/#4-nothing-leaves-the-room-until-you-press-release" class="hash-link" aria-label="Direct link to 4. Nothing leaves the room until you press Release" title="Direct link to 4. Nothing leaves the room until you press Release" translate="no">​</a></h2>
<p>Not the first draft, not the re-grade, not a comment you changed your mind about halfway through. While a piece is held, the student's own view has no feedback in it, because the server does not send any. It is not hidden behind a panel somewhere; it is simply not there yet.</p>
<p>And your students never see that you were involved. Not the <code>EDITED</code> chips, not what Zippy wrote first, not the timestamp. What goes out is the mark and the comment under your name, which is what a report has always been.</p>
<p><img decoding="async" loading="lazy" alt="Page one of an exported grading report, showing scores by category, feedback and next steps" src="https://heyzippy.io/assets/images/export-gradingAFTERp1-1478064bf20c826224f420fe0729d0d0.png" width="1190" height="1683" class="img_CNVe"></p>
<p><em>The two-page report a parent receives: scores by category, feedback and next steps on page one, the annotated script on page two.</em></p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="where-the-hours-actually-are">Where the hours actually are<a href="https://heyzippy.io/blog/ai-grading-teacher-control/#where-the-hours-actually-are" class="hash-link" aria-label="Direct link to Where the hours actually are" title="Direct link to Where the hours actually are" translate="no">​</a></h2>
<p>It is worth being straight about how much of a week marking actually is, because Singapore publishes the number.</p>
<p>TALIS 2024 surveyed about 3,500 teachers across all 145 public secondary schools here. They reported a <strong>47.3-hour</strong> week against an OECD average of 41, with <strong>6.4 hours</strong> of it spent marking and correcting student work.</p>
<p>Marking is not the biggest thing on that list, and it has been falling: about 7 hours in 2018, 6.4 now. Administration held steady at roughly 4 hours. What grew is lesson planning, student counselling, co-curricular activities and talking to parents.</p>
<p>So if a head of department tells you marking is not what eats the week, they are right, and Zippy does not touch most of the rest. What it changes is the first pass: thirty scripts read and commented in the time it takes to read three, with every mark still yours to set. Against 6.4 hours a week that is worth having, and it is not the whole week.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="setting-it-up-which-is-where-the-control-actually-starts">Setting it up, which is where the control actually starts<a href="https://heyzippy.io/blog/ai-grading-teacher-control/#setting-it-up-which-is-where-the-control-actually-starts" class="hash-link" aria-label="Direct link to Setting it up, which is where the control actually starts" title="Direct link to Setting it up, which is where the control actually starts" translate="no">​</a></h2>
<p>Everything above depends on the rubric being yours, and that is something you configure rather than something we ship. It lives under <strong>Grading</strong>, in three tabs.</p>
<p><strong>Rubrics</strong> is the grid. Criteria down the side, each with a sentence saying what it covers; five bands across the top; and a descriptor you wrote in every cell. Tag a rubric by subject, level and category so the right one is offered for the right piece.</p>
<p><img decoding="async" loading="lazy" alt="The Rubrics tab showing a Primary 4 narrative writing rubric, with Content and Language criteria and their descriptors under the Beginning and Emerging bands" src="https://heyzippy.io/assets/images/rubric-bands-016ccdefd310c0587649613d53ea2133.png" width="1300" height="818" class="img_CNVe"></p>
<p><em>The <code>Rubrics</code> tab, with a Primary 4 narrative writing rubric open. Tagged by subject, level and category, so the right rubric is offered for the right piece. Content and Language are shown under two of the five bands.</em></p>
<p><strong>Skill Maps</strong> is the finer grain underneath. One line per skill, grouped by trait, with a descriptor at each of the five levels. <code>Ideas: Deepen a key moment</code> is a skill and <code>Ideas &amp; Content</code> is the trait it rolls into. This is what produces the per-skill lines on a marked piece.</p>
<p><img decoding="async" loading="lazy" alt="A skill map with ten skills grouped under Ideas &amp;amp; Content, each written out across the Beginning to Exemplary levels" src="https://heyzippy.io/assets/images/skill-map-47af3a583e575145a9a736ddb3048dd4.png" width="1260" height="750" class="img_CNVe"></p>
<p><em>A skill map. Ten skills grouped under Ideas &amp; Content, each written out across the five levels from Beginning to Exemplary.</em></p>
<p><strong>Presets</strong> is where you say which of those a piece is marked against, and what else the run should do. Attach an existing rubric, or build an inline one from a skill map. Decide whether students receive spelling and punctuation corrections at all. There is a free-text <strong>Prompt</strong> box for the instructions that do not fit a grid: a house convention, the thing your P5s always get wrong, a quirk of your mark scheme. The grader is handed it verbatim.</p>
<p><img decoding="async" loading="lazy" alt="A grading preset showing the rubrics attached to an activity, teacher attribution, and a Corrections toggle" src="https://heyzippy.io/assets/images/grading-preset-aeebb304588296e0092d328cf169c1a2.png" width="1080" height="780" class="img_CNVe"></p>
<p><em>A grading preset. Which rubrics this activity marks against, whose name the feedback carries, and whether corrections reach the student at all.</em></p>
<p>That setup is where the 33.5% and the above-50% at the top of this post come apart. A generic marker is guessing at what good writing looks like in your centre. A marker holding your descriptors does not have to guess.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="back-to-the-question">Back to the question<a href="https://heyzippy.io/blog/ai-grading-teacher-control/#back-to-the-question" class="hash-link" aria-label="Direct link to Back to the question" title="Direct link to Back to the question" translate="no">​</a></h2>
<p>Does AI marking actually save you anything, or does it just move the work?</p>
<p>It moves the work if you have to supervise it. It helps if it holds your rubric, keeps your corrections, and waits for your word before anything reaches a child. That is the difference between a tool you check thirty times and one that lets you be the same teacher on script thirty as on script one, at eleven at night, when it counts most.</p>
<hr>
<p>The rubric setup this depends on is covered in <a href="https://heyzippy.io/blog/ai-grading-rubrics-that-work/">AI grading is only as good as the rubric behind it</a>. For the mark schemes themselves, see <a href="https://heyzippy.io/blog/psle-composition-marking-rubric/">how PSLE composition is marked</a> and <a href="https://heyzippy.io/blog/o-level-situational-writing-marks/">what makes up the 30 marks in O-Level Situational Writing</a>. The four changes above are described in <a href="https://heyzippy.io/blog/whats-new-editing-regrading-skills/">what's new</a>.</p>
<hr>
<p><em>Sources: AI/human marker agreement and rubric-supplied accuracy, <a href="https://arxiv.org/pdf/2504.13557" target="_blank" rel="noopener noreferrer">arXiv 2504.13557</a>. Teacher hours, <a href="https://gpseducation.oecd.org/CountryProfile?primaryCountry=SGP" target="_blank" rel="noopener noreferrer">TALIS 2024 via OECD Education GPS</a>.</em></p>]]></content>
        <author>
            <name>Zippy Team</name>
        </author>
        <category label="grading" term="grading"/>
        <category label="teaching" term="teaching"/>
        <category label="feedback" term="feedback"/>
        <category label="ai-in-education" term="ai-in-education"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How to teach Gen Alpha: are they actually harder to teach?]]></title>
        <id>https://heyzippy.io/blog/how-to-teach-gen-alpha/</id>
        <link href="https://heyzippy.io/blog/how-to-teach-gen-alpha/"/>
        <updated>2026-08-21T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Teachers say Gen Alpha are harder to teach. The attention evidence is thinner than it sounds, and the workload numbers point somewhere other than marking.]]></summary>
        <content type="html"><![CDATA[<p>"Students today are harder to teach."</p>
<p>You hear it in staffrooms and you hear it from centre directors. Gen Alpha are harder to engage, more easily distracted, less willing to persist with anything that feels repetitive. To a teacher holding thirty-five children and a marking pile, it does not feel like an opinion.</p>
<p>It is worth taking the claim apart before building anything on it. The evidence is thinner than the confidence with which it gets repeated, and the part that does hold up points somewhere more useful than "children have changed".</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="what-the-attention-data-actually-says">What the attention data actually says<a href="https://heyzippy.io/blog/how-to-teach-gen-alpha/#what-the-attention-data-actually-says" class="hash-link" aria-label="Direct link to What the attention data actually says" title="Direct link to What the attention data actually says" translate="no">​</a></h2>
<p>Between 14 and 28 May 2024, the US National Center for Education Statistics surveyed 1,714 public schools through its <a href="https://nces.ed.gov/whatsnew/press_releases/7_18_2024.asp" target="_blank" rel="noopener noreferrer">School Pulse Panel</a>. Asked what was getting in the way of learning that year, 26% of school leaders said a lack of focus or inattention from students was having a severe negative impact and a further 49% said moderate. At 75% combined it was the most commonly reported barrier of any on the list.</p>
<p>Two things about that number before anyone leans on it. It is American, and it is school leaders reporting a perception rather than anyone measuring attention. What it establishes is that the people running schools believe focus is their biggest problem. That is not nothing, and it is also not evidence that Gen Alpha can concentrate for less time than the cohort before them.</p>
<p>The more interesting version of the observation is the one every teacher has made themselves. A child who cannot stay with a thirty-minute worksheet will spend two hours failing at the same level of a game. The game is more entertaining, certainly. It is also doing four things the worksheet does not: adjusting difficulty to the player, responding immediately, making progress visible, and being clear about what to try next.</p>
<p>None of that is an argument for gamifying a lesson. Those four properties belong to feedback, not to entertainment, and they are what a game borrowed from good teaching in the first place.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="feedback-arrives-after-the-thinking-has-moved-on">Feedback arrives after the thinking has moved on<a href="https://heyzippy.io/blog/how-to-teach-gen-alpha/#feedback-arrives-after-the-thinking-has-moved-on" class="hash-link" aria-label="Direct link to Feedback arrives after the thinking has moved on" title="Direct link to Feedback arrives after the thinking has moved on" translate="no">​</a></h2>
<p>A child spends an afternoon on a composition. It is collected, taken home, marked between lessons and admin, and returned a fortnight later. The marking may be careful and correct. By the time it lands, the child has stopped thinking about it.</p>
<p>There is a second problem underneath the timing, which is that feedback is not one thing. Wisniewski, Zierer and Hattie's 2020 meta-analysis, <a href="https://www.frontiersin.org/journals/psychology/articles/10.3389/fpsyg.2019.03087/full" target="_blank" rel="noopener noreferrer">The Power of Feedback Revisited</a>, pooled 435 studies and more than 61,000 participants. The headline effect of feedback overall was medium, d = 0.48, and the authors are explicit that the average conceals more than it reveals.</p>
<p>Split by how much information the feedback carried, the range is wide. High-information feedback, which told the learner something about the task, the process and how to regulate their own work, came in at d = 0.99. Reinforcement and punishment, which carry almost no information beyond a verdict, came in at d = 0.24. Roughly four times the effect, from the same activity done differently.</p>
<p>So "give students more feedback" is the wrong instruction. A tick, a grade and "good effort" are feedback, and they sit at the bottom of that range.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="three-children-one-worksheet">Three children, one worksheet<a href="https://heyzippy.io/blog/how-to-teach-gen-alpha/#three-children-one-worksheet" class="hash-link" aria-label="Direct link to Three children, one worksheet" title="Direct link to Three children, one worksheet" translate="no">​</a></h2>
<p>In a class of thirty-five, one child has a skill secure, a second is missing the foundation underneath it, and a third understands it but cannot yet use it without being prompted. All three receive the same worksheet and the same homework.</p>
<p>Teachers know this. They can usually name the three children. What they are trying to do has a name, differentiated instruction, and the idea is decades old.</p>
<p>The constraint has never been insight. It is arithmetic. To personalise properly you need a per-skill picture of every child, material aimed at each gap, and a check that the gap closed. Across thirty-five children and multiple classes, the first is a marking workload nobody has, the second is a preparation workload nobody has, and the third almost never happens. Differentiation in practice collapses into three worksheets labelled by ability, set once and never re-checked.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="where-the-hours-actually-go">Where the hours actually go<a href="https://heyzippy.io/blog/how-to-teach-gen-alpha/#where-the-hours-actually-go" class="hash-link" aria-label="Direct link to Where the hours actually go" title="Direct link to Where the hours actually go" translate="no">​</a></h2>
<p><a href="https://gpseducation.oecd.org/CountryProfile?primaryCountry=SGP" target="_blank" rel="noopener noreferrer">TALIS 2024</a> surveyed about 3,500 teachers and principals across all 145 public secondary schools in Singapore, plus ten private ones, between April and August 2024. Full-time teachers reported 47.3 hours a week against an OECD average of 41, with 6.4 of those hours on marking and correcting student work against an OECD average of 4.6, and about four hours on general administrative work.</p>
<p>The stress figures follow the hours: 53% named too much administrative work as a source of significant stress and 49% named too much marking.</p>
<p>One detail in that data cuts against the easy version of this argument, so it belongs here rather than in a footnote. Marking time in Singapore has gone <strong>down</strong> by about an hour a week since TALIS 2018, while total working hours went up. The growth is in lesson planning, counselling, co-curricular activities and communicating with parents. Marking is not a workload crisis getting worse. It is a steady 6.4 hours, 40% above the OECD average, that half of teachers name as a stressor, and it sits directly between a child doing something and that child finding out how it went.</p>
<p>That last part is why it is worth attacking, and it is a narrower claim than "teachers are drowning".</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="shortening-the-distance">Shortening the distance<a href="https://heyzippy.io/blog/how-to-teach-gen-alpha/#shortening-the-distance" class="hash-link" aria-label="Direct link to Shortening the distance" title="Direct link to Shortening the distance" translate="no">​</a></h2>
<p>A teacher should not have to spend an evening reading thirty-five compositions to discover that eight children are missing the same thing.</p>
<p>What Zippy does with that evening is specific. Every piece is marked against the criteria you gave it, per criterion and per skill, with each comment tied to the sentence that earned it. Those skills accumulate into a record for each child across the term: secure here, developing there, missed in three of the last four pieces. From that record Zippy drafts practice aimed at what the marking actually found, for one child or for all eight carrying the same gap. You read it and change it before anything reaches anyone. It comes back marked against the same skills, so you can see whether the gap closed.</p>
<p>The fifth step is the one most personalised-learning products leave out. Generating differentiated worksheets is easy now. Checking whether they worked is what makes it learning rather than activity.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="what-this-does-not-solve">What this does not solve<a href="https://heyzippy.io/blog/how-to-teach-gen-alpha/#what-this-does-not-solve" class="hash-link" aria-label="Direct link to What this does not solve" title="Direct link to What this does not solve" translate="no">​</a></h2>
<p>An AI marker handed no rubric agrees with a human marker 33.5% of the time, measured by researchers at the University of Georgia (<a href="https://arxiv.org/pdf/2504.13557" target="_blank" rel="noopener noreferrer">arXiv 2504.13557</a>). Given the teacher's own rubric it clears 50%. Neither number is a marking tool you can leave alone, which is why nothing here is assigned to a child without a teacher reading it first.</p>
<p>A diagnosis is also not a lesson. Knowing that eight children are weak on paragraphing does not teach paragraphing to them. It tells you what Tuesday is for, which is a real improvement on not knowing and considerably less than the "AI tutor for every child" framing implies.</p>
<p>And the evidence in this post has holes worth naming. The attention data is American and secondary-weighted. The workload data is Singapore secondary teachers only, so the primary classroom where PSLE writing actually happens is not directly measured by it. Nothing here shows that faster feedback improves outcomes for Gen Alpha specifically, because that study has not been done.</p>
<p>What is left after the caveats is still enough to act on. Feedback carrying real information works about four times as well as a verdict, teachers spend 6.4 hours a week producing it, and most of it arrives after the child has moved on. Closing that gap does not require anyone to decide whether a generation has changed.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="frequently-asked-questions">Frequently asked questions<a href="https://heyzippy.io/blog/how-to-teach-gen-alpha/#frequently-asked-questions" class="hash-link" aria-label="Direct link to Frequently asked questions" title="Direct link to Frequently asked questions" translate="no">​</a></h2>
<h3 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="are-gen-alpha-students-harder-to-teach">Are Gen Alpha students harder to teach?<a href="https://heyzippy.io/blog/how-to-teach-gen-alpha/#are-gen-alpha-students-harder-to-teach" class="hash-link" aria-label="Direct link to Are Gen Alpha students harder to teach?" title="Direct link to Are Gen Alpha students harder to teach?" translate="no">​</a></h3>
<p>The strongest available evidence is perception rather than measurement. In the May 2024 NCES School Pulse Panel, 75% of US school leaders said student inattention was having a moderate or severe negative impact on learning, the top barrier reported. No study establishes that Gen Alpha can concentrate for less time than earlier cohorts.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="how-does-gen-alpha-learn-differently">How does Gen Alpha learn differently?<a href="https://heyzippy.io/blog/how-to-teach-gen-alpha/#how-does-gen-alpha-learn-differently" class="hash-link" aria-label="Direct link to How does Gen Alpha learn differently?" title="Direct link to How does Gen Alpha learn differently?" translate="no">​</a></h3>
<p>They are used to systems that respond immediately, adjust to them and show progress. Classroom learning that relies on delayed feedback and one worksheet for everyone offers none of those three, which changes what feels engaging rather than what is possible.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="how-can-teachers-engage-gen-alpha-students">How can teachers engage Gen Alpha students?<a href="https://heyzippy.io/blog/how-to-teach-gen-alpha/#how-can-teachers-engage-gen-alpha-students" class="hash-link" aria-label="Direct link to How can teachers engage Gen Alpha students?" title="Direct link to How can teachers engage Gen Alpha students?" translate="no">​</a></h3>
<p>Shorten the gap between a child doing something and finding out how it went, and make the feedback carry information rather than a verdict. Feedback about the task, the process and self-regulation measured d = 0.99 across 435 studies, against d = 0.24 for reinforcement and punishment.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="how-much-time-do-teachers-spend-marking">How much time do teachers spend marking?<a href="https://heyzippy.io/blog/how-to-teach-gen-alpha/#how-much-time-do-teachers-spend-marking" class="hash-link" aria-label="Direct link to How much time do teachers spend marking?" title="Direct link to How much time do teachers spend marking?" translate="no">​</a></h3>
<p>Full-time secondary teachers in Singapore reported 6.4 hours a week on marking and correcting student work in TALIS 2024, against an OECD average of 4.6, within a 47.3-hour week. 49% named too much marking as a source of significant stress.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="how-can-ai-help-teachers-personalise-learning">How can AI help teachers personalise learning?<a href="https://heyzippy.io/blog/how-to-teach-gen-alpha/#how-can-ai-help-teachers-personalise-learning" class="hash-link" aria-label="Direct link to How can AI help teachers personalise learning?" title="Direct link to How can AI help teachers personalise learning?" translate="no">​</a></h3>
<p>By carrying the arithmetic, not the judgement. AI can mark against a teacher's rubric, build a per-skill record for each child and draft practice aimed at the gaps it found. An AI marker given no rubric agrees with a human only 33.5% of the time, so the teacher reviewing and approving the output is the mechanism, not a disclaimer.</p>
<hr>
<p><em>Sources: student inattention, <a href="https://nces.ed.gov/whatsnew/press_releases/7_18_2024.asp" target="_blank" rel="noopener noreferrer">NCES School Pulse Panel, May 2024</a>. Feedback effect sizes, <a href="https://www.frontiersin.org/journals/psychology/articles/10.3389/fpsyg.2019.03087/full" target="_blank" rel="noopener noreferrer">Wisniewski, Zierer &amp; Hattie, Frontiers in Psychology, 2020</a>. Teacher hours and stress, <a href="https://gpseducation.oecd.org/CountryProfile?primaryCountry=SGP" target="_blank" rel="noopener noreferrer">TALIS 2024 via OECD Education GPS</a>. AI/human marker agreement, <a href="https://arxiv.org/pdf/2504.13557" target="_blank" rel="noopener noreferrer">arXiv 2504.13557</a>.</em></p>
<p>If you want the argument underneath the personalisation claim, <a href="https://heyzippy.io/blog/personalised-learning-at-class-scale/">personalised learning at class scale</a> takes apart the two sigma study most AI education pitches are built on. The marking side is covered in <a href="https://heyzippy.io/blog/ai-grading-teacher-control/">how teachers stay in control of AI marking</a>.</p>]]></content>
        <author>
            <name>Zippy Team</name>
        </author>
        <category label="teaching" term="teaching"/>
        <category label="feedback" term="feedback"/>
        <category label="personalised-learning" term="personalised-learning"/>
        <category label="ai-in-education" term="ai-in-education"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[What's new in August: editing, re-grading, and skills]]></title>
        <id>https://heyzippy.io/blog/whats-new-editing-regrading-skills/</id>
        <link href="https://heyzippy.io/blog/whats-new-editing-regrading-skills/"/>
        <updated>2026-08-21T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Edit or delete any annotation, re-grade only when you choose, undo any change in one click, and see which skills each piece of writing shows.]]></summary>
        <content type="html"><![CDATA[<p>Some questions and feedback we have had recently:</p>
<p>If I reword a comment, does the score change? Can I delete a comment I disagree with? Does Zippy re-grade by itself? What does a student or a parent actually end up seeing?</p>
<p>The August update answers all four.</p>
<img class="blog-gif" src="https://heyzippy.io/img/blog/grading-release/how-annotations-work.gif" alt="Six screens in sequence: a marked script, an annotation opening, the criterion it counts towards, the EDITED chip with Revert all, and the Release button">
<div class="blog-caption">The whole loop in twelve seconds: Zippy marks, you open an annotation, you change it, and nothing moves until you press Release.</div>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="1-every-annotation-is-yours-to-edit-or-delete">1. Every annotation is yours to edit or delete<a href="https://heyzippy.io/blog/whats-new-editing-regrading-skills/#1-every-annotation-is-yours-to-edit-or-delete" class="hash-link" aria-label="Direct link to 1. Every annotation is yours to edit or delete" title="Direct link to 1. Every annotation is yours to edit or delete" translate="no">​</a></h2>
<p>Click any highlight on the script and Zippy shows you the annotation behind it: what it thinks is wrong, the rewrite it suggests, and which criterion it counts towards. Reword it, change the suggestion, or delete it. The edit and delete buttons sit on the annotation itself, where you are already reading.</p>
<p>Editing or deleting an annotation does not move the score by itself. The score changes when you change it, or when you ask Zippy to grade the piece again. Nothing reaches a student until you press <strong>Release</strong>.</p>
<p><img decoding="async" loading="lazy" alt="The annotation popover open on a marked script, with the dashed connector running to the Language accuracy criterion" src="https://heyzippy.io/assets/images/connectorlanguage-000d0050a8b68f787aba5bec2068db3d.png" width="3200" height="2200" class="img_CNVe"></p>
<p><em>A graded response. The highlighted phrase carries a grammar note tagged <code>LANGUAGE ACCURACY</code>, and the dashed orange line shows which criterion it counts towards. Edit and delete are on the note itself. Scores per criterion sit on the right, each with its own Edit.</em></p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="2-zippy-never-re-grades-on-its-own">2. Zippy never re-grades on its own<a href="https://heyzippy.io/blog/whats-new-editing-regrading-skills/#2-zippy-never-re-grades-on-its-own" class="hash-link" aria-label="Direct link to 2. Zippy never re-grades on its own" title="Direct link to 2. Zippy never re-grades on its own" translate="no">​</a></h2>
<p>Re-grade is the circular arrow at the top of Zippy's evaluation. Press it and Zippy reads the piece again, taking in everything you have changed since it last graded. Your corrections feed into the new marking instead of being wiped by it.</p>
<p>It costs half a credit, and it only runs when you press it.</p>
<p>Where Zippy still disagrees with something you changed, it notes the disagreement beside your value rather than replacing it. Your number stays on the page. Re-grade a class of thirty and you get thirty notes to look at whenever you like, and no pop-ups to dismiss.</p>
<p><img decoding="async" loading="lazy" alt="A marked submission showing per-criterion scores, the feedback panel, and the re-grade control" src="https://heyzippy.io/assets/images/annotation-connector-66ec17edd8aac4cf5f4dbc5ea32da76e.png" width="3200" height="2200" class="img_CNVe"></p>
<p><em>The same submission at full width. Praise and Next steps each have a Listen button, which younger students use far more than we expected. The re-grade control is the circular arrow, top right.</em></p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="3-every-edit-is-labelled-and-one-click-undoes-it">3. Every edit is labelled, and one click undoes it<a href="https://heyzippy.io/blog/whats-new-editing-regrading-skills/#3-every-edit-is-labelled-and-one-click-undoes-it" class="hash-link" aria-label="Direct link to 3. Every edit is labelled, and one click undoes it" title="Direct link to 3. Every edit is labelled, and one click undoes it" translate="no">​</a></h2>
<p>Anything you change picks up a small <code>EDITED</code> label. Click the label to put back what Zippy originally wrote. A strip along the top counts them up and offers <strong>Revert all</strong>.</p>
<p>This is a proper undo rather than you retyping the original. Zippy saves its own wording the moment you change something, so undoing puts back exactly that, clears the label, and the field stops saying it was edited. Undo a mark and the totals follow.</p>
<p><img decoding="async" loading="lazy" alt="The evaluation panel after a teacher has edited four fields, showing EDITED chips and a Revert all strip" src="https://heyzippy.io/assets/images/5revertonecriterion-dfdd14f756cf104bd037d890c3b4902a.png" width="1536" height="1488" class="img_CNVe"></p>
<p><em>After editing: <code>You edited 4 fields</code> with Revert all, <code>EDITED</code> labels on Feedback and Next steps, and the per-criterion scores underneath.</em></p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="4-which-skills-each-piece-shows">4. Which skills each piece shows<a href="https://heyzippy.io/blog/whats-new-editing-regrading-skills/#4-which-skills-each-piece-shows" class="hash-link" aria-label="Direct link to 4. Which skills each piece shows" title="Direct link to 4. Which skills each piece shows" translate="no">​</a></h2>
<p>Under the scores, every piece now carries a line for each skill, with a band and a bar, so you can see where the writing sits on Organisation, or Content, or Language accuracy without reading it again. Open a line to see the evidence Zippy used.</p>
<p>Across a whole class this is the part that changes what you teach next. Thirty children scoring well on content and sitting at <code>Developing</code> on organisation is one lesson to plan, rather than thirty conversations to have.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="also-new">Also new<a href="https://heyzippy.io/blog/whats-new-editing-regrading-skills/#also-new" class="hash-link" aria-label="Direct link to Also new" title="Direct link to Also new" translate="no">​</a></h2>
<p><strong>A grading report that goes home.</strong> Every graded piece exports as a two-page report: student, date, title and question, then scores by category, feedback and next steps on page one, with the annotated script on page two. This is the thing that goes in the file or gets attached to a message home, under your name.</p>
<p><img decoding="async" loading="lazy" alt="Page one of an exported grading report, showing scores by category, feedback and next steps" src="https://heyzippy.io/assets/images/export-gradingAFTERp1-1478064bf20c826224f420fe0729d0d0.png" width="1190" height="1683" class="img_CNVe"></p>
<p><em>Page one of the exported report. Page two carries the annotated script.</em></p>
<p><strong>Worksheets you can print, and grade from a photo of the finished page.</strong> Lessons and worksheets built in Zippy come out as proper multi-page documents with mixed question types. Print one for a Saturday class, and when the children hand the pages back, photograph them and Zippy grades the handwriting from the photo.</p>
<p><img decoding="async" loading="lazy" alt="A generated two-page worksheet on Forces and Motion, with a multiple-choice question and a free-text question with answer lines" src="https://heyzippy.io/assets/images/lesson-worksheetp1-17cc6cd2e8255179bee69c624ff10be4.png" width="1190" height="1683" class="img_CNVe"></p>
<p><em>A generated worksheet, page one of two. The subject here is Science, but the format is the same whatever you put into it.</em></p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="the-thread-running-through-all-four">The thread running through all four<a href="https://heyzippy.io/blog/whats-new-editing-regrading-skills/#the-thread-running-through-all-four" class="hash-link" aria-label="Direct link to The thread running through all four" title="Direct link to The thread running through all four" translate="no">​</a></h2>
<p>Zippy does the first pass. Every word of it stays yours to reword, delete or undo, and nothing reaches a student until you press Release. That is the same principle whether you are changing one annotation or re-grading a class of thirty.</p>
<p>All four are in your workspace now. Open any graded piece and the annotations, the re-grade arrow and the <code>EDITED</code> labels are already there.</p>
<hr>
<p>If you want the reasoning behind the design, <a href="https://heyzippy.io/blog/ai-grading-teacher-control/">how to mark with AI and still be the one who marked it</a> is the longer argument, and <a href="https://heyzippy.io/blog/ai-grading-rubrics-that-work/">AI grading is only as good as the rubric behind it</a> covers the rubric setup underneath it. Or <a href="https://heyzippy.io/grade/">try it on a class set</a>, free for teachers.</p>]]></content>
        <author>
            <name>Zippy Team</name>
        </author>
        <category label="release" term="release"/>
        <category label="grading" term="grading"/>
        <category label="product-update" term="product-update"/>
        <category label="teaching" term="teaching"/>
        <category label="feedback" term="feedback"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Personalised learning at class scale: what AI changes]]></title>
        <id>https://heyzippy.io/blog/personalised-learning-at-class-scale/</id>
        <link href="https://heyzippy.io/blog/personalised-learning-at-class-scale/"/>
        <updated>2026-08-20T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Almost every AI education pitch cites Bloom's two sigma. The study ran three weeks and has never been replicated. What personalised learning can really do.]]></summary>
        <content type="html"><![CDATA[<p>Sit through enough education technology pitches and you will hear about Bloom's two sigma. The claim is that a child tutored one to one performs two standard deviations better than a child in an ordinary classroom, which would put an average student above the 98th percentile. It is the intellectual foundation of roughly every "AI tutor for every child" deck of the last three years.</p>
<p>It is worth knowing what the study actually was, because the details change what personalised learning can realistically be built to do.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="what-the-two-sigma-study-actually-was">What the two sigma study actually was<a href="https://heyzippy.io/blog/personalised-learning-at-class-scale/#what-the-two-sigma-study-actually-was" class="hash-link" aria-label="Direct link to What the two sigma study actually was" title="Direct link to What the two sigma study actually was" translate="no">​</a></h2>
<p>Benjamin Bloom published the paper in <em>Educational Researcher</em> in 1984, drawing on dissertation work by two of his doctoral students. The specifics, <a href="https://substack.nomoremarking.com/p/blooms-famous-2-sigma-tutoring-paper" target="_blank" rel="noopener noreferrer">set out at length by No More Marking</a> and summarised in the <a href="https://en.wikipedia.org/wiki/Bloom%27s_2_sigma_problem" target="_blank" rel="noopener noreferrer">Wikipedia account</a>:</p>
<ul>
<li>The intervention ran for <strong>about three weeks</strong>, eleven lessons of forty minutes, with testing immediately afterwards.</li>
<li>The subjects were <strong>cartography and probability</strong>, chosen partly because they were unfamiliar. Beginners improve fast on new material, then plateau.</li>
<li>The tests were designed by the researchers rather than standardised.</li>
<li>A couple of hundred students took part.</li>
<li>It has <strong>never been replicated</strong>.</li>
</ul>
<p>And the detail that matters most: the tutored group did not only get tutoring. They also received extra corrective feedback and corrective tests that the comparison group did not. Three variables moved at once, and the headline attributes the whole effect to one of them.</p>
<p>Post-Covid, several governments funded large catch-up tutoring programmes with this paper somewhere in the justification. The results came back nothing like two sigma. That is not surprising given what the paper actually measured, but it did cost a lot of money to discover.</p>
<p>None of which makes tutoring bad. It makes <em>two sigma from one-to-one contact</em> an unsupported number, and it means the interesting question was never "how do we give every child a tutor".</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="the-part-everybody-skips-is-the-useful-part">The part everybody skips is the useful part<a href="https://heyzippy.io/blog/personalised-learning-at-class-scale/#the-part-everybody-skips-is-the-useful-part" class="hash-link" aria-label="Direct link to The part everybody skips is the useful part" title="Direct link to The part everybody skips is the useful part" translate="no">​</a></h2>
<p>Look again at what the tutored condition contained. Mastery learning, corrective feedback, and corrective tests. Then ask which of those actually require a one-to-one setting.</p>
<p>None of them do.</p>
<p>Mastery learning is a sequencing decision: you do not move on until the thing is secure. Corrective feedback is a marking decision: the response tells the learner what specifically to fix. Corrective testing is a checking decision: you come back and verify the gap closed. All three are properties of the <em>loop</em>, not of the staffing ratio.</p>
<p>What one-to-one really buys is proximity. A tutor sitting beside one child can see, in real time, what that child cannot do yet, and act on it immediately. The ratio is a delivery mechanism for a diagnosis.</p>
<p>Which reframes the problem for a class of forty. You are not trying to buy forty tutors. You are trying to get the diagnosis without the tutor.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="why-this-has-been-out-of-reach-honestly-stated">Why this has been out of reach, honestly stated<a href="https://heyzippy.io/blog/personalised-learning-at-class-scale/#why-this-has-been-out-of-reach-honestly-stated" class="hash-link" aria-label="Direct link to Why this has been out of reach, honestly stated" title="Direct link to Why this has been out of reach, honestly stated" translate="no">​</a></h2>
<p>Teachers have always known which children need what. The constraint has never been insight, it has been arithmetic.</p>
<p>To personalise properly you need three things in sequence: a per-skill picture of every child, material aimed at each gap, and a check that the gap closed. For thirty children across a term, the first is a marking workload nobody has, the second is a preparation workload nobody has, and the third almost never happens at all. Most differentiation in practice collapses into three worksheets labelled by ability, set once, never re-checked.</p>
<p>What AI changes here is the arithmetic. A loop that good teachers have always known how to run becomes survivable across thirty children, which is a smaller claim than teaching better than a teacher and a more useful one.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="let-the-marking-decide-who-gets-what">Let the marking decide who gets what<a href="https://heyzippy.io/blog/personalised-learning-at-class-scale/#let-the-marking-decide-who-gets-what" class="hash-link" aria-label="Direct link to Let the marking decide who gets what" title="Direct link to Let the marking decide who gets what" translate="no">​</a></h2>
<p>Teaching each child like the only one in the room is the right goal. The useful question is what has to happen for it to be real by Tuesday morning rather than aspirational.</p>
<p>It starts with not deciding in advance. A gap sometimes belongs to one child and nobody else, and that child gets a piece written for them alone. More often four or six turn out to be missing the same thing, and they get the same practice because they genuinely need the same thing. Who receives what follows from the diagnosis, rather than from a grouping fixed at the start of term.</p>
<p>What it never needs to be is thirty bespoke worksheets produced for the sake of it. That is easy to generate now and it is still the wrong shape: an enormous amount of material for one teacher to check, and unchecked AI-generated work going straight to children is not something we are willing to ship.</p>
<p>So Zippy drafts practice for a skill and whoever the marking says is carrying that gap, whether that is one student or seven. From where a child sits, nothing is diluted either way: the work in front of them is aimed at what their own marking found. What changes on your side of the desk is that you are reviewing what the class actually needs rather than authoring thirty things from nothing.</p>
<p>That is what makes catering to every student survivable. Not a tutor each, and not one worksheet for everyone, but each child getting the next thing they specifically need, from a teacher who had the time to check it.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="the-loop-concretely">The loop, concretely<a href="https://heyzippy.io/blog/personalised-learning-at-class-scale/#the-loop-concretely" class="hash-link" aria-label="Direct link to The loop, concretely" title="Direct link to The loop, concretely" translate="no">​</a></h2>
<p>What this looks like in the product, with no steps hidden:</p>
<ol>
<li><strong>Mark the set you were marking anyway.</strong> Every piece is scored per criterion and per skill, with comments tied to the sentence that earned them.</li>
<li><strong>The skills accumulate into a record.</strong> Each child gets a skill-by-skill picture that builds over the term: secure here, developing there, missed in three of the last four pieces.</li>
<li><strong>Zippy drafts practice aimed at what the marking found</strong>, for one student or for everyone carrying that gap.</li>
<li><strong>You read it and change it.</strong> Nothing is assigned without you. This is the step that cannot be automated away and we are not trying to.</li>
<li><strong>It comes back marked against the same skills</strong>, so you can see whether the gap actually closed.</li>
</ol>
<p>Step five is the corrective testing from the 1984 study, and it is the step almost every "personalised learning" product quietly omits. Generating differentiated worksheets is easy. Closing the loop on whether they worked is the part that makes it learning rather than activity.</p>
<p>Students see their half of it too: their own skills, their feedback, and the task set next. A mark tells a child how they did. A skill breakdown tells them what to do about it, which is a more useful thing for an eleven-year-old to be holding.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="what-we-do-not-claim">What we do not claim<a href="https://heyzippy.io/blog/personalised-learning-at-class-scale/#what-we-do-not-claim" class="hash-link" aria-label="Direct link to What we do not claim" title="Direct link to What we do not claim" translate="no">​</a></h2>
<p>We are not claiming two sigma. Nobody should, on this evidence.</p>
<p>We do not predict anything. Every skill level in the record is derived from work a teacher marked and approved, and nothing in the product infers where a child will end up. If you changed a score, the record uses your score.</p>
<p>And a diagnosis is not a lesson. Knowing that six children are weak on paragraphing does not teach paragraphing to them. It tells you what Tuesday is for, which is a real improvement on not knowing, and considerably less than the "AI tutor for every child" framing implies.</p>
<p>The gap between one-to-many and one-to-one was never really about attention. It was about how long it takes to find out what each child cannot do yet, and how much preparation stands between knowing that and acting on it. That gap is closeable now, which is a smaller and more specific claim than two sigma, and one that holds up.</p>
<hr>
<p>If you want the mechanics rather than the argument, <a href="https://heyzippy.io/blog/better-learning-with-ai/">personalised learning with AI: what it actually looks like</a> walks through the loop from the classroom side, and the marking underneath it is covered in <a href="https://heyzippy.io/blog/ai-grading-rubrics-that-work/">AI grading is only as good as the rubric behind it</a>.</p>]]></content>
        <author>
            <name>Zippy Team</name>
        </author>
        <category label="personalised-learning" term="personalised-learning"/>
        <category label="ai" term="ai"/>
        <category label="teaching" term="teaching"/>
        <category label="differentiation" term="differentiation"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[AI grading is only as good as the rubric behind it]]></title>
        <id>https://heyzippy.io/blog/ai-grading-rubrics-that-work/</id>
        <link href="https://heyzippy.io/blog/ai-grading-rubrics-that-work/"/>
        <updated>2026-08-13T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[In the largest meta-analysis of feedback, 38% of interventions made performance worse. What that means for AI grading, and for the rubric behind it.]]></summary>
        <content type="html"><![CDATA[<p>The pitch for AI grading is usually volume: every child gets detailed feedback on every piece, instead of a tick and a number. It sounds unarguable. It is worth pausing on anyway, because the assumption underneath it is that more feedback is better feedback, and the evidence does not support that.</p>
<p>Kluger and DeNisi's 1996 meta-analysis is still the largest of its kind: 607 effect sizes across 23,663 observations. Feedback helped on average, at about d = 0.41. But in <strong>38% of the experiments, feedback made performance worse</strong>. Not neutral. Worse.</p>
<p>So a tool that produces ten times more feedback is not obviously ten times more useful. It could be ten times more of the kind that backfires. The question worth asking about any AI marker is not how much it writes, but whether what it writes has the properties the research says feedback needs.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="what-the-research-says-makes-feedback-work">What the research says makes feedback work<a href="https://heyzippy.io/blog/ai-grading-rubrics-that-work/#what-the-research-says-makes-feedback-work" class="hash-link" aria-label="Direct link to What the research says makes feedback work" title="Direct link to What the research says makes feedback work" translate="no">​</a></h2>
<p>Two findings do most of the practical work here.</p>
<p>The first is Kluger and DeNisi's own explanation for their result. Feedback interventions failed, they argued, when they moved a learner's attention away from <strong>the task</strong> and towards <strong>the self</strong>. "You are careless" is about the child. "This sentence has three ideas in it and needs to be two" is about the work. The first invites a defence, the second invites an edit. Teachers know this instinctively and it is the first thing that gets lost when marking is done at speed at 11pm.</p>
<p>The second is Hattie and Timperley's framework from <em>The Power of Feedback</em> (2007), which reduces effective feedback to three questions a learner should be able to answer afterwards:</p>
<ul>
<li><strong>Where am I going?</strong> What does good look like here?</li>
<li><strong>How am I going?</strong> Where is my work against that?</li>
<li><strong>Where to next?</strong> What is the specific thing I do about it?</li>
</ul>
<p>Most marking answers the second question, sometimes. A number answers it very badly. The first and third are usually missing entirely, and they are the ones that make the second useful.</p>
<p>That framework is a decent specification for a grading tool, so it is the one we build against. Here is what each question turns into.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="where-am-i-going-the-rubric-is-the-answer">Where am I going: the rubric is the answer<a href="https://heyzippy.io/blog/ai-grading-rubrics-that-work/#where-am-i-going-the-rubric-is-the-answer" class="hash-link" aria-label="Direct link to Where am I going: the rubric is the answer" title="Direct link to Where am I going: the rubric is the answer" translate="no">​</a></h2>
<p>Everything Zippy marks is marked against a rubric you control, not a general sense of good writing and not a scale we picked for you.</p>
<p>A <strong>score rubric</strong> is the familiar grid: your criteria down the side, bands across the top, and a descriptor in every cell saying what that band looks like. For a narrative you might use ideas and plot development, language and vocabulary, and organisation.</p>
<p>The thing that matters, and the thing most people underinvest in, is the descriptors rather than the labels. The descriptors are what the work is actually matched against. "Excellent" is not a specification; a sentence describing what an excellent piece of organisation looks like in a P5 narrative is. If your bands are landing differently from how you would band them yourself, that is a descriptor problem and it is fixable.</p>
<p>Where do the rubrics come from? Three ways, and they mix. Clone a ready-made set from Zippy Discover, which carries rubrics and skills lists aligned to real syllabuses. Adapt one, because a clone is yours and nothing is locked. Or build your own from an empty grid. Most departments start by cloning something close and rewriting the descriptors to match how they actually mark, which is much faster than authoring from nothing.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="how-am-i-going-tie-it-to-the-sentence-not-to-the-child">How am I going: tie it to the sentence, not to the child<a href="https://heyzippy.io/blog/ai-grading-rubrics-that-work/#how-am-i-going-tie-it-to-the-sentence-not-to-the-child" class="hash-link" aria-label="Direct link to How am I going: tie it to the sentence, not to the child" title="Direct link to How am I going: tie it to the sentence, not to the child" translate="no">​</a></h2>
<p>This is where the task-versus-self distinction stops being a theory and becomes an interface decision.</p>
<p>Zippy returns a score per criterion, a comment, and <strong>inline annotations marked in place on the student's own words</strong>. The annotation is the part children actually read, and it is the part that keeps the feedback pointed at the writing. A note attached to a specific sentence is structurally incapable of being about the child's character. It is about that sentence.</p>
<p>That is also why we have resisted anything that scores effort, or produces an overall verdict on a student rather than on a piece. It reads as motivating and it is exactly the move Kluger and DeNisi found backfiring.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="where-to-next-this-is-what-the-skill-map-is-for">Where to next: this is what the skill map is for<a href="https://heyzippy.io/blog/ai-grading-rubrics-that-work/#where-to-next-this-is-what-the-skill-map-is-for" class="hash-link" aria-label="Direct link to Where to next: this is what the skill map is for" title="Direct link to Where to next: this is what the skill map is for" translate="no">​</a></h2>
<p>A score tells you a child got 14 out of 20. It does not tell you which four skills cost them the marks, and that is the only version of the information you can plan a lesson around.</p>
<p>So Zippy grades against a second kind of rubric as well. A <strong>skills rubric</strong> lists the individual skills in a unit, each with levels describing what partial and full command look like. A narrative skills list might carry dozens, grouped by strand, with entries as specific as "show, not tell: sensory detail".</p>
<p>The two stack. A <strong>preset</strong> is what an activity actually points at, and it can carry a score rubric, a skills rubric, or both. When it carries both, one pass over a submission returns a mark against your criteria <em>and</em> a per-skill breakdown, plus the comment, the next step and the annotations.</p>
<p>That combination is the whole argument. A score you can put in a report, and underneath it a diagnosis you can teach from. Two children on the same 14 out of 20 rarely need the same lesson, and this is the view where you can see which one needs what.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="aligning-to-a-standard-without-outsourcing-your-judgement">Aligning to a standard without outsourcing your judgement<a href="https://heyzippy.io/blog/ai-grading-rubrics-that-work/#aligning-to-a-standard-without-outsourcing-your-judgement" class="hash-link" aria-label="Direct link to Aligning to a standard without outsourcing your judgement" title="Direct link to Aligning to a standard without outsourcing your judgement" translate="no">​</a></h2>
<p>"Standards-aligned" is doing a lot of unexamined work in edtech copy at the moment, so it is worth being precise about what it can and cannot mean.</p>
<p>A rubric can be written to a published syllabus, and the descriptors can be lifted from the assessment objectives that syllabus sets out. That is real and it is useful, and it is what the Discover sets are. What it cannot mean is that a piece of software has privileged access to how a particular exam board would have marked a particular script. Nobody has that. Anyone claiming it is selling you a feeling of authority.</p>
<p>What you get from alignment is consistency and a shared vocabulary: every teacher in a department marking against the same descriptors, and a child hearing the same names for the same skills in September and in March. That is worth a great deal on its own, and it does not require anyone to pretend.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="the-twenty-minutes-that-decide-whether-you-can-trust-any-of-it">The twenty minutes that decide whether you can trust any of it<a href="https://heyzippy.io/blog/ai-grading-rubrics-that-work/#the-twenty-minutes-that-decide-whether-you-can-trust-any-of-it" class="hash-link" aria-label="Direct link to The twenty minutes that decide whether you can trust any of it" title="Direct link to The twenty minutes that decide whether you can trust any of it" translate="no">​</a></h2>
<p>Here is the most useful thing in this post, and it takes one evening.</p>
<p>Take a set you have already marked by hand. Run it through the preset you plan to use. Compare the marks to your own, script by script.</p>
<p>You are not looking for identical numbers. You are looking for whether the disagreements have a <em>pattern</em>: if it is consistently a band harsher on organisation, that is a descriptor you can rewrite. Random disagreement and systematic disagreement mean completely different things, and twenty minutes on a set you already know the answers to is the only way to tell them apart.</p>
<p>Do this before you rely on it for anything that goes to a parent. We would rather you did it and found a problem than skipped it and found the problem later.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="what-we-are-not-claiming">What we are not claiming<a href="https://heyzippy.io/blog/ai-grading-rubrics-that-work/#what-we-are-not-claiming" class="hash-link" aria-label="Direct link to What we are not claiming" title="Direct link to What we are not claiming" translate="no">​</a></h2>
<p>An AI marker inherits every weakness in your descriptors. Write a vague rubric and you will get vague marking applied with impressive consistency, which is arguably worse than vague marking applied inconsistently, because it looks authoritative.</p>
<p>Nothing goes to a student until you approve it. You can change a score, rewrite a comment, or throw the whole thing out for one child because you know something about that child that no rubric encodes. And nothing in the gradebook is inferred or predicted; it is all derived from marking you signed off.</p>
<p>We are not claiming a measured improvement in results. What the research supports is narrower and still worth having: feedback that names the success criteria, points at the work rather than the writer, and ends in a specific next step is the kind that tends to help rather than the kind that tends to backfire. Producing that reliably for thirty children, in an evening, is the actual product.</p>
<p>The mechanics of running a set are in <a href="https://heyzippy.io/blog/marking-a-class-set/">marking a class set</a> and <a href="https://heyzippy.io/blog/bulk-grading-saves-teachers-hours/">how to mark a whole class without losing control</a>. The step-by-step for rubrics themselves is in <a href="https://heyzippy.io/docs/grading/configuring-rubrics/">configuring rubrics</a>.</p>]]></content>
        <author>
            <name>Zippy Team</name>
        </author>
        <category label="grading" term="grading"/>
        <category label="ai" term="ai"/>
        <category label="formative-assessment" term="formative-assessment"/>
        <category label="rubric" term="rubric"/>
        <category label="teaching" term="teaching"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[PSLE 2026 revision timetable: plan backwards from the papers]]></title>
        <id>https://heyzippy.io/blog/psle-2026-revision-timetable/</id>
        <link href="https://heyzippy.io/blog/psle-2026-revision-timetable/"/>
        <updated>2026-08-06T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Seven weeks to the written papers, one to the Oral. A PSLE 2026 revision timetable planned backwards from the real exam dates, and what to give up on.]]></summary>
        <content type="html"><![CDATA[<p>Most PSLE revision timetables are built forwards. You sit down in August, block out the evenings, fill them with subjects, and by the second week the plan has been overtaken by a spelling test, a fever and a birthday party. The plan was never wrong. It was just pointing the wrong way.</p>
<p>Build it backwards from the papers instead. There are fewer weeks than it feels like, and once you can see exactly how many, the question stops being <em>how do we revise everything</em> and becomes <em>what are we actually going to do with the Tuesdays we have left</em>.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="the-dates-you-are-working-towards">The dates you are working towards<a href="https://heyzippy.io/blog/psle-2026-revision-timetable/#the-dates-you-are-working-towards" class="hash-link" aria-label="Direct link to The dates you are working towards" title="Direct link to The dates you are working towards" translate="no">​</a></h2>
<p>The 2026 PSLE runs across three separate blocks, and they need different preparation. Confirm anything specific against the <a href="https://www.moe.gov.sg/national-exams-dates" target="_blank" rel="noopener noreferrer">MOE national exam dates</a> and the <a href="https://www.seab.gov.sg/important-dates-for-candidates/" target="_blank" rel="noopener noreferrer">SEAB candidate dates</a>, but the shape is this:</p>
<table><thead><tr><th>Block</th><th>Dates</th></tr></thead><tbody><tr><td><strong>Oral</strong></td><td>Wednesday 12 and Thursday 13 August</td></tr><tr><td><strong>Listening Comprehension</strong></td><td>Tuesday 15 September</td></tr><tr><td><strong>Written papers</strong></td><td>Thursday 24 to Wednesday 30 September</td></tr></tbody></table>
<p>The written week itself runs English on the 24th, Mathematics on the 25th, Mother Tongue on the 28th, Science on the 29th and Higher Mother Tongue on the 30th.</p>
<p>Now the arithmetic that changes how you plan. From the first week of August, the Oral is about <strong>one week away</strong> and the written papers are about <strong>seven</strong>. Those are not the same problem, and a single timetable that treats August and September as one continuous block of revision will do the Oral badly.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="the-next-week-belongs-to-the-oral-and-almost-nothing-else">The next week belongs to the Oral, and almost nothing else<a href="https://heyzippy.io/blog/psle-2026-revision-timetable/#the-next-week-belongs-to-the-oral-and-almost-nothing-else" class="hash-link" aria-label="Direct link to The next week belongs to the Oral, and almost nothing else" title="Direct link to The next week belongs to the Oral, and almost nothing else" translate="no">​</a></h2>
<p>There is very little you can add to a child's English in seven days. There is a great deal you can add to their <em>delivery</em>, because Reading Aloud and the Stimulus-Based Conversation reward habits that move quickly: reading at the pace of speech rather than racing, letting a full stop land, describing a photograph fully before offering an opinion, and giving every opinion a reason.</p>
<p>Ten minutes a night, out loud, standing up. Not thirty. A child who reads one passage aloud properly and then talks about one photograph has done the whole exam in miniature, and can do it again tomorrow without a fight.</p>
<p>We have written the practice out in full if you want something to work from: <a href="https://heyzippy.io/learn/psle/english/paper-4/">reading aloud passages</a> and <a href="https://heyzippy.io/blog/psle-sbc-how-to-answer-any-photo/">how to answer any SBC photo</a>.</p>
<p>After the 13th, that slot in the evening is free again. Do not give it back.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="then-seven-weeks-which-is-less-than-it-sounds">Then seven weeks, which is less than it sounds<a href="https://heyzippy.io/blog/psle-2026-revision-timetable/#then-seven-weeks-which-is-less-than-it-sounds" class="hash-link" aria-label="Direct link to Then seven weeks, which is less than it sounds" title="Direct link to Then seven weeks, which is less than it sounds" translate="no">​</a></h2>
<p>Seven weeks is roughly 35 school nights and 14 weekend days. If a school night realistically carries 45 minutes of useful revision after dinner, homework and a shower, that is about 26 hours on weeknights. Add two hours per weekend day and you have another 28. Call it <strong>50 to 55 hours in total</strong>, across four subjects.</p>
<p>Write that number down, because it is the one that makes the next decision honest. Fifty hours is not enough to revise everything a child has covered since Primary 4. It is comfortably enough to fix the six or seven things that are actually costing marks, twice each.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="space-the-topics-do-not-block-them">Space the topics, do not block them<a href="https://heyzippy.io/blog/psle-2026-revision-timetable/#space-the-topics-do-not-block-them" class="hash-link" aria-label="Direct link to Space the topics, do not block them" title="Direct link to Space the topics, do not block them" translate="no">​</a></h2>
<p>The instinct is to give each subject a night: Maths on Monday, Science on Tuesday. It feels organised. It is also close to the least efficient way to use the hours.</p>
<p>Two findings hold up better than almost anything else in the study literature. The first is the <strong>spacing effect</strong>: the same total practice, distributed across days, produces more durable learning than the same practice massed together. The second is <strong>retrieval practice</strong>, sometimes called the testing effect: trying to recall something, and failing, and then checking, beats rereading it. Both have been replicated widely, including <a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC12372469/" target="_blank" rel="noopener noreferrer">in primary classrooms</a>, and the <a href="https://evidencebased.education/resource/retrieval-and-spaced-practice-study-strategies-that-must-be-combined/" target="_blank" rel="noopener noreferrer">combination of the two</a> is stronger than either alone.</p>
<p>In practice that means a topic your child got wrong should come back on about day 3, then day 10, then day 24, each time as a question rather than as notes. Three short encounters spread across a month will do more than one long evening, and they cost less goodwill.</p>
<p>The version that survives a real week: keep a short list of the topics currently being revisited, and pull two or three of them into each session as five-minute openers before whatever the main task is. Nobody needs to build a spreadsheet for this. An index card on the fridge works.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="weekends-are-for-whole-papers-and-the-review-is-the-point">Weekends are for whole papers, and the review is the point<a href="https://heyzippy.io/blog/psle-2026-revision-timetable/#weekends-are-for-whole-papers-and-the-review-is-the-point" class="hash-link" aria-label="Direct link to Weekends are for whole papers, and the review is the point" title="Direct link to Weekends are for whole papers, and the review is the point" translate="no">​</a></h2>
<p>One full paper, under timing, once a weekend. Only one. The temptation is to do three and it is a bad trade, because the value of a past paper is not in the doing.</p>
<p>It is in the twenty minutes afterwards when you sit with the child and sort the wrong answers into three piles: <strong>did not know it</strong>, <strong>knew it but misread the question</strong>, and <strong>knew it and ran out of time</strong>. Those three piles need completely different responses, and a child who cannot tell them apart will revise content to solve a timing problem.</p>
<p>In our experience the second pile is usually the biggest one in the last month, and it is the cheapest to fix.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="what-to-give-up">What to give up<a href="https://heyzippy.io/blog/psle-2026-revision-timetable/#what-to-give-up" class="hash-link" aria-label="Direct link to What to give up" title="Direct link to What to give up" translate="no">​</a></h2>
<p>This is the part most revision guides will not say, so here it is plainly. With seven weeks and fifty hours you should deliberately stop doing some things.</p>
<p>Stop revising the topics your child is already secure in, however good it feels to see them get everything right. Stop starting new assessment books, because a fresh book is mostly a restatement of things already covered and it resets the sense of progress to zero. Stop doing whole papers on weeknights, because a paper that finishes at 9:40pm and never gets reviewed is worse than no paper at all.</p>
<p>And unless your child is genuinely close on it, stop trying to fix the hardest topic in the syllabus in September. The marks are cheaper elsewhere, and the confidence cost of grinding at something that will not move is real.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="a-week-that-actually-works">A week that actually works<a href="https://heyzippy.io/blog/psle-2026-revision-timetable/#a-week-that-actually-works" class="hash-link" aria-label="Direct link to A week that actually works" title="Direct link to A week that actually works" translate="no">​</a></h2>
<p>Nothing here is exotic. It fits on one card:</p>
<ul>
<li><strong>Weeknights, 45 minutes:</strong> five minutes of retrieval on two older topics, then one focused task on a current weak spot. Four nights, not five.</li>
<li><strong>One weeknight off.</strong> Not a reward, a structural part of the plan. The timetables that collapse are the ones with no slack in them for a bad day.</li>
<li><strong>Saturday:</strong> one full paper under exam timing, then the twenty-minute sort into three piles.</li>
<li><strong>Sunday:</strong> one hour on whatever Saturday exposed, and then genuinely stop.</li>
</ul>
<p>Roughly seven hours a week, which lands about where the 50-hour budget says it should. If your child can do more, spend it on the sort, not on more papers.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="working-out-what-the-weak-spots-actually-are">Working out what the weak spots actually are<a href="https://heyzippy.io/blog/psle-2026-revision-timetable/#working-out-what-the-weak-spots-actually-are" class="hash-link" aria-label="Direct link to Working out what the weak spots actually are" title="Direct link to Working out what the weak spots actually are" translate="no">​</a></h2>
<p>All of the above assumes you know which six or seven things are costing marks. Most families do not, because a mark out of 30 on a composition does not tell you whether the problem was ideas, organisation or language, and a child cannot tell you either.</p>
<p>This is the one place where the last few years of marking would have been useful, if anyone had kept it in a form you could read. Teachers, this is the argument for marking against a rubric with named criteria rather than an overall impression: at the point where a parent asks <em>what should we work on</em>, a per-criterion record answers the question and a column of totals does not. That is the case we make in <a href="https://heyzippy.io/blog/ai-grading-rubrics-that-work/">what makes AI grading useful</a>.</p>
<p>If you want somewhere to start tonight without any of that, our <a href="https://heyzippy.io/learn/">free PSLE practice</a> covers Paper 2 grammar, cloze, comprehension, composition and the Oral, with the answer <em>and</em> the explanation on every question, which is what makes it usable as retrieval practice rather than as another worksheet.</p>
<p>Seven weeks is enough. It is just not enough for everything.</p>]]></content>
        <author>
            <name>Zippy Team</name>
        </author>
        <category label="psle" term="psle"/>
        <category label="parents" term="parents"/>
        <category label="revision" term="revision"/>
        <category label="teaching" term="teaching"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How to read a class gradebook (and what it cannot tell you)]]></title>
        <id>https://heyzippy.io/blog/what-your-gradebook-is-telling-you/</id>
        <link href="https://heyzippy.io/blog/what-your-gradebook-is-telling-you/"/>
        <updated>2026-07-29T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Read the class average row before any individual child. A dip down a column is usually the task, not the class. Why completion and attainment go together.]]></summary>
        <content type="html"><![CDATA[<p>Watch a teacher open a class grid for the first time and they almost always do the same thing: start at the top left, read along the first student's row, then the second, one child at a time. It is the natural way to read a table. It is also the slowest way to find anything, and it is how you end up worried about a child when the real problem was the worksheet.</p>
<p>Read the class average row first. Everything else on the screen is easier to interpret once you have.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="start-with-the-average-row-not-the-first-student">Start with the average row, not the first student<a href="https://heyzippy.io/blog/what-your-gradebook-is-telling-you/#start-with-the-average-row-not-the-first-student" class="hash-link" aria-label="Direct link to Start with the average row, not the first student" title="Direct link to Start with the average row, not the first student" translate="no">​</a></h2>
<p>The row directly under the activity headers is the class average for each activity. Read it left to right before you look at a single name.</p>
<p>If four compositions sit in the high 60s and the fifth sits at 51, you have learned something about the fifth composition. Thirty children did not simultaneously get worse at writing. Something about that task was harder than you meant it to be: the question had two readings, the stimulus was above the reading level you had in mind, or you set it the week of the concert.</p>
<p>The grid cannot tell you which of those it was. It can only tell you where to look, which is worth more than it sounds, because the alternative is drawing conclusions about children from a problem that belongs to a worksheet.</p>
<p>It is also the thing you want to know before you set anything similar next term.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="one-low-mark-is-not-a-trend">One low mark is not a trend<a href="https://heyzippy.io/blog/what-your-gradebook-is-telling-you/#one-low-mark-is-not-a-trend" class="hash-link" aria-label="Direct link to One low mark is not a trend" title="Direct link to One low mark is not a trend" translate="no">​</a></h2>
<p>A child can have a bad Tuesday. They can be coming down with something, or sitting next to someone new, or have simply not read the question. None of that is a pattern, and marking it as one is how a teacher ends up in a parent conversation defending a single number.</p>
<p>What you are looking for is a student sitting below their own usual line across several activities. That is a trend, and trends are the only thing in a gradebook you can really act on.</p>
<p>The <strong>At risk only</strong> filter is there so you do not have to spot this by eye. Turning it on collapses thirty rows to the four or five students the analytics have flagged, which is a list short enough to actually do something with on a Monday. Sorting by most not done first makes it shorter still.</p>
<p>We would rather that list stayed short. A flag on twelve children out of thirty is not a flag, it is a mood, and teachers learn to ignore dashboards that cry wolf. If the filter surfaces half your class, treat that as a fact about the term rather than a to-do list.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="open-the-cell-that-surprises-you">Open the cell that surprises you<a href="https://heyzippy.io/blog/what-your-gradebook-is-telling-you/#open-the-cell-that-surprises-you" class="hash-link" aria-label="Direct link to Open the cell that surprises you" title="Direct link to Open the cell that surprises you" translate="no">​</a></h2>
<p>Sometimes a strong writer produces one weak piece, or a struggling one produces something much better than usual. That is neither a task problem nor a trend, and no amount of staring at the number will explain it.</p>
<p>Click the cell. You land on the marked script with the comment, the next step and the inline annotations already there. Often the answer is visible in the first paragraph: they ran out of time, they wrote a genuinely good opening and stopped, they answered a different question well.</p>
<p>This is the loop the grid exists to close. See something odd, open it, read what actually happened.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="one-number-per-cell-hides-what-you-need-to-teach">One number per cell hides what you need to teach<a href="https://heyzippy.io/blog/what-your-gradebook-is-telling-you/#one-number-per-cell-hides-what-you-need-to-teach" class="hash-link" aria-label="Direct link to One number per cell hides what you need to teach" title="Direct link to One number per cell hides what you need to teach" translate="no">​</a></h2>
<p>By default each cell shows a single score, and that score is an average of things that are not much like each other.</p>
<p>Change <strong>View</strong> to <strong>Rubric breakdown</strong> and every cell opens into the traits you assess. Two children on 18 out of 30 stop looking identical. One is carrying the mark on content with the language pulling it down; the other is fluent and has almost nothing to say. Same number, different lesson on Monday.</p>
<p>This is the setting most teachers never touch, and it is the one that changes what the gradebook is for. A score records where a child finished. The breakdown is the part you can plan from.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="completion-and-attainment-are-different-questions">Completion and attainment are different questions<a href="https://heyzippy.io/blog/what-your-gradebook-is-telling-you/#completion-and-attainment-are-different-questions" class="hash-link" aria-label="Direct link to Completion and attainment are different questions" title="Direct link to Completion and attainment are different questions" translate="no">​</a></h2>
<p>Two numbers at the top of the grid get read as if they were one.</p>
<p>Class average tells you how the work that came in was scored. <strong>Not done</strong> counts work that is past due with nothing submitted at all. A class average of 68 sitting next to nine pieces not done is a specific and fairly common situation: the work is landing for the children who attempt it, and what you have is a submission problem.</p>
<p>That is a conversation about deadlines, workload or what is going on at home. Reteaching the content will not touch it.</p>
<p>Reading those two together, rather than one at a time, is most of the skill.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="what-the-grid-cannot-tell-you">What the grid cannot tell you<a href="https://heyzippy.io/blog/what-your-gradebook-is-telling-you/#what-the-grid-cannot-tell-you" class="hash-link" aria-label="Direct link to What the grid cannot tell you" title="Direct link to What the grid cannot tell you" translate="no">​</a></h2>
<p>Everything on the screen is derived from marking you have already approved. Nothing is inferred and nothing is predicted. If you overrode a score, the grid uses your score, which is the whole reason it is worth trusting: it is not a second opinion about your class, it is your own marking arranged so the shapes are visible.</p>
<p>That also fixes its limits. The grid does not know that two of your strongest writers were away on a trip the week you set the essay, that Term 3 lost a fortnight, or that the child at the bottom of the column started at your school in April. It has no view on whether the dip in column five matters. It can show you a shape and tell you nothing about the cause.</p>
<p>So we are not going to claim that reading a grid well improves results. What it does is stop you spending Monday on the wrong child.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="the-guide">The guide<a href="https://heyzippy.io/blog/what-your-gradebook-is-telling-you/#the-guide" class="hash-link" aria-label="Direct link to The guide" title="Direct link to The guide" translate="no">​</a></h2>
<p>Step by step, with a recording of the real grid:</p>
<p><strong><a href="https://heyzippy.io/docs/grading/gradebook/">Reading your gradebook</a></strong></p>
<p>And when you want to send any of it onward, <strong><a href="https://heyzippy.io/docs/grading/exporting-reports/">exporting student reports</a></strong> covers turning marked work into a document you can hand to a parent.</p>]]></content>
        <author>
            <name>Zippy Team</name>
        </author>
        <category label="teaching" term="teaching"/>
        <category label="grading" term="grading"/>
        <category label="product-update" term="product-update"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Marking a class set, without losing the evening]]></title>
        <id>https://heyzippy.io/blog/marking-a-class-set/</id>
        <link href="https://heyzippy.io/blog/marking-a-class-set/"/>
        <updated>2026-07-28T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Thirty scripts, one rubric, and a first pass that is already done when you sit down. What actually changes when the marking is drafted before you start.]]></summary>
        <content type="html"><![CDATA[<p>The marking itself is not the hard part. Any teacher can read a story and tell you what is working and what is not. The hard part is doing it thirty times, at the end of a week, to the same standard for the thirtieth child as for the first.</p>
<p>That is the bit that breaks. Not your judgement, your stamina.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="what-the-pile-actually-costs">What the pile actually costs<a href="https://heyzippy.io/blog/marking-a-class-set/#what-the-pile-actually-costs" class="hash-link" aria-label="Direct link to What the pile actually costs" title="Direct link to What the pile actually costs" translate="no">​</a></h2>
<p>A class set of compositions is somewhere between two and four hours if you do it properly. Properly means reading the whole piece before you write anything, marking against the rubric rather than against the last script you read, and leaving a comment specific enough that the child can act on it.</p>
<p>Most teachers do not get to do it properly, and they know it. The comments get shorter as the pile gets smaller. The child at the bottom of the stack gets a worse deal than the child at the top, for no reason other than the order the books were collected in.</p>
<p>Consistency is the first casualty of volume. It is also the thing a rubric is supposed to protect.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="change-what-you-start-from">Change what you start from<a href="https://heyzippy.io/blog/marking-a-class-set/#change-what-you-start-from" class="hash-link" aria-label="Direct link to Change what you start from" title="Direct link to Change what you start from" translate="no">​</a></h2>
<p>The change that helps is not speed. It is starting from a draft rather than a blank page.</p>
<p>Zippy reads the whole class set against your rubric and drafts feedback for every student. When you sit down, the marking is already done once. Your job becomes reading, disagreeing, and adjusting, which is the part your judgement is actually for.</p>
<p>That flips the order of the work. Instead of generating thirty pieces of feedback from nothing, you are reviewing thirty pieces of feedback that already exist. Reviewing is faster than writing, and it holds up better at the end of a long day.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="handwriting-is-not-an-obstacle">Handwriting is not an obstacle<a href="https://heyzippy.io/blog/marking-a-class-set/#handwriting-is-not-an-obstacle" class="hash-link" aria-label="Direct link to Handwriting is not an obstacle" title="Direct link to Handwriting is not an obstacle" translate="no">​</a></h2>
<p>Most of this work is still done on paper, so most tools that promise to help with marking quietly assume you will type it all in first. That is a second job in front of the first one.</p>
<p>Photograph the pile. Zippy transcribes each script and marks the transcription. A phone camera on a page of P5 handwriting is enough. You are not retyping anything.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="what-you-get-back">What you get back<a href="https://heyzippy.io/blog/marking-a-class-set/#what-you-get-back" class="hash-link" aria-label="Direct link to What you get back" title="Direct link to What you get back" translate="no">​</a></h2>
<p>For each student: a score against each criterion in your rubric, a comment, a clear next step, and annotations marked in place on their own words. The annotations are the part children actually read, because they can see exactly which sentence the note is about.</p>
<p>For the class: the same standard applied to all thirty scripts, because the software does not get tired at script nineteen.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="the-part-that-stays-yours">The part that stays yours<a href="https://heyzippy.io/blog/marking-a-class-set/#the-part-that-stays-yours" class="hash-link" aria-label="Direct link to The part that stays yours" title="Direct link to The part that stays yours" translate="no">​</a></h2>
<p>Nothing goes to a student until you approve it. You can change a score, rewrite a comment, or throw out the whole thing for one child because you know something about that child the rubric does not.</p>
<p>The objection we hear most is rarely about accuracy. It is "will it sound like me". So the draft stays a draft. You edit it the way you would edit a colleague's marking if you were moderating together, and what goes out is yours.</p>
<p>We are not claiming a measured jump in results. What we can say is that the first pass is done before you sit down, and that the thirtieth child gets the same attention as the first.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="try-it-on-one-set">Try it on one set<a href="https://heyzippy.io/blog/marking-a-class-set/#try-it-on-one-set" class="hash-link" aria-label="Direct link to Try it on one set" title="Direct link to Try it on one set" translate="no">​</a></h2>
<p>The full walkthrough, step by step with a recording of the real thing, is in the guide:</p>
<p><strong><a href="https://heyzippy.io/docs/grading/bulk-grading/">Bulk grading a class set</a></strong></p>
<p>Take a set you have already marked by hand and run it through. Compare it to your own marks. If it does not match your standard, it is not ready for your classroom, and you should not use it.</p>
<hr>
<p>What the marks come out of is the rubric: <a href="https://heyzippy.io/blog/psle-composition-marking-rubric/">how PSLE composition is marked</a> and <a href="https://heyzippy.io/blog/ai-grading-rubrics-that-work/">AI grading is only as good as the rubric behind it</a>. What you do with a set once it is marked is in <a href="https://heyzippy.io/blog/what-your-gradebook-is-telling-you/">how to read a class gradebook</a>.</p>]]></content>
        <author>
            <name>Zippy Team</name>
        </author>
        <category label="teaching" term="teaching"/>
        <category label="grading" term="grading"/>
        <category label="product-update" term="product-update"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[PSLE Oral: A 3-Week Countdown Plan (10 Minutes a Day)]]></title>
        <id>https://heyzippy.io/blog/psle-oral-3-week-countdown-plan/</id>
        <link href="https://heyzippy.io/blog/psle-oral-3-week-countdown-plan/"/>
        <updated>2026-07-28T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[With the PSLE English Oral on 12-13 August 2026, a day-by-day plan to prepare your child in just ten minutes a night at home.]]></summary>
        <content type="html"><![CDATA[<p><strong>The PSLE English Oral is on 12–13 August 2026, a little over three weeks away. That's not a lot of time, but it's plenty for the Oral, because oral skills improve fast with short, daily practice.</strong> You don't need long weekend cram sessions. You need ten focused minutes a night and a plan for what to do in them.</p>
<p>Here's that plan, week by week. It's built so a parent can run it without being an English teacher.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="why-ten-minutes-beats-two-hours">Why ten minutes beats two hours<a href="https://heyzippy.io/blog/psle-oral-3-week-countdown-plan/#why-ten-minutes-beats-two-hours" class="hash-link" aria-label="Direct link to Why ten minutes beats two hours" title="Direct link to Why ten minutes beats two hours" translate="no">​</a></h2>
<p>The Oral rewards <strong>fluency and confidence</strong>: being comfortable reading aloud and speaking in full sentences under a little pressure. Those come from <em>repetition</em>, not from one big session. A child who does ten calm minutes every evening walks in relaxed; a child who crams for three hours the weekend before walks in tense. Little and often wins.</p>
<p>Each session covers the two parts of the Oral: a bit of <strong>Reading Aloud</strong> and a bit of <strong>Stimulus-Based Conversation (SBC)</strong>.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="week-1-build-the-habit-goal-comfort-not-perfection">Week 1: Build the habit (goal: comfort, not perfection)<a href="https://heyzippy.io/blog/psle-oral-3-week-countdown-plan/#week-1-build-the-habit-goal-comfort-not-perfection" class="hash-link" aria-label="Direct link to Week 1: Build the habit (goal: comfort, not perfection)" title="Direct link to Week 1: Build the habit (goal: comfort, not perfection)" translate="no">​</a></h2>
<p>The aim this week is simply to make reading aloud and talking about a photo feel <em>normal</em>.</p>
<ul>
<li><strong>Reading Aloud (5 min):</strong> pick any short passage: a storybook page, a news paragraph, even a recipe. You read it first with expression, then your child reads it. Praise <em>tone</em>, not just accuracy. Don't correct every tiny slip; you're building comfort.</li>
<li><strong>SBC (5 min):</strong> open your phone gallery or a news site, pick one photo, and ask your child to describe it fully: who, what, where, and how the people seem to feel. Then ask one simple opinion question ("Would you enjoy doing that? Why?").</li>
</ul>
<p>Do this five evenings this week. That's it.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="week-2-add-structure-goal-fuller-answers">Week 2: Add structure (goal: fuller answers)<a href="https://heyzippy.io/blog/psle-oral-3-week-countdown-plan/#week-2-add-structure-goal-fuller-answers" class="hash-link" aria-label="Direct link to Week 2: Add structure (goal: fuller answers)" title="Direct link to Week 2: Add structure (goal: fuller answers)" translate="no">​</a></h2>
<p>Now that talking feels normal, work on making answers <em>complete</em>, which is where the marks are.</p>
<ul>
<li><strong>Reading Aloud (5 min):</strong> start using passages with a <strong>situation line</strong> (e.g. "You are excitedly telling a friend about a trip"). Before reading, ask: <em>who am I, and how would this person sound?</em> Then read in that tone. This tone-matching is exactly what the 2026 format tests.</li>
<li><strong>SBC (5 min):</strong> push for fuller answers. For opinions, teach the simple habit of <strong>point → example → reason</strong>: state your view, give a real example, say why it matters. A one-line "yes because it's fun" becomes a proper answer.</li>
</ul>
<p><strong>The Zippy way to practise:</strong> after your child answers, play "examiner" for a moment: ask, <em>"was that a full answer, or did it stop early?"</em> Getting them to hear the difference between a short answer and a complete one is worth more than any correction you give.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="week-3-rehearse-the-real-thing-goal-calm-and-pacing">Week 3: Rehearse the real thing (goal: calm and pacing)<a href="https://heyzippy.io/blog/psle-oral-3-week-countdown-plan/#week-3-rehearse-the-real-thing-goal-calm-and-pacing" class="hash-link" aria-label="Direct link to Week 3: Rehearse the real thing (goal: calm and pacing)" title="Direct link to Week 3: Rehearse the real thing (goal: calm and pacing)" translate="no">​</a></h2>
<p>The final stretch is about simulating exam conditions so nothing feels new on the day.</p>
<ul>
<li><strong>Two or three full mock runs</strong> across the week: one Reading Aloud passage (with a situation line) followed by three SBC questions on a photo: the description question first, then two opinion questions. Time it loosely so the pace feels familiar.</li>
<li><strong>Record one run</strong> on your phone and listen back together. Children spot their own rushing and one-word answers faster than they accept a parent pointing them out.</li>
<li><strong>Then ease off.</strong> In the last day or two, keep it light. A rested, confident child performs far better than an over-drilled, anxious one.</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="ready-made-material-so-youre-not-inventing-it-nightly">Ready-made material so you're not inventing it nightly<a href="https://heyzippy.io/blog/psle-oral-3-week-countdown-plan/#ready-made-material-so-youre-not-inventing-it-nightly" class="hash-link" aria-label="Direct link to Ready-made material so you're not inventing it nightly" title="Direct link to Ready-made material so you're not inventing it nightly" translate="no">​</a></h2>
<p>You don't have to hunt for passages and photos every evening. Our free, teacher-written practice gives you everything for the plan above:</p>
<ul>
<li><strong><a href="https://heyzippy.io/learn/psle/english/paper-4/">PSLE Reading Aloud passages</a></strong>: in the 2026 style, each with a situation line, tone notes, and pronunciation tips.</li>
<li><strong><a href="https://heyzippy.io/learn/psle/english/paper-4/">PSLE SBC practice sets</a></strong>: photo prompts with three questions and graded model answers, so your child can <em>see</em> what a strong response looks like before trying their own.</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="the-one-message-for-the-last-three-weeks">The one message for the last three weeks<a href="https://heyzippy.io/blog/psle-oral-3-week-countdown-plan/#the-one-message-for-the-last-three-weeks" class="hash-link" aria-label="Direct link to The one message for the last three weeks" title="Direct link to The one message for the last three weeks" translate="no">​</a></h2>
<p>Keep it short, keep it warm, keep it daily. Ten calm minutes a night, building from <em>comfort</em> (week 1) to <em>fuller answers</em> (week 2) to <em>confident mock runs</em> (week 3), is genuinely enough to walk into 12 August prepared.</p>
<p>For the full picture of what's tested and how it's marked, start with our <strong><a href="https://heyzippy.io/blog/psle-english-oral-2026-parents-guide/">PSLE English Oral 2026: Complete Parent's Guide</a></strong>.</p>
<hr>
<p><em>Free guides from the team behind Zippy, which gives teachers and tutors fast, specific feedback on student English. <a href="https://heyzippy.io/grade/">Try the live grader →</a></em></p>
<p><strong>Related:</strong> <a href="https://heyzippy.io/blog/psle-sbc-how-to-answer-any-photo/">How to Answer the SBC Photo</a> · <a href="https://heyzippy.io/blog/psle-reading-aloud-full-marks/">Reading Aloud: Full Marks</a></p>]]></content>
        <author>
            <name>Zippy Team</name>
        </author>
        <category label="psle" term="psle"/>
        <category label="english-oral" term="english-oral"/>
        <category label="parents" term="parents"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[PSLE Reading Aloud 2026: how to score full marks]]></title>
        <id>https://heyzippy.io/blog/psle-reading-aloud-full-marks/</id>
        <link href="https://heyzippy.io/blog/psle-reading-aloud-full-marks/"/>
        <updated>2026-07-27T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[The easiest place to gain marks in the PSLE Oral. What examiners listen for in 2026, the mistakes that cost marks, and how to practise at home.]]></summary>
        <content type="html"><![CDATA[<p><strong>If the Stimulus-Based Conversation is where children get nervous, Reading Aloud is where they should get marks, because unlike a conversation, the words are right there on the page.</strong> Nothing to invent, nothing to remember. And yet many children leave marks behind through rushing, flat delivery, or missing the <em>tone</em> the passage is asking for.</p>
<p>Here's how your child can read for full marks.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="what-examiners-are-actually-listening-for">What examiners are actually listening for<a href="https://heyzippy.io/blog/psle-reading-aloud-full-marks/#what-examiners-are-actually-listening-for" class="hash-link" aria-label="Direct link to What examiners are actually listening for" title="Direct link to What examiners are actually listening for" translate="no">​</a></h2>
<p>Reading Aloud isn't a speed test or a "no mistakes" test. Assessors reward reading that is:</p>
<ul>
<li><strong>Clear.</strong> Words pronounced correctly and distinctly, including the tricky ones.</li>
<li><strong>Well-paced.</strong> Not racing, not crawling; natural speaking speed with pauses at punctuation.</li>
<li><strong>Expressive.</strong> The voice rises and falls with the meaning, rather than droning in a flat line.</li>
<li><strong>Right for the situation.</strong> This is the piece most children miss (see below).</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="the-one-thing-most-children-miss-the-situation-line">The one thing most children miss: the situation line<a href="https://heyzippy.io/blog/psle-reading-aloud-full-marks/#the-one-thing-most-children-miss-the-situation-line" class="hash-link" aria-label="Direct link to The one thing most children miss: the situation line" title="Direct link to The one thing most children miss: the situation line" translate="no">​</a></h2>
<p>In the current format, the passage has a <strong>short line at the top that sets the scene</strong>: who is speaking, to whom, and why. It might tell your child they are, say, an excited student telling a friend about a school trip, or a helpful guide giving directions to a visitor.</p>
<p>That line is an instruction, not decoration. It tells your child <strong>what tone to read in.</strong> An excited message should sound excited; a set of instructions should sound clear and calm. Reading the same passage in a flat, one-note voice, however accurately, leaves expression marks on the table.</p>
<p><strong>Teach your child to do this first:</strong> before reading a single word aloud, read the situation line silently and ask, <em>"Who am I, and how would this person sound?"</em></p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="the-mistakes-that-quietly-cost-marks">The mistakes that quietly cost marks<a href="https://heyzippy.io/blog/psle-reading-aloud-full-marks/#the-mistakes-that-quietly-cost-marks" class="hash-link" aria-label="Direct link to The mistakes that quietly cost marks" title="Direct link to The mistakes that quietly cost marks" translate="no">​</a></h2>
<ul>
<li><strong>Rushing.</strong> Nerves make children speed up. Faster reading means slurred words and no expression. Slower is almost always better.</li>
<li><strong>Ignoring punctuation.</strong> A full stop is a pause; a comma is a short breath; an exclamation mark is energy. Punctuation is a built-in map for <em>how</em> to read.</li>
<li><strong>Flat delivery.</strong> Reading every sentence in the same tone, regardless of meaning.</li>
<li><strong>Mumbling the hard word.</strong> Guessing quietly and moving on. Better to slow down and pronounce it clearly.</li>
<li><strong>No warm-up.</strong> Cold-reading a passage they've never seen, at speed, is the worst-case scenario, which is exactly why home practice matters.</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="how-to-practise-at-home-10-minutes-a-day">How to practise at home (10 minutes a day)<a href="https://heyzippy.io/blog/psle-reading-aloud-full-marks/#how-to-practise-at-home-10-minutes-a-day" class="hash-link" aria-label="Direct link to How to practise at home (10 minutes a day)" title="Direct link to How to practise at home (10 minutes a day)" translate="no">​</a></h2>
<ul>
<li><strong>One paragraph, out loud, every day.</strong> Any storybook, news article, or even a cereal box. The goal is comfort with reading aloud, so nerves don't spike on exam day.</li>
<li><strong>You read it first.</strong> Model the expression, let them hear a full stop become a pause and an exclamation become energy. Then they copy, then they improve.</li>
<li><strong>Play "what's the situation?"</strong> Before reading a passage, decide together who's speaking and how they'd sound. Read it that way.</li>
<li><strong>Record and replay.</strong> Let your child hear themselves on your phone. They'll notice rushing and flatness faster than any correction from you.</li>
<li><strong>Hunt the hard words.</strong> Skim for names and unfamiliar words first, practise those, <em>then</em> read the whole passage smoothly.</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="practise-with-real-passages">Practise with real passages<a href="https://heyzippy.io/blog/psle-reading-aloud-full-marks/#practise-with-real-passages" class="hash-link" aria-label="Direct link to Practise with real passages" title="Direct link to Practise with real passages" translate="no">​</a></h2>
<p>Our free <strong><a href="https://heyzippy.io/learn/psle/english/paper-4/">PSLE Reading Aloud practice passages</a></strong> are written in the current 2026 style, each with a situation line and notes on the tone to aim for, plus pronunciation tips for the tricky words. Print one a day for the countdown to 12 August.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="the-mindset-to-send-them-in-with">The mindset to send them in with<a href="https://heyzippy.io/blog/psle-reading-aloud-full-marks/#the-mindset-to-send-them-in-with" class="hash-link" aria-label="Direct link to The mindset to send them in with" title="Direct link to The mindset to send them in with" translate="no">​</a></h2>
<p>Reading Aloud is the part of the Oral your child can most control. The words are given. The job is simply to read them <strong>clearly, at a calm pace, with expression that fits the situation.</strong> A child who has read one paragraph aloud every evening for three weeks will walk in and do exactly that.</p>
<hr>
<p><em>Free, teacher-written practice from the team behind Zippy: AI-assisted feedback on student writing and speaking, built for teachers and tutors. <a href="https://heyzippy.io/grade/">Try the live grader →</a></em></p>
<p><strong>Related:</strong> <a href="https://heyzippy.io/blog/psle-english-oral-2026-parents-guide/">PSLE Oral 2026: Complete Parent's Guide</a> · <a href="https://heyzippy.io/blog/psle-sbc-how-to-answer-any-photo/">How to Answer the SBC Photo</a></p>]]></content>
        <author>
            <name>Zippy Team</name>
        </author>
        <category label="psle" term="psle"/>
        <category label="english-oral" term="english-oral"/>
        <category label="parents" term="parents"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[PSLE Stimulus-Based Conversation: how to answer any photo]]></title>
        <id>https://heyzippy.io/blog/psle-sbc-how-to-answer-any-photo/</id>
        <link href="https://heyzippy.io/blog/psle-sbc-how-to-answer-any-photo/"/>
        <updated>2026-07-26T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[A step-by-step method for the PSLE Oral SBC: 5W1H to describe the photo, PEEL to give opinions, with weak and strong sample answers to copy.]]></summary>
        <content type="html"><![CDATA[<p><strong>Most children lose marks in the Stimulus-Based Conversation not because they have nothing to say, but because they say it in one short line and stop.</strong> "It's a family eating dinner." Full stop. The examiner waits; the child freezes.</p>
<p>We're going to look at this the way an assessor does, at where each mark is actually awarded, and then give your child two simple habits that hit those marks every time: describing the photo in full, and backing up an opinion with a reason. They're not magic formulas (every tutor in Singapore teaches some version of them); what matters is seeing <em>why</em> the fuller answer scores and the short one doesn't. Once your child sees that, they can talk about <strong>any</strong> photo the examiner puts in front of them.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="first-what-sbc-actually-asks">First, what SBC actually asks<a href="https://heyzippy.io/blog/psle-sbc-how-to-answer-any-photo/#first-what-sbc-actually-asks" class="hash-link" aria-label="Direct link to First, what SBC actually asks" title="Direct link to First, what SBC actually asks" translate="no">​</a></h2>
<p>Your child is shown a <strong>real photograph</strong> and then answers a short set of questions (usually three). The <strong>first question is tied directly to the photo</strong> ("Tell me what you see" / "What is happening here?"). The <strong>later questions open outwards</strong> into their own views and experiences on the theme ("Do you think children today spend enough time outdoors? Why?").</p>
<p>So the child needs two different tools: one for <em>describing</em>, one for <em>giving opinions</em>.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="tool-1-describe-the-photo-with-5w1h">Tool 1: Describe the photo with 5W1H<a href="https://heyzippy.io/blog/psle-sbc-how-to-answer-any-photo/#tool-1-describe-the-photo-with-5w1h" class="hash-link" aria-label="Direct link to Tool 1: Describe the photo with 5W1H" title="Direct link to Tool 1: Describe the photo with 5W1H" translate="no">​</a></h2>
<p>When the question is about the picture, run through six quick prompts:</p>
<table><thead><tr><th></th><th>Prompt</th><th>Turns into…</th></tr></thead><tbody><tr><td><strong>Who</strong></td><td>Who is in the photo?</td><td>"A mother and two young children…"</td></tr><tr><td><strong>What</strong></td><td>What are they doing?</td><td>"…are cooking together in the kitchen."</td></tr><tr><td><strong>Where</strong></td><td>Where is this?</td><td>"It looks like a home kitchen…"</td></tr><tr><td><strong>When</strong></td><td>What time / occasion?</td><td>"…perhaps in the evening, preparing dinner."</td></tr><tr><td><strong>Why</strong></td><td>Why might this be happening?</td><td>"They may be making a family meal together as a weekend activity."</td></tr><tr><td><strong>How</strong></td><td>How do they seem to feel?</td><td>"Everyone is smiling, so they look happy and relaxed."</td></tr></tbody></table>
<p><strong>Weak answer:</strong> <em>"It's a family cooking."</em></p>
<p><strong>Strong answer (5W1H):</strong> <em>"In the photo, a mother and her two young children are cooking together in what looks like their home kitchen, perhaps preparing dinner in the evening. They are all smiling, so they seem happy and to be enjoying spending time together."</em></p>
<p>Same photo. One is a fragment; the other is a confident, complete answer, and your child built it just by walking through six questions.</p>
<blockquote>
<p><strong>Teach the habit, not the script.</strong> Don't have your child memorise that paragraph. Have them practise the <em>six questions</em> on ten different photos until running through them becomes automatic.</p>
</blockquote>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="tool-2-give-opinions-with-peel">Tool 2: Give opinions with PEEL<a href="https://heyzippy.io/blog/psle-sbc-how-to-answer-any-photo/#tool-2-give-opinions-with-peel" class="hash-link" aria-label="Direct link to Tool 2: Give opinions with PEEL" title="Direct link to Tool 2: Give opinions with PEEL" translate="no">​</a></h2>
<p>When the question asks what your child <em>thinks</em>, use <strong>PEEL</strong>:</p>
<ul>
<li><strong>P for Point:</strong> state your view clearly. <em>"I think families should cook together whenever they can."</em></li>
<li><strong>E for Evidence:</strong> give an example. <em>"For example, my family makes dumplings together every Sunday."</em></li>
<li><strong>E for Explanation:</strong> say why it matters. <em>"It gives us a chance to talk and catch up after a busy week."</em></li>
<li><strong>L for Link:</strong> tie back to the question. <em>"So I believe cooking together is a good way for families to bond."</em></li>
</ul>
<p><strong>Weak answer:</strong> <em>"Yes, cooking together is good."</em></p>
<p><strong>Strong answer (PEEL):</strong> the four lines above: a complete, organised opinion that sounds thoughtful without being memorised.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="putting-it-together-a-full-mini-run">Putting it together: a full mini-run<a href="https://heyzippy.io/blog/psle-sbc-how-to-answer-any-photo/#putting-it-together-a-full-mini-run" class="hash-link" aria-label="Direct link to Putting it together: a full mini-run" title="Direct link to Putting it together: a full mini-run" translate="no">​</a></h2>
<p><strong>Examiner:</strong> <em>"What do you see in this photo?"</em>
<strong>Child (5W1H):</strong> <em>"I can see a mother and two children cooking together in their kitchen, probably making dinner. They are smiling and look like they're enjoying it."</em></p>
<p><strong>Examiner:</strong> <em>"Do you enjoy helping out at home? Why?"</em>
<strong>Child (PEEL):</strong> <em>"Yes, I do. For example, I help wash the vegetables when my mother cooks. It makes her work easier and I get to learn how to prepare simple dishes. So I feel helping at home is both useful and rewarding."</em></p>
<p>That's the whole skill. Two frameworks, endless topics.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="how-you-can-help-at-home-tonight">How you can help at home tonight<a href="https://heyzippy.io/blog/psle-sbc-how-to-answer-any-photo/#how-you-can-help-at-home-tonight" class="hash-link" aria-label="Direct link to How you can help at home tonight" title="Direct link to How you can help at home tonight" translate="no">​</a></h2>
<ul>
<li><strong>The 10-minute photo game.</strong> Open your phone gallery or a news site. Pick a photo. Child describes it with 5W1H, then you ask one opinion question they answer with PEEL. Do three photos. Done.</li>
<li><strong>Vary the themes.</strong> Rotate everyday topics: family, school, hobbies, food, the environment, helping others, technology, National Day. These are the kinds of themes SBC draws on.</li>
<li><strong>Fillers cost fluency.</strong> If your child leans on "uhm" and "like", teach a graceful stall instead: <em>"That's an interesting question, I think…"</em> It buys thinking time and sounds composed.</li>
<li><strong>Praise structure, not just content.</strong> When they naturally hit all four PEEL steps, name it: "That was a full answer, point, example, reason, and you linked it back." Recognition makes the habit stick.</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="practise-with-ready-made-prompts">Practise with ready-made prompts<a href="https://heyzippy.io/blog/psle-sbc-how-to-answer-any-photo/#practise-with-ready-made-prompts" class="hash-link" aria-label="Direct link to Practise with ready-made prompts" title="Direct link to Practise with ready-made prompts" translate="no">​</a></h2>
<p>You don't have to invent photos and questions every night. Our free <strong><a href="https://heyzippy.io/learn/psle/english/paper-4/">PSLE SBC practice sets</a></strong> give you photo prompts with example questions <strong>and</strong> model answers built on 5W1H and PEEL, so your child can see exactly what a strong response looks like, then try their own.</p>
<hr>
<p><em>These free guides come from the team behind Zippy, which gives teachers and tutors fast, specific feedback on student English. <a href="https://heyzippy.io/grade/">Try the live grader →</a></em></p>
<p><strong>Related:</strong> <a href="https://heyzippy.io/blog/psle-english-oral-2026-parents-guide/">PSLE Oral 2026: Complete Parent's Guide</a> · <a href="https://heyzippy.io/blog/psle-reading-aloud-full-marks/">Reading Aloud: Full Marks</a></p>]]></content>
        <author>
            <name>Zippy Team</name>
        </author>
        <category label="psle" term="psle"/>
        <category label="english-oral" term="english-oral"/>
        <category label="parents" term="parents"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[PSLE English Oral 2026: the complete parent's guide]]></title>
        <id>https://heyzippy.io/blog/psle-english-oral-2026-parents-guide/</id>
        <link href="https://heyzippy.io/blog/psle-english-oral-2026-parents-guide/"/>
        <updated>2026-07-25T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Everything a parent needs for the 2026 PSLE English Oral on 12-13 August: the format, what is assessed, and a plan to prepare at home.]]></summary>
        <content type="html"><![CDATA[<p><strong>The PSLE English Oral is on 12–13 August 2026, and if your child is one of the many who freeze the moment they see the photo or stumble over a hard word, the good news is that oral is one of the most <em>coachable</em> parts of the whole exam.</strong> You don't need to be an English teacher to help. You need a simple picture of what's tested, two small frameworks, and ten minutes a day.</p>
<p>This guide gives you all three.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="why-the-oral-is-worth-taking-seriously">Why the Oral is worth taking seriously<a href="https://heyzippy.io/blog/psle-english-oral-2026-parents-guide/#why-the-oral-is-worth-taking-seriously" class="hash-link" aria-label="Direct link to Why the Oral is worth taking seriously" title="Direct link to Why the Oral is worth taking seriously" translate="no">​</a></h2>
<p>The Oral component carries real weight in the PSLE English grade, and unlike composition or comprehension, almost every mark is within reach with practice. Examiners aren't looking for a "perfect" child. They're looking for one who reads clearly, speaks in full sentences, and can hold a short conversation with confidence. That is a trainable skill, not a talent.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="the-2026-format-at-a-glance">The 2026 format at a glance<a href="https://heyzippy.io/blog/psle-english-oral-2026-parents-guide/#the-2026-format-at-a-glance" class="hash-link" aria-label="Direct link to The 2026 format at a glance" title="Direct link to The 2026 format at a glance" translate="no">​</a></h2>
<p>The Oral exam has <strong>two parts</strong>, done back-to-back in a single sitting:</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="1-reading-aloud">1. Reading Aloud<a href="https://heyzippy.io/blog/psle-english-oral-2026-parents-guide/#1-reading-aloud" class="hash-link" aria-label="Direct link to 1. Reading Aloud" title="Direct link to 1. Reading Aloud" translate="no">​</a></h3>
<p>Your child reads a short passage (roughly 150–200 words) out loud. In the current format, the passage comes with a <strong>short "situation" line at the top</strong> that tells them the context: who is speaking, to whom, and why. The point isn't just accurate reading; it's reading <em>with the right tone</em> for that situation (excited, reassuring, giving instructions, and so on).</p>
<p><strong>Assessed on:</strong> clear pronunciation, appropriate pace, expression, and reading with feeling that matches the situation.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="2-stimulus-based-conversation-sbc">2. Stimulus-Based Conversation (SBC)<a href="https://heyzippy.io/blog/psle-english-oral-2026-parents-guide/#2-stimulus-based-conversation-sbc" class="hash-link" aria-label="Direct link to 2. Stimulus-Based Conversation (SBC)" title="Direct link to 2. Stimulus-Based Conversation (SBC)" translate="no">​</a></h3>
<p>Your child is shown a <strong>real photograph</strong> (not the old poster-with-words), then answers a short series of questions about it and the theme behind it. The first question is tied directly to the photo; the later questions open out into their own opinions and experiences.</p>
<p><strong>Assessed on:</strong> ideas and personal response, range of vocabulary, fluency, and clear grammar.</p>
<blockquote>
<p><strong>New for the current format, worth knowing:</strong> the Reading Aloud passage and the SBC photograph are <strong>no longer thematically linked</strong>. The photo can be about something completely different from the passage, so your child shouldn't expect one to hint at the other.</p>
</blockquote>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="the-two-frameworks-that-do-the-heavy-lifting">The two frameworks that do the heavy lifting<a href="https://heyzippy.io/blog/psle-english-oral-2026-parents-guide/#the-two-frameworks-that-do-the-heavy-lifting" class="hash-link" aria-label="Direct link to The two frameworks that do the heavy lifting" title="Direct link to The two frameworks that do the heavy lifting" translate="no">​</a></h2>
<p>You only need to teach your child two simple structures. Both are covered in depth in our dedicated guides, linked below.</p>
<p><strong>For describing the photo → 5W1H.</strong> Who is in it? What are they doing? Where and when? Why might this be happening? How do they seem to feel? Six questions turn a one-line answer ("It's a family eating") into a rich, examiner-pleasing description.</p>
<p><strong>For opinion questions → PEEL.</strong> Point (state your view) → Evidence (an example) → Explanation (why it matters) → Link (back to the question). This stops answers from trailing off after one sentence.</p>
<p>We break both down with sample answers here:</p>
<ul>
<li>👉 <strong><a href="https://heyzippy.io/blog/psle-sbc-how-to-answer-any-photo/">PSLE Stimulus-Based Conversation: How to Answer Any Photo</a></strong></li>
<li>👉 <strong><a href="https://heyzippy.io/blog/psle-reading-aloud-full-marks/">PSLE Reading Aloud 2026: How to Score Full Marks</a></strong></li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="how-you-can-help-at-home-no-teaching-degree-required">How you can help at home (no teaching degree required)<a href="https://heyzippy.io/blog/psle-english-oral-2026-parents-guide/#how-you-can-help-at-home-no-teaching-degree-required" class="hash-link" aria-label="Direct link to How you can help at home (no teaching degree required)" title="Direct link to How you can help at home (no teaching degree required)" translate="no">​</a></h2>
<p>You already have everything you need: a phone full of photos and ten minutes after dinner.</p>
<ul>
<li><strong>The daily photo game.</strong> Open any photo (a news picture, a holiday snap, a food photo). Ask your child to describe it using 5W1H, then ask one opinion question ("Should families eat together every night? Why?"). That's a complete SBC rehearsal in three minutes.</li>
<li><strong>Read one paragraph aloud, together.</strong> Any book or article. Model reading with expression first, then let them try. Praise <em>tone</em>, not just accuracy.</li>
<li><strong>Ban the memorised speech.</strong> Examiners can spot rehearsed answers instantly, and they mark them down. Practise <em>flexible structures</em> (5W1H, PEEL) that work for any topic, not fixed scripts.</li>
<li><strong>Model standard English.</strong> In the week before, gently swap "lah/leh" and slang for their standard forms during practice chats. It normalises the register they'll need in the room.</li>
<li><strong>Keep it warm.</strong> A nervous child reads worse and talks less. Short, encouraging sessions beat long, tense ones.</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="a-simple-3-week-countdown">A simple 3-week countdown<a href="https://heyzippy.io/blog/psle-english-oral-2026-parents-guide/#a-simple-3-week-countdown" class="hash-link" aria-label="Direct link to A simple 3-week countdown" title="Direct link to A simple 3-week countdown" translate="no">​</a></h2>
<ul>
<li><strong>Weeks out (now):</strong> one photo and one reading paragraph a day. Focus on <em>fluency</em>, not perfection.</li>
<li><strong>Two weeks out:</strong> add opinion questions; practise PEEL until it's automatic.</li>
<li><strong>Final week:</strong> two or three full mock runs (reading and 3 SBC questions) to build calm and pacing. Then ease off. A rested, confident child performs best.</li>
</ul>
<p>Our free, teacher-written <strong><a href="https://heyzippy.io/learn/psle/english/paper-4/">PSLE Oral practice sets</a></strong> give you ready-made passages and photo prompts with model answers, so you're not scrambling to invent material each night.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="the-one-thing-to-remember">The one thing to remember<a href="https://heyzippy.io/blog/psle-english-oral-2026-parents-guide/#the-one-thing-to-remember" class="hash-link" aria-label="Direct link to The one thing to remember" title="Direct link to The one thing to remember" translate="no">​</a></h2>
<p>The Oral rewards a child who can <strong>think on their feet and speak clearly</strong>, not one who has memorised the "right" answers. Every ten-minute session between now and 12 August builds exactly that.</p>
<hr>
<p><em>Zippy helps teachers and tutors give students fast, specific feedback on their English, including spoken and written practice. These free guides are a small sample of the Zippy curriculum. <a href="https://heyzippy.io/grade/">Try the live grader →</a></em></p>
<p><strong>Related:</strong> <a href="https://heyzippy.io/blog/psle-sbc-how-to-answer-any-photo/">How to Answer the SBC Photo</a> · <a href="https://heyzippy.io/blog/psle-reading-aloud-full-marks/">Reading Aloud: Full Marks</a></p>]]></content>
        <author>
            <name>Zippy Team</name>
        </author>
        <category label="psle" term="psle"/>
        <category label="english-oral" term="english-oral"/>
        <category label="parents" term="parents"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[What shipped in Zippy: July 2026 (CLI v0.1.3, SDK v0.3.0)]]></title>
        <id>https://heyzippy.io/blog/release-v0-1-3/</id>
        <link href="https://heyzippy.io/blog/release-v0-1-3/"/>
        <updated>2026-07-21T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[The July release: an editable reports builder, the whole-class gradebook, native PDF and DOCX export, an email-code CLI login, and a public client SDK.]]></summary>
        <content type="html"><![CDATA[<p>Two threads ran through this month. Give teachers the whole class on one screen,
and make the results easy to take out of Zippy and share. Here is what shipped in
July. Every release post lives under the <a href="https://heyzippy.io/blog/tags/release/">release tag</a>; this is July's.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="added">Added<a href="https://heyzippy.io/blog/release-v0-1-3/#added" class="hash-link" aria-label="Direct link to Added" title="Direct link to Added" translate="no">​</a></h2>
<ul>
<li><strong>Reports builder.</strong> An AI-authored, editable analytics report for a class:
performance and trait scores, with save, save-as-new, and Markdown export. You
start from a draft and change what you would change.</li>
<li><strong>The whole-class gradebook.</strong> A single grid of every student against every
activity, with class averages and at-risk flags, plus a per-activity monitor so
you can see a class set being marked in real time.</li>
<li><strong>Native PDF and DOCX export.</strong> Export marked work, with feedback and
annotations, as real documents a school can actually use. Stale rubrics can be
re-run before export.</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="changed">Changed<a href="https://heyzippy.io/blog/release-v0-1-3/#changed" class="hash-link" aria-label="Direct link to Changed" title="Direct link to Changed" translate="no">​</a></h2>
<ul>
<li><strong>Feedback split from scoring.</strong> Feedback now includes span-level annotations
(corrections, praise, and a next step) written after the grade is known, so the
comment always matches the score. Any single submission can be re-graded on its
own.</li>
<li><strong>CLI login moved to an email code.</strong> <code>zippy login</code> sends a six-digit code to
your inbox and mints a workspace key. No browser round-trip.</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="fixed">Fixed<a href="https://heyzippy.io/blog/release-v0-1-3/#fixed" class="hash-link" aria-label="Direct link to Fixed" title="Direct link to Fixed" translate="no">​</a></h2>
<ul>
<li>Lesson generation no longer fails on a duplicate save id; it plans first, then
generates.</li>
<li>The export path no longer crashes on activities with mixed question types.</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="known-gaps">Known gaps<a href="https://heyzippy.io/blog/release-v0-1-3/#known-gaps" class="hash-link" aria-label="Direct link to Known gaps" title="Direct link to Known gaps" translate="no">​</a></h2>
<ul>
<li>Handwriting transcription is tuned for English. Other languages are on the list.</li>
<li>The web app ships continuously and is not version-tagged. The version above is
the open-source CLI and client SDK line, which does carry real tags.</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="honest-about-what-this-is">Honest about what this is<a href="https://heyzippy.io/blog/release-v0-1-3/#honest-about-what-this-is" class="hash-link" aria-label="Direct link to Honest about what this is" title="Direct link to Honest about what this is" translate="no">​</a></h2>
<p>Every line here is about what the software does: it drafts, it grades a first
pass, it annotates, it exports, it tracks patterns. We are not claiming a measured
jump in results, because that is not ours to claim yet. What we can say is that the
whole class now fits on one screen, and the marking leaves the tool in a form a
school can use. The open-source CLI, skills, and client SDK are at
<a href="https://github.com/heyzippy/zippy" target="_blank" rel="noopener noreferrer">github.com/heyzippy/zippy</a>.</p>
<hr>
<p>The August update that followed is in <a href="https://heyzippy.io/blog/whats-new-editing-regrading-skills/">what's new: editing, re-grading, and skills on every piece</a>, and the gradebook this release introduced is explained in <a href="https://heyzippy.io/blog/what-your-gradebook-is-telling-you/">how to read a class gradebook</a>.</p>]]></content>
        <author>
            <name>Zippy Team</name>
        </author>
        <category label="release" term="release"/>
        <category label="product-update" term="product-update"/>
        <category label="grading" term="grading"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Inside bulk grading: how the two-phase pipeline works]]></title>
        <id>https://heyzippy.io/blog/inside-bulk-grading-pipeline/</id>
        <link href="https://heyzippy.io/blog/inside-bulk-grading-pipeline/"/>
        <updated>2026-07-16T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[A fast first pass that returns in seconds, a bounded background fan-out to the model, and live grading progress streamed to the browser.]]></summary>
        <content type="html"><![CDATA[<p>When a teacher drops a class set of scans into Zippy and presses grade, two things
have to be true at once. The page has to respond right away, and thirty answers
have to be marked against a rubric by a language model without running up an
unbounded bill or timing out. Those goals pull in opposite directions. Here is how
the grading pipeline holds both.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="the-problem-with-grading-in-one-pass">The problem with grading in one pass<a href="https://heyzippy.io/blog/inside-bulk-grading-pipeline/#the-problem-with-grading-in-one-pass" class="hash-link" aria-label="Direct link to The problem with grading in one pass" title="Direct link to The problem with grading in one pass" translate="no">​</a></h2>
<p>The naive version is a single request: receive the upload, OCR every page, send
every answer to the model, wait, return the results. It is simple, and it falls
over in production. A class of thirty essays is thirty slow model calls behind one
HTTP request. The teacher stares at a spinner for a minute or more, the request
risks timing out, and if two teachers grade at once you have sixty concurrent
model calls with nothing deciding which run first.</p>
<p>So grading is split into two phases with very different shapes.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="phase-a-a-fast-pass-that-returns-in-seconds">Phase A: a fast pass that returns in seconds<a href="https://heyzippy.io/blog/inside-bulk-grading-pipeline/#phase-a-a-fast-pass-that-returns-in-seconds" class="hash-link" aria-label="Direct link to Phase A: a fast pass that returns in seconds" title="Direct link to Phase A: a fast pass that returns in seconds" translate="no">​</a></h2>
<p>The first phase is synchronous and does no model grading at all. It OCRs each
uploaded scan, extracts one answer per question, and writes the submission and its
answers to the database with the feedback column left empty. Then it returns.</p>
<p>Because nothing is graded yet, this is quick, and the front end can render a card
for every student immediately, each showing a plain "Grading..." state. The
teacher sees the whole class appear at once instead of waiting for the slowest
essay. The work of actually marking has been deferred, not skipped.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="phase-b-a-bounded-background-fan-out">Phase B: a bounded background fan-out<a href="https://heyzippy.io/blog/inside-bulk-grading-pipeline/#phase-b-a-bounded-background-fan-out" class="hash-link" aria-label="Direct link to Phase B: a bounded background fan-out" title="Direct link to Phase B: a bounded background fan-out" translate="no">​</a></h2>
<p>The second phase is spawned to run in the background after the response has
already gone out. It grades each answer, but it does not do so with the throttle
wide open. Every grading call takes a permit from a single global pool sized to a
small number of concurrent evaluations. That pool is shared across every teacher
on the instance, not per request, so ten teachers grading at once cannot stack up
into hundreds of simultaneous model calls. The pool is the backpressure valve for
the whole system.</p>
<p>As each answer comes back, its row is updated in place. The pipeline is not
building one big result object to return at the end; it is filling in the database
incrementally, one answer at a time.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="live-progress-streamed-to-the-browser">Live progress, streamed to the browser<a href="https://heyzippy.io/blog/inside-bulk-grading-pipeline/#live-progress-streamed-to-the-browser" class="hash-link" aria-label="Direct link to Live progress, streamed to the browser" title="Direct link to Live progress, streamed to the browser" translate="no">​</a></h2>
<p>The piece that makes the deferred work feel immediate is streaming. As Phase B
finishes each answer it emits an event on the workspace channel, and a terminal
event when a whole submission is done. The front end subscribes to that channel
and patches the matching card the moment its event arrives. The "Grading..."
placeholder becomes a real score and comment without a refresh and without
polling.</p>
<p>So the teacher gets the best of both shapes: the page is populated in seconds by
Phase A, and it fills in live as Phase B works through the class under a fixed
concurrency ceiling.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="why-the-deterministic-answers-never-reach-the-model">Why the deterministic answers never reach the model<a href="https://heyzippy.io/blog/inside-bulk-grading-pipeline/#why-the-deterministic-answers-never-reach-the-model" class="hash-link" aria-label="Direct link to Why the deterministic answers never reach the model" title="Direct link to Why the deterministic answers never reach the model" translate="no">​</a></h2>
<p>One more detail keeps the bill down and the quality up. Not every question needs a
language model. Multiple choice, multi-select, and fill-in-the-blank questions
that carry an answer key are graded by exact comparison and never sent to the
model at all. That is both a cost optimisation and a correctness fix: a model
asked to grade a checkbox will happily write a paragraph of essay-style critique
about it, which is not what a checkbox needs. The objective path is pure, has no
network call, and is exhaustively unit tested.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="what-this-buys-teachers">What this buys teachers<a href="https://heyzippy.io/blog/inside-bulk-grading-pipeline/#what-this-buys-teachers" class="hash-link" aria-label="Direct link to What this buys teachers" title="Direct link to What this buys teachers" translate="no">​</a></h2>
<p>None of this is visible in the product, and that is the point. The teacher presses
grade, the class appears at once, and the marks fill in while they watch. The
engineering underneath is three ideas working together: return fast by deferring
the slow work, bound the slow work with a shared permit pool, and stream the
results back as they land. It is the difference between a tool that feels like it
is thinking and one that feels like it is stuck.</p>
<p>We will go deeper on the evaluation model itself, and on why feedback is written
by a separate step from scoring, in a future post.</p>
<hr>
<p>The classroom view of the same pipeline is in <a href="https://heyzippy.io/blog/marking-a-class-set/">marking a class set</a>, and the rubric it grades against is covered in <a href="https://heyzippy.io/blog/ai-grading-rubrics-that-work/">AI grading is only as good as the rubric behind it</a>.</p>]]></content>
        <author>
            <name>Zippy Team</name>
        </author>
        <category label="engineering" term="engineering"/>
        <category label="grading" term="grading"/>
        <category label="ai" term="ai"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[What shipped in Zippy: May to early July 2026]]></title>
        <id>https://heyzippy.io/blog/what-shipped-may-june-2026/</id>
        <link href="https://heyzippy.io/blog/what-shipped-may-june-2026/"/>
        <updated>2026-07-07T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[The first ten weeks of shipping: bulk grading, AI authoring, an open-source CLI, the whole-class gradebook, the Discover library, and an import flow that works from a phone.]]></summary>
        <content type="html"><![CDATA[<p>This is the record of what shipped between the start of May and the first week
of July, kept in Keep a Changelog form. Two asks from teachers ran through all
of it: mark a whole class in one pass, and show me the whole class in one view.
Everything below is one of those two, or the plumbing they stand on.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="1-to-22-may-bulk-grading-and-ai-authoring">1 to 22 May: bulk grading and AI authoring<a href="https://heyzippy.io/blog/what-shipped-may-june-2026/#1-to-22-may-bulk-grading-and-ai-authoring" class="hash-link" aria-label="Direct link to 1 to 22 May: bulk grading and AI authoring" title="Direct link to 1 to 22 May: bulk grading and AI authoring" translate="no">​</a></h2>
<p>Mark a whole class set against your rubric in one pass, draft lessons and
questions with AI, and take the results out of Zippy.</p>
<p><strong>Added</strong></p>
<ul>
<li><a href="https://heyzippy.io/docs/grading/bulk-grading/">Bulk grading</a>, with an inline evaluation editor.</li>
<li>An AI authoring flow for lessons and questions.</li>
<li>Export submissions as PDF, DOCX, or Markdown.</li>
</ul>
<p><strong>Changed</strong></p>
<ul>
<li>A unified grading page with a shared roster sidebar.</li>
</ul>
<p><strong>Fixed</strong></p>
<ul>
<li>Made the editor and learner views mobile-friendly.</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="24-may-the-platform-grows-a-public-surface-cli-v012">24 May: the platform grows a public surface (CLI v0.1.2)<a href="https://heyzippy.io/blog/what-shipped-may-june-2026/#24-may-the-platform-grows-a-public-surface-cli-v012" class="hash-link" aria-label="Direct link to 24 May: the platform grows a public surface (CLI v0.1.2)" title="Direct link to 24 May: the platform grows a public surface (CLI v0.1.2)" translate="no">​</a></h2>
<p>The first pieces of Zippy you can install without asking us: a versioned CLI,
an extractable client library, MCP servers, and the first mobile build.</p>
<p><strong>Added</strong></p>
<ul>
<li>The zippy-client library with a public surface.</li>
<li>Model Context Protocol servers, including a student-scoped server and asset
tools.</li>
<li>Zippy Mobile, phase 1.</li>
<li>Open-source skills rewritten as Claude Code skills under an MIT licence.</li>
</ul>
<p><strong>Changed</strong></p>
<ul>
<li>Released the CLI as v0.1.1, then v0.1.2, at
<a href="https://github.com/heyzippy/zippy" target="_blank" rel="noopener noreferrer">github.com/heyzippy/zippy</a>.</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="11-to-23-june-the-classroom-gradebook">11 to 23 June: the classroom gradebook<a href="https://heyzippy.io/blog/what-shipped-may-june-2026/#11-to-23-june-the-classroom-gradebook" class="hash-link" aria-label="Direct link to 11 to 23 June: the classroom gradebook" title="Direct link to 11 to 23 June: the classroom gradebook" translate="no">​</a></h2>
<p>See your whole class in one view. Grading collapses to one screen, and the
classroom gets a <a href="https://heyzippy.io/docs/grading/gradebook/">gradebook</a> and a monitor.</p>
<p><strong>Added</strong></p>
<ul>
<li>A classroom teacher view: gradebook, monitor, and submissions.</li>
<li>A feedback split with inline annotations and a one-column grading config.</li>
<li>Structured comments and next steps, with per-rubric parallel evaluation.</li>
<li>A live grader demo with grading progress.</li>
<li>Product analytics.</li>
</ul>
<p><strong>Changed</strong></p>
<ul>
<li>Grading redesigned to a one-screen create with in-page import.</li>
<li>A typed question model and a unified grading pipeline with deterministic
auto-grade.</li>
</ul>
<p><strong>Fixed</strong></p>
<ul>
<li>Submission reliability: no duplicate records, no stale spinner, and
per-submission delete.</li>
<li>Retry for submissions that fail to process.</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="24-to-30-june-discover-library-and-standards-driven-grading">24 to 30 June: Discover library and standards-driven grading<a href="https://heyzippy.io/blog/what-shipped-may-june-2026/#24-to-30-june-discover-library-and-standards-driven-grading" class="hash-link" aria-label="Direct link to 24 to 30 June: Discover library and standards-driven grading" title="Direct link to 24 to 30 June: Discover library and standards-driven grading" translate="no">​</a></h2>
<p>Pull ready-made content and grade against standards without hand-building
every rubric.</p>
<p><strong>Added</strong></p>
<ul>
<li>A redesigned Discover library with self-service grading presets and a quiz
flow.</li>
<li>A read-only content preview for library items.</li>
<li>Standard-driven grading via assessment packs.</li>
<li>Math and physics question types with curriculum-grounded generation.</li>
<li>Inline <a href="https://heyzippy.io/docs/scale/skills/">skills rubrics</a> with skill-map resolution.</li>
</ul>
<p><strong>Changed</strong></p>
<ul>
<li>Library clone gets soft-delete revive and a simpler overwrite flow.</li>
<li>Editor authoring, with bulk submissions and objective auto-grading.</li>
</ul>
<p><strong>Fixed</strong></p>
<ul>
<li>Two-phase save (draft then publish), so saving never throws a duplicate-id
error.</li>
<li>Answer edits no longer target the wrong row on re-graded submissions.</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="1-to-7-july-mobile-import-and-generation-reliability">1 to 7 July: mobile import and generation reliability<a href="https://heyzippy.io/blog/what-shipped-may-june-2026/#1-to-7-july-mobile-import-and-generation-reliability" class="hash-link" aria-label="Direct link to 1 to 7 July: mobile import and generation reliability" title="Direct link to 1 to 7 July: mobile import and generation reliability" translate="no">​</a></h2>
<p>Getting work into Zippy from a phone was slower than marking it. This week was
the unglamorous fixes.</p>
<p><strong>Added</strong></p>
<ul>
<li>A prominent Add new import button above the roster.</li>
<li>A mobile-optimised import layout with tap-select and bottom sheets.</li>
</ul>
<p><strong>Changed</strong></p>
<ul>
<li>The AI panel preloads the lesson-editing skill to cut latency.</li>
</ul>
<p><strong>Fixed</strong></p>
<ul>
<li>Repaired the lesson-generation plan-to-generate path.</li>
<li>Overhauled native PDF and DOCX export, with a crash fix and stale-rubric
re-runs.</li>
<li>Recovery when a login session gets stuck.</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_O_Ja" id="honest-about-what-this-is">Honest about what this is<a href="https://heyzippy.io/blog/what-shipped-may-june-2026/#honest-about-what-this-is" class="hash-link" aria-label="Direct link to Honest about what this is" title="Direct link to Honest about what this is" translate="no">​</a></h2>
<p>Every line here describes what the software does: it drafts, it grades a first
pass, it exports, it tracks patterns. None of it is a claim about measured
learning outcomes, because that is not ours to claim yet. The teacher reviews
and releases everything the grader writes.</p>
<p>The next instalment is <a href="https://heyzippy.io/blog/release-v0-1-3/">What shipped in July</a>. All
release posts live under the <a href="https://heyzippy.io/blog/tags/release/">release tag</a>, and the
open-source CLI and skills are at
<a href="https://github.com/heyzippy/zippy" target="_blank" rel="noopener noreferrer">github.com/heyzippy/zippy</a>.</p>]]></content>
        <author>
            <name>Zippy Team</name>
        </author>
        <category label="release" term="release"/>
        <category label="product-update" term="product-update"/>
        <category label="grading" term="grading"/>
    </entry>
</feed>