How to Write a School OT Annual Report in 7 Steps

A practical walkthrough for school-based OT practitioners: the 8 sections every report needs, how to write present levels that pair strengths with needs, measurable goals with real baselines, and a 20-minute drafting workflow.

1. The 8 sections every annual report needs

Districts phrase these differently, but almost every annual review report is built from the same eight pieces. Write them in this order and you won't lose the reader.

  1. Student info & service model. Name (or initials, depending on your district's draft policy), grade, date, and the current service model — direct minutes, frequency, and whether it's individual, group, or consultation.
  2. Background / reason for services. A short paragraph on why the student was found eligible and what's changed since the last report — new diagnosis, placement change, or nothing at all if the picture is stable.
  3. Progress on current goals. Report progress with data, not adjectives. "Increased from 2/10 to 7/10 trials" tells the team something; "made good progress" does not.
  4. Present levels by domain. A narrative for each domain assessed — fine motor, visual motor, sensory processing, self-care, and so on — that weaves together what the student can do with what they still need support with.
  5. Strengths summary. A short, scannable list pulled from the present levels sections. This is what a parent reads first, so make it specific.
  6. Areas of need. The deficit side of the same coin — specific, observable, and tied directly to what shows up in the present levels narrative.
  7. Proposed goals with baselines. New or continued goals, each with a measured starting point (the baseline), not a guess.
  8. Accommodations & recommendation. Classroom and testing accommodations that follow logically from the areas of need, plus your recommendation on continued eligibility and service level.

2. Present levels: pair every deficit with an ability

This is the section that makes or breaks a report. A list of deficits reads like a diagnosis. A paragraph that opens with what the student can do, then names the need, then connects it to the classroom, reads like clinical reasoning — and it's what gives the team confidence in your proposed goals.

The structure is always the same: ability → need → educational impact. Lead with something concrete and observed, not a vague strength. Then name the specific need using clinical, measurable language. Then say why it matters in the classroom.

Before (deficit list — avoid this)

Student has poor handwriting. Student has difficulty with letter formation. Student is easily distracted and has poor attention to task. Fine motor skills are delayed.

After (abilities woven with needs)

In the classroom, the student writes all uppercase letters from memory and copies a rectangle from a model, showing an emerging grasp of basic form and letter production. He currently attends to a tabletop fine motor task for up to 2 minutes before requiring verbal redirection, which limits his ability to complete independent seatwork within the time allotted by his classroom teacher and contributes to incomplete written assignments.

Notice what changed: the "after" version starts with two specific, observable abilities (uppercase letters from memory, copying a rectangle), states the need in measurable terms (attends up to 2 minutes before redirection), and ends with the concrete classroom consequence (incomplete assignments). Nothing here is an adjective doing the work alone — every claim is backed by something you actually watched happen.

3. Make goals measurable

A goal a team can't measure is a goal nobody can report progress on. Every goal needs four parts, and if you can't point to each one in the sentence, it isn't finished yet.

PartWhat it answers
ConditionUnder what circumstances — with what materials, setting, or level of support?
BehaviorWhat will the student actually do? Use an observable verb — "write," "don," "cut" — not "improve" or "understand."
CriterionHow well, and how consistently? A percentage, a trial count, or a rate.
MeasurementHow and how often will you check — data collection method, and by whom.

Worked example

Given a weighted pencil and a slant board (condition), the student will copy a 5-word sentence from a near-point model with all letters correctly formed and sized (behavior) in 4 out of 5 trials (criterion), as measured by therapist-collected work samples each quarter (measurement).

You don't have to write goals from scratch every time. The goal bank has pre-built, measurable goal stems by domain that you can adapt to a specific student's baseline.

4. Use observed baselines, not norms

Developmental norms are useful for one thing: telling you what's typical for a given age, so you know where to look and what might be worth assessing further. They are not a substitute for a baseline. A baseline is the number you measured for this student, on this task, on a specific date.

If your goal says "will improve pencil grasp," a reviewer has no way to check it a year from now. If it says "currently uses a static tripod grasp with the pencil resting on the ring finger, observed across 3 writing tasks on 3/14," anyone on the team can look at the same task next spring and tell you whether it changed. Norms tell you where to look; your own data is what goes in the report.

Reference ranges for common skills — by age band, not as a pass/fail cutoff — are summarized on the milestones page if you need a starting point for what's typical before you go collect your own baseline.

5. Write for the whole team

The primary audience for an annual report isn't another therapist — it's the parent sitting at the IEP table, and the classroom teacher who has to act on it Monday morning. Both are reading closely, and neither has an OT degree.

If you're short on how to phrase a specific skill, strength, or accommodation without sounding like a form letter, the report phrases page has ready-made language organized by domain and by ability level.

6. Protect student privacy

Whatever tool you draft in, treat student data the way your district would want you to treat it in an email: assume it shouldn't leave your device unless you know exactly where it's going.

This builder was designed around that constraint: it runs entirely in your browser — nothing you type is sent to a server, logged, or stored anywhere but your own device. See the privacy page for the specifics.

7. A 20-minute workflow

Once you've collected your observations, turning them into a first draft shouldn't take another session. Here's a workflow that fits in a planning period:

  1. Gather your data first. Progress notes, work samples, and any quick checks you ran this week — before you open a report tool, not while you're in it.
  2. Mark abilities, emerging skills, and deficits in the builder. Go domain by domain and check off where the student currently lands on each skill.
  3. Generate the draft. Let the tool assemble the present-levels narrative, strengths and needs lists, and goal stems from what you marked.
  4. Personalize with specific observations. Swap generic phrasing for the exact thing you saw — the task, the material, the date — so the report reads like this student, not a template.
  5. Verify every baseline and goal. Check that each number in the draft matches your actual data before it goes anywhere near an IEP.
  6. Paste into your IEP system. Copy the finished sections into your district's official documentation, where they belong for the record.

The report builder on this site is built around exactly this workflow — check off skills by domain, generate a draft, then edit and paste.