Teacher observation form for lesson visits

Updated 2026-10-30

A lesson visit needs notes you can use later, not a page of scribbles. I keep one link on my phone and fill it in during or just after the lesson. Every visit lands in the same sheet.

The three parts of the form

About the visit: observer, teacher, date, class and type of visit. This ties each note to one lesson.

About what you saw: how clear the goal was, how engaged pupils were, how the teacher checked understanding and the mood in the room. Ratings give a quick shape, and the checklist shows habits.

About what happens next: strengths, one next step and a follow-up box. Feedback helps most when it ends with something to try.

Who fills it and who reads it

The observer fills it in: a head of department, a coach or a peer. The teacher is not asked anything. The observer or school leader reads the rows as JSON or CSV. Observers can also let their AI do the typing. It might ask "Which teacher did you visit?" Then "How clear was the goal of the lesson?" Then "What is one next step?" It shows the answers and sends only after a yes. See agent-fillable forms and forms for schools.

A tip

Write the strengths first, and share the notes within a few days while the lesson is fresh. Compare your view with students' views using a teacher feedback form. When visits lead to family conversations, collect meeting times with a parent teacher conference sign-up.

Questions

Can I observe many teachers with the same form?

Yes. Submit it once per visit. The teacher_observed and observation_date columns let you filter by teacher and follow progress across visits.

Does the teacher see my notes automatically?

No. The form emails nobody. You read the rows and share what you choose, ideally in a short conversation soon after the visit.

Can I change the ratings or the checklist?

Yes. Edit the labels and options to match your school's teaching framework. Keep the ratings short, because you fill them in while watching.

Try the form

Live demo ยท nothing is saved

Lesson observation notes

Complete this during or just after the lesson. One form for each visit.

Type of visit
The goal of the lesson was clear
Pupils were engaged
How did the teacher check understanding?
Atmosphere in the room
A follow-up conversation is needed

Or paste the JSON

Give this to your AI. It needs the AI Form API MCP server or an API key. It makes the form and sends you the link.

