Formative practice, not exam grading

A practice space where students draft answers to essay questions, get feedback, and try again

You write the questions (or reuse old exam questions), plus, for each question, a model answer that the students never see. They write a draft, get AI feedback measured against it, and revise, as many times as they want. This helps students embed both detail and concepts, and "learn the shape of a good answer."

The loop

What happens on one submission

The same four steps repeat every time a student revises, and feedback gets more specific with each attempt.

01

Student writes a draft

A plain text box. Your model answer is never sent to their browser.

02

AI compares it to your answer

Checked against your model answer, plus any marking guidance you gave it.

03

Five-part feedback comes back

Directional hints across five dimensions, never a quote from your answer.

04

Student revises and resubmits

No attempt limit. Every past try stays visible in the revision history.

Feedback

The five things every submission is checked against

Each one gets its own card with a status chip (Needs Work, Good, or Correct) so a student can see at a glance where to focus next.

Coverage

Which required parts of the question are present, partial, or missing.

Depth

Where the reasoning needs to go further than a surface-level answer.

Structure

How the argument's organisation could improve.

Accuracy

Factual errors or misconceptions, flagged directly.

Progress

From attempt two onward: what improved since last time.

Alongside the cards, every submission gets a qualitative score ring. If you marked point values in your model answer (like [3] at the end of a paragraph), a real point-based score is computed too and is what shows up in your analytics.

Example

What a student sees

Two first-attempt drafts answering the same practice question, and the feedback each one gets back. Below the cards is the per-dimension score section every submission gets. Its bars are always qualitative, the same status chips as the cards above; the ring and point total only appear if the model answer carries point values, so both states are shown below.

Practice question

Explain how natural selection can lead to antibiotic resistance in a bacterial population. Use a specific example.

Weaker draft

Bacteria become resistant to antibiotics because they get used to the drug over time. When you take antibiotics again and again, the bacteria adapt and the drug stops working as well. This is a type of evolution.

CoverageNeeds Work
Doesn't mention that resistance already exists in some bacteria before the antibiotic is applied, or give a named example.
DepthNeeds Work
"Get used to" and "adapt" describe the outcome, not the mechanism. What happens to individual bacteria during selection?
StructureGood
Short and readable, but it stops before reaching a real explanation.
AccuracyNeeds Work
Bacteria don't personally adapt during their own lifetime; resistant individuals are already present before treatment.
If model answer has no point values
Feedback by dimension
CoverageNeeds Work
DepthNeeds Work
StructureGood
AccuracyNeeds Work
If model answer has point values
1/ 6
Score
Feedback by dimension
CoverageNeeds Work
DepthNeeds Work
StructureGood
AccuracyNeeds Work
Stronger draft

A bacterial population contains random genetic variation, including occasional mutations that reduce a cell's sensitivity to an antibiotic. When the antibiotic is applied, susceptible cells die while resistant cells survive and reproduce, so the next generation contains a higher proportion of resistant bacteria than before. Repeated use selects for resistance again each generation, until resistant strains dominate. MRSA arose this way: mutations that altered methicillin's target protein let some Staphylococcus aureus cells survive treatment, and their descendants now make up a large share of infections in some hospitals.

CoverageCorrect
Covers variation, differential survival, and repeated selection, and names a real example.
DepthCorrect
Traces the mechanism from mutation through differential survival to a shift in the population.
StructureGood
Builds logically from mechanism to example; naming MRSA a sentence earlier would tighten it further.
AccuracyCorrect
No factual errors, and correctly treats resistance as pre-existing variation, not individual adaptation.
If model answer has no point values
Feedback by dimension
CoverageCorrect
DepthCorrect
StructureGood
AccuracyCorrect
If model answer has point values
6/ 6
Score
Feedback by dimension
CoverageCorrect
DepthCorrect
StructureGood
AccuracyCorrect

No Progress card here since both are first attempts. From a second attempt onward, a fifth card compares the new draft to the one before it.

For instructors

What you set up

A class with its own codes

Create a class and get a student code to share and a separate instructor code. Anyone who joins with the instructor code becomes a full co-instructor for that class, with the same access to student work as you have.

Questions and hidden model answers

Each question has its own model answer, kept server-side only and never sent to a student's browser, in the page source or the network traffic.

Optional point values for scoring

Mark a paragraph [3] and it becomes a scored section. Leave the marks out for feedback with no numeric grade at all.

Marking guidance, in plain language

Tell the AI how to award partial credit or what to treat as a misconception. An "advise on this" tool checks your wording against how scoring actually works before you save.

Class-wide analytics

Sessions, average attempts, and average score per question, with a score distribution across the class.

Exportable session data

Every question and class page has a CSV and JSON export of attempts, scores, and feedback for your own records.

Title
Antibiotic resistance (natural selection)
Essay Prompt
Explain how natural selection can lead to antibiotic resistance in a bacterial population. Use a specific example.
Model Answer Check point totals
A bacterial population contains random genetic variation, including occasional mutations that reduce a cell's sensitivity to an antibiotic, even before the antibiotic is ever used. [2] When the antibiotic is applied, susceptible cells die while resistant cells survive and reproduce, so each generation contains a higher proportion of resistant bacteria than the last. [2] A named example, such as MRSA, where mutations that altered methicillin's target protein let some Staphylococcus aureus cells survive treatment, and their descendants now make up a large share of infections in some hospitals today. [2]
1. Random variation exists before treatment2
2. Differential survival shifts the population2
3. Named example (MRSA)2
Total: 6
Marking guidance (optional, one bullet per line)
  • Full credit for the first paragraph requires stating that variation already exists before the antibiotic is applied, not just that bacteria vary.
  • Award the second paragraph even without the phrase "differential survival," as long as the answer describes susceptible cells dying while resistant cells survive and reproduce.
  • Accept a named example other than MRSA, such as drug-resistant tuberculosis, for the third paragraph if it is explained correctly.

This is what produced the question, model answer, and optional scoring used in the student example above.

Privacy

Anonymous by default, named accounts if you want them

Anonymous: no name, no email, nothing to sign in with

A student reaches a question with just your class code. Their browser is given a random token so their own attempts stay together and their instructor can see them, but that token carries no identity, and nothing else about the student is collected or stored.

They can sign out from the same browser at any time, which ends that session without deleting the work already on record.

Named accounts: an option you can turn on

If you'd rather students keep the same identity across devices and sessions, you can enable named accounts for your deployment. Students then register with a username, email, and password, and their history follows their account instead of a browser token.

This is a setting for the whole deployment, not per class, and most trials run anonymous-only.

Scope

What Essay Coach is not for

Not for term papers or open-ended essays. It is built around exam-style questions that ask a student to explain a concept with examples, each with a known model answer to check against, not longer independent research or argumentative writing with no single right shape.

Not a real exam. It automates formative feedback for practice, not summative grading of a real assessment.

Not a writing-skills tutor. It is built to help a student learn the shape of a good answer to a specific question, through repetition, not to teach writing craft in general.