Does this kit fit your study?
This approach works by finding patterns across a large number of individually-marked questions. Some VCE studies give you that; some don't. Open a recent exam, its examiner report and the study design, and answer these three.
Open a recent exam. How many separately-marked questions are there in the whole paper?
Open the matching examiner report. Does it give you a number for each question — an average mark, or a distribution of how many students scored 0, 1, 2 and so on?
Open the study design. Could you list what's examinable as discrete content points a single question could target?
Answer all three to see where you stand
The result isn't softened to be encouraging. A tool built on data that can't support it looks authoritative and says almost nothing, which is worse than no tool.
The project
A Claude Project holding your study's official documents. Everything downstream is read out of these files, so this is the only phase where nothing can be automated — it needs your judgement about what's current.
Gather the source files
On the VCAA site: Study Designs → your study, and the Past examinations page.
| File | Why it matters |
|---|---|
| Study design (current) | Becomes the key knowledge index — the spine of the whole tool |
| Support materials / FAQs | Clarifies grey areas. Often answers exactly what students get wrong |
| Specifications, conventions, glossaries | Subject-specific rules a question writer must respect |
| Sample exam + answers | The intended shape of the paper before any live exam existed |
| Past exam papers — every year under the current study design | The question corpus. Every one gets coded |
| Insert / resource / stimulus books | Essential if your exam supplies stimulus. Without them the papers don't parse |
| Examiner reports — every matching year | Where the performance data comes from. Skip one and that paper's questions have no average |
Don't take the selectable-text test on trust. Before you upload thirty files, upload one exam paper to a chat and run this:
I've attached one VCE {{STUDY}} exam paper. Don't analyse it yet.
Tell me only this:
1. Can you read the text of this PDF, or is it a scanned image?
2. Quote the exact wording of the last separately-marked question in the paper, and its mark allocation.
3. How many separately-marked questions are in the whole paper, and what do the section totals add to?
If you can't read any part of it, say which pages.
If it can't quote the last question back to you accurately, the file is unusable and so is every other file that looks like it. Fix them all before Step 2.
Name files so the year and type are obvious — 2025-Biology-exam.pdf, 2025-Biology-report.pdf. Claude cites by filename, so this is what makes its coding checkable later.
Create the project and upload
Your own project, for your subject only.
- In the Claude sidebar, open Projects, then Create project.
- Name it for your study — VCE [your study] Exam Analysis.
- Upload everything from Step 1 into the project's knowledge.
Paste in the project instructions
In your new project, open its instructions and paste this in whole. It's what holds the accuracy line for every message that follows.
ROLE
You are an experienced VCE {{STUDY}} teacher, exam assessor and data analyst,
working with a teacher who is building an exam analysis tool for their faculty.
YOUR SOURCES
Everything you produce must be grounded in the files in this project:
- The current study design is the authority on what is examinable and on
correct terminology. Never introduce content outside it.
- The examiner reports are the authority on cohort performance and on what
loses marks. Draw on them heavily.
- Past exam papers are the corpus. Quote question stems accurately.
Cite the file and year for every specific claim. If the files don't tell you
something, write UNKNOWN rather than guessing.
ACCURACY RULES — these matter more than fluency
- Never invent a statistic, an average mark, or a question that doesn't exist.
- Never estimate a figure that could be read from a file. Read it.
- When you tag a question against key knowledge, you must be able to point to
the words in the question stem that justify the tag.
- Flag your own uncertainty inline rather than presenting a guess cleanly.
WHAT NOT TO DO
- Don't reproduce an entire past exam paper on request.
- Don't state that a future exam will contain something. Rotation patterns are
hypotheses about likelihood, never forecasts, and the whole study design
remains examinable every year.
The dataset
This is the real work, and it's where your subject expertise earns its keep. Three passes, each verified before the next. The dataset is the product — the interface in Phase 3 is only a window onto it.
Build the key knowledge index
The spine of everything else. A gap here becomes an invisible blind spot.
Read the study design and produce a complete index of examinable key knowledge
for Units 3 and 4, as a JavaScript object.
Format each entry as:
"CODE": { o:"U3 AoS1", label:"short plain-language description" }
Use a code scheme of [Unit][Outcome]-[number], e.g. "U3O1-1". Add separate
codes for any cross-cutting terminology the study design defines separately
and that questions could target directly.
Rules:
- Cover every key knowledge point in Units 3 and 4. Completeness matters more
than brevity — this index is the spine of everything else.
- Keep labels under about 15 words, in language a student would recognise.
- Cite the study design page number for each entry.
.txt is fine. You'll load it into the Tag Checker at Step 5, which is what turns a code like U3O2-4 back into words you can actually check a question against. Save each paper's coded questions to its own file as you go, too.
Code every question
One paper at a time — doing all of them in one message produces shallower tagging. Then check the tags yourself. This is the highest-value hour in the whole process.
Code every question in the 2025 {{STUDY}} exam as JavaScript objects in this
shape:
{ paper:"E25", sec:"A", q:"1", marks:4, cmd:["Identify","Discuss"],
kk:["CODE1","CODE2"], avg:2.3, dist:[19,9,17,35,20],
stem:"the question stem, quoted accurately",
why:{ "CODE1":"the words in the stem that justify this tag",
"CODE2":"the words in the stem that justify this tag" },
choice:"what the student gets to choose, if anything" }
- cmd: every command term in the question, in the order they appear.
- kk: the key knowledge codes from the index that the question actually
assesses. Usually one to three. Only tag what the question truly requires,
not everything it touches — over-tagging flattens the coverage analysis.
- avg: the average mark from the examiner report for that question. Read it
from the mark distribution table. If the report gives a distribution rather
than an average, calculate it and show your working. Omit avg entirely if
the report doesn't cover this paper.
- dist: the mark distribution from that same table, as an array running from 0
marks up to full marks — so a 4-mark question has 5 numbers. Use the report's
own figures, usually percentages of the cohort. Omit dist if the report gives
only an average. You are already reading this table for avg, so capturing it
costs nothing and it is what makes avg checkable later.
- why: one entry per kk code, quoting the words in the stem that justify that
tag. Quote the stem, don't paraphrase it. Every code in kk needs an entry.
Use exactly these field names. Don't add fields I haven't asked for.
Change the year each time you run it. Keep track here — a paper isn't done when it's coded, it's done when it's verified.
You can change the tags in place there: codes are picked from your own index, so a code that doesn't exist can't be created, and every tag change needs a reason — which then becomes the stored justification. There's a tick per question, so you can stop at 23 and come back. It also marks which questions can't be judged without the exam paper in front of you, and filters to just those. When you're done it writes a corrections file to paste back into your project.
Nobody needs a Claude account to use it. That makes this step delegable: send a colleague the dataset files, the papers and that link, and they send back the corrections file. Two people checking a paper each is closer to how you'd moderate anything else — and it beats the person who did the coding being the only one who ever reads it.
Once the flags are clear, the part no checker can do:
A good sequence: open tagcheck.jotty.au, drop in a dataset with a planted fault, let the room watch every mechanical error appear at once — then close the laptop lid on that and find a wrong tag by eye. The contrast is the lesson. The machine half is instant; the judgement half isn't, and that's the hour you're asking them for.
Command term glossary and report findings
A generic definition of Explain is available anywhere. What a full-mark Explain looks like in your study, according to your assessors, is not.
1. From the coded questions, produce a command term glossary:
Term: { marks:[min,max], def:"generic definition",
note:"what the examiner reports specifically say about how this
term is handled in THIS study, with the year cited" }
2. From the examiner reports, list every weakness they name across all years,
with the year and the exact question it relates to. Mark which ones recur
in more than one report — those are the persistent ones.
3. List the terminology confusions the reports name directly. Search for
"confused", "incorrectly", "misunderstood", "uncertainty around".
Read the note field on a few terms. If it's a generic definition restated, push back and ask for the report wording and the year — that field is the reason the glossary is worth having.
The tool
A single self-contained HTML file your faculty can open, share and print from. It's only as good as the dataset underneath — which is why it comes last.
Build it in stages
Don't ask for the whole thing at once. Shell plus two views, check them, then add views one per message.
reference-exam-analysis-tool.html — from the handover pack you downloaded at the end of Phase 2 — into your project's knowledge. The prompt below tells Claude to read it as the structural model, so without it there this step produces something generic.
Using reference-exam-analysis-tool.html as the structural model,
build the equivalent tool for VCE {{STUDY}} as a single self-contained
HTML file — no external dependencies, no browser storage.
Use the verified dataset we built: the key knowledge index, the coded
questions, the command glossary and the report findings. Do not add data
that isn't in it, and do not smooth over gaps.
Start with the shell plus two views only:
- Overview: headline findings, papers included, what's been assessed in
every live paper and what's never been assessed at all.
- Question explorer: every coded question, filterable by paper, section,
command term and key knowledge.
Match the reference tool's approach to layout and interaction, but derive the
visual treatment from {{STUDY}} rather than copying the reference's palette.
Then add the remaining views one per message. Each has its own prompt below — open it, copy it, paste it, check what comes back, then move to the next. Which ones you should build depends on your diagnostic result, and a view marked Restrict has that limit written into its prompt already.
Test it against things you already know
Four checks. You are the only instrument that can run them.
Share it, and keep it honest
It's a single HTML file. Email it, drop it in a shared drive, or share the project so colleagues can regenerate it.
Each year, when VCAA publishes the new exam and report: add both to the project, code the new paper with the Step 5 prompt, and rebuild. Then compare the new coverage matrix against last year's — what rotated in and out is the most useful thing the tool will tell you.
The analysis is only as good as the coding. If a colleague disagrees with a tag, they're probably right to check — send them back to the dataset rather than defending the interface.