A near miss report that people actually send

Updated 2026-10-30

People rarely report a mistake that cost nothing. The ladder slipped, nobody fell, everyone moved on. Yet that is the cheapest warning I will ever get. I want reporting to be so easy and so safe that people do it.

Can people report without a name?

Yes. The name is optional. Place, date and what almost happened are the only required answers. If you need to ask a follow-up, add a contact field before you publish.

What counts as a near miss?

An event that could have caused harm but did not. A pallet tips and misses a worker. A cable across a corridor trips nobody. The hazard list helps people see that their case fits. You can also use the form as a hazard report form for problems nobody has met yet.

What do I do with the answers?

I sort the CSV by hazard type and place. Three reports about one wet floor mean a fix, not a trend. The rating of how serious it could have been puts the worst on top.

A person's AI can take the report. It might ask "What almost happened?" Then "Where was it?" Then "What could have gone wrong?" It shows the answers and sends them only after a yes. See agent-fillable forms.

Before you use it

This is a form, not legal advice. Safety duties differ by country and industry, so have a professional check any wording that has legal weight. If someone was hurt, use an incident report form. For a lost laptop or a fake email, use a security incident report. More tools are in IT and operations forms.

Questions

Why is the name optional?

People report more close calls when they do not fear blame. Only the date, place and what almost happened are required. Add a contact field if you need follow-up questions.

How do I find repeat hazards?

Sort the CSV by `hazard_location`, then by `hazard_types`. The same place showing up several times is your sign to fix it, not to remind people.

Should someone who was hurt use this form?

No. This form is for events where nobody was harmed. For an injury, get help first, then use an incident report.

Try the form

Live demo ยท nothing is saved

Report a near miss

Nobody was hurt this time. Tell us what almost happened so we can fix it. You may leave your name off.

What kind of hazard was it?
What made it more likely?
How serious could it have been?

1 is minor, 5 is very serious.

Is the hazard still there?
I made the area safe myself

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": "Report a near miss",
  "description": "Nobody was hurt this time. Tell us what almost happened so we can fix it. You may leave your name off.",
  "fields": [
    {
      "id": "reporter_name",
      "label": "Your name (optional)",
      "type": "short_text",
      "max_length": 150
    },
    {
      "id": "near_miss_date",
      "label": "Date it happened",
      "type": "date",
      "required": true
    },
    {
      "id": "hazard_location",
      "label": "Where did it happen?",
      "type": "short_text",
      "required": true,
      "max_length": 200
    },
    {
      "id": "what_almost_happened",
      "label": "What almost happened?",
      "type": "long_text",
      "required": true,
      "max_length": 2000
    },
    {
      "id": "hazard_types",
      "label": "What kind of hazard was it?",
      "type": "multi_choice",
      "options": [
        "Slip, trip or fall",
        "Moving machinery",
        "Electrical",
        "Falling objects",
        "Chemicals or fumes",
        "Vehicle or forklift",
        "Fire risk",
        "Lifting or carrying",
        "Other"
      ]
    },
    {
      "id": "contributing_factors",
      "label": "What made it more likely?",
      "type": "multi_choice",
      "options": [
        "Rushing",
        "Poor lighting",
        "Wet or cluttered floor",
        "Missing guard or cover",
        "Unclear instructions",
        "Tiredness",
        "Equipment fault",
        "Other"
      ]
    },
    {
      "id": "worst_case",
      "label": "What could have happened?",
      "type": "long_text",
      "max_length": 800
    },
    {
      "id": "potential_severity",
      "label": "How serious could it have been?",
      "type": "rating",
      "help": "1 is minor, 5 is very serious.",
      "min": 1,
      "max": 5
    },
    {
      "id": "hazard_still_there",
      "label": "Is the hazard still there?",
      "type": "single_choice",
      "options": [
        "Yes",
        "No",
        "Not sure"
      ]
    },
    {
      "id": "made_safe",
      "label": "I made the area safe myself",
      "type": "checkbox"
    },
    {
      "id": "fix_idea",
      "label": "How would you fix it?",
      "type": "long_text",
      "max_length": 800
    },
    {
      "id": "photo_link",
      "label": "Link to a photo",
      "type": "url"
    }
  ]
}

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":"Report a near miss","description":"Nobody was hurt this time. Tell us what almost happened so we can fix it. You may leave your name off.","fields":[{"id":"reporter_name","label":"Your name (optional)","type":"short_text","max_length":150},{"id":"near_miss_date","label":"Date it happened","type":"date","required":true},{"id":"hazard_location","label":"Where did it happen?","type":"short_text","required":true,"max_length":200},{"id":"what_almost_happened","label":"What almost happened?","type":"long_text","required":true,"max_length":2000},{"id":"hazard_types","label":"What kind of hazard was it?","type":"multi_choice","options":["Slip, trip or fall","Moving machinery","Electrical","Falling objects","Chemicals or fumes","Vehicle or forklift","Fire risk","Lifting or carrying","Other"]},{"id":"contributing_factors","label":"What made it more likely?","type":"multi_choice","options":["Rushing","Poor lighting","Wet or cluttered floor","Missing guard or cover","Unclear instructions","Tiredness","Equipment fault","Other"]},{"id":"worst_case","label":"What could have happened?","type":"long_text","max_length":800},{"id":"potential_severity","label":"How serious could it have been?","type":"rating","help":"1 is minor, 5 is very serious.","min":1,"max":5},{"id":"hazard_still_there","label":"Is the hazard still there?","type":"single_choice","options":["Yes","No","Not sure"]},{"id":"made_safe","label":"I made the area safe myself","type":"checkbox"},{"id":"fix_idea","label":"How would you fix it?","type":"long_text","max_length":800},{"id":"photo_link","label":"Link to a photo","type":"url"}]}'