text
Create this form with the AI Form API create_form tool (or POST https://aiformapi.com/v1/forms with my API key). Then reply with the public_url.

{
  "title": "Lesson observation notes",
  "description": "Complete this during or just after the lesson. One form for each visit.",
  "fields": [
    {
      "id": "observer_name",
      "label": "Your name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "teacher_observed",
      "label": "Teacher observed",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "observation_date",
      "label": "Date of the visit",
      "type": "date",
      "required": true
    },
    {
      "id": "class_and_subject",
      "label": "Class and subject",
      "type": "short_text",
      "max_length": 200
    },
    {
      "id": "visit_type",
      "label": "Type of visit",
      "type": "single_choice",
      "options": [
        "Formal observation",
        "Peer visit",
        "Drop-in",
        "Coaching visit"
      ]
    },
    {
      "id": "lesson_goal_clear",
      "label": "The goal of the lesson was clear",
      "type": "rating",
      "min": 1,
      "max": 4
    },
    {
      "id": "pupils_engaged",
      "label": "Pupils were engaged",
      "type": "rating",
      "min": 1,
      "max": 4
    },
    {
      "id": "understanding_checks",
      "label": "How did the teacher check understanding?",
      "type": "multi_choice",
      "options": [
        "Questions to the class",
        "Mini whiteboards",
        "Exit ticket",
        "Walking round and listening",
        "Pair talk",
        "Not seen"
      ]
    },
    {
      "id": "room_atmosphere",
      "label": "Atmosphere in the room",
      "type": "single_choice",
      "options": [
        "Calm and focused",
        "Busy and productive",
        "Noisy but on task",
        "Unsettled"
      ]
    },
    {
      "id": "strengths_seen",
      "label": "Strengths you saw",
      "type": "long_text",
      "required": true,
      "max_length": 1500
    },
    {
      "id": "next_step_to_try",
      "label": "One next step to try",
      "type": "long_text",
      "max_length": 800
    },
    {
      "id": "follow_up_needed",
      "label": "A follow-up conversation is needed",
      "type": "checkbox"
    },
    {
      "id": "follow_up_by",
      "label": "Suggested follow-up date",
      "type": "date"
    }
  ]
}

Or call the API

bash
curl -X POST https://aiformapi.com/v1/forms \
  -H "Authorization: Bearer $AIFORMAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"Lesson observation notes","description":"Complete this during or just after the lesson. One form for each visit.","fields":[{"id":"observer_name","label":"Your name","type":"short_text","required":true,"max_length":150},{"id":"teacher_observed","label":"Teacher observed","type":"short_text","required":true,"max_length":150},{"id":"observation_date","label":"Date of the visit","type":"date","required":true},{"id":"class_and_subject","label":"Class and subject","type":"short_text","max_length":200},{"id":"visit_type","label":"Type of visit","type":"single_choice","options":["Formal observation","Peer visit","Drop-in","Coaching visit"]},{"id":"lesson_goal_clear","label":"The goal of the lesson was clear","type":"rating","min":1,"max":4},{"id":"pupils_engaged","label":"Pupils were engaged","type":"rating","min":1,"max":4},{"id":"understanding_checks","label":"How did the teacher check understanding?","type":"multi_choice","options":["Questions to the class","Mini whiteboards","Exit ticket","Walking round and listening","Pair talk","Not seen"]},{"id":"room_atmosphere","label":"Atmosphere in the room","type":"single_choice","options":["Calm and focused","Busy and productive","Noisy but on task","Unsettled"]},{"id":"strengths_seen","label":"Strengths you saw","type":"long_text","required":true,"max_length":1500},{"id":"next_step_to_try","label":"One next step to try","type":"long_text","max_length":800},{"id":"follow_up_needed","label":"A follow-up conversation is needed","type":"checkbox"},{"id":"follow_up_by","label":"Suggested follow-up date","type":"date"}]}'

JSON definition

json
{
  "title": "Lesson observation notes",
  "description": "Complete this during or just after the lesson. One form for each visit.",
  "fields": [
    {
      "id": "observer_name",
      "label": "Your name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "teacher_observed",
      "label": "Teacher observed",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "observation_date",
      "label": "Date of the visit",
      "type": "date",
      "required": true
    },
    {
      "id": "class_and_subject",
      "label": "Class and subject",
      "type": "short_text",
      "max_length": 200
    },
    {
      "id": "visit_type",
      "label": "Type of visit",
      "type": "single_choice",
      "options": [
        "Formal observation",
        "Peer visit",
        "Drop-in",
        "Coaching visit"
      ]
    },
    {
      "id": "lesson_goal_clear",
      "label": "The goal of the lesson was clear",
      "type": "rating",
      "min": 1,
      "max": 4
    },
    {
      "id": "pupils_engaged",
      "label": "Pupils were engaged",
      "type": "rating",
      "min": 1,
      "max": 4
    },
    {
      "id": "understanding_checks",
      "label": "How did the teacher check understanding?",
      "type": "multi_choice",
      "options": [
        "Questions to the class",
        "Mini whiteboards",
        "Exit ticket",
        "Walking round and listening",
        "Pair talk",
        "Not seen"
      ]
    },
    {
      "id": "room_atmosphere",
      "label": "Atmosphere in the room",
      "type": "single_choice",
      "options": [
        "Calm and focused",
        "Busy and productive",
        "Noisy but on task",
        "Unsettled"
      ]
    },
    {
      "id": "strengths_seen",
      "label": "Strengths you saw",
      "type": "long_text",
      "required": true,
      "max_length": 1500
    },
    {
      "id": "next_step_to_try",
      "label": "One next step to try",
      "type": "long_text",
      "max_length": 800
    },
    {
      "id": "follow_up_needed",
      "label": "A follow-up conversation is needed",
      "type": "checkbox"
    },
    {
      "id": "follow_up_by",
      "label": "Suggested follow-up date",
      "type": "date"
    }
  ]
}