JSON definition

json
{
  "title": "Report a near miss",
  "description": "Nobody was hurt this time. Tell us what almost happened so we can fix it. You may leave your name off.",
  "fields": [
    {
      "id": "reporter_name",
      "label": "Your name (optional)",
      "type": "short_text",
      "max_length": 150
    },
    {
      "id": "near_miss_date",
      "label": "Date it happened",
      "type": "date",
      "required": true
    },
    {
      "id": "hazard_location",
      "label": "Where did it happen?",
      "type": "short_text",
      "required": true,
      "max_length": 200
    },
    {
      "id": "what_almost_happened",
      "label": "What almost happened?",
      "type": "long_text",
      "required": true,
      "max_length": 2000
    },
    {
      "id": "hazard_types",
      "label": "What kind of hazard was it?",
      "type": "multi_choice",
      "options": [
        "Slip, trip or fall",
        "Moving machinery",
        "Electrical",
        "Falling objects",
        "Chemicals or fumes",
        "Vehicle or forklift",
        "Fire risk",
        "Lifting or carrying",
        "Other"
      ]
    },
    {
      "id": "contributing_factors",
      "label": "What made it more likely?",
      "type": "multi_choice",
      "options": [
        "Rushing",
        "Poor lighting",
        "Wet or cluttered floor",
        "Missing guard or cover",
        "Unclear instructions",
        "Tiredness",
        "Equipment fault",
        "Other"
      ]
    },
    {
      "id": "worst_case",
      "label": "What could have happened?",
      "type": "long_text",
      "max_length": 800
    },
    {
      "id": "potential_severity",
      "label": "How serious could it have been?",
      "type": "rating",
      "help": "1 is minor, 5 is very serious.",
      "min": 1,
      "max": 5
    },
    {
      "id": "hazard_still_there",
      "label": "Is the hazard still there?",
      "type": "single_choice",
      "options": [
        "Yes",
        "No",
        "Not sure"
      ]
    },
    {
      "id": "made_safe",
      "label": "I made the area safe myself",
      "type": "checkbox"
    },
    {
      "id": "fix_idea",
      "label": "How would you fix it?",
      "type": "long_text",
      "max_length": 800
    },
    {
      "id": "photo_link",
      "label": "Link to a photo",
      "type": "url"
    }
  ]
}