IEP Translator
Upload an IEP, 504, FBA, BIP, evaluation, or progress report. Beacon breaks it down in plain language.
When to use this
Use IEP Translator when you have a sped document and want to understand it without spending an hour cross-referencing acronyms. Works on any of 9 document types: IEP, 504 plan, progress report, FBA, BIP, evaluation, PWN, transition plan, or a generic fallback if Beacon can't classify cleanly. Original goes nowhere, stays on your device for the upload; only the extracted text reaches the model. Beacon classifies, extracts the structure (goals, services, accommodations), and explains each section in parent-language.
How it works
Upload the document
PDF, JPG, PNG, or HEIC up to 4 MB per file. Multi-page PDFs are read page-by-page so a 30-page IEP works the same as a 3-page progress report.
Beacon classifies what it is
First pass detects the document type (IEP, 504, FBA, etc.) with a confidence score. If confidence is low, Beacon asks you to confirm instead of guessing.
Plain-language breakdown
Beacon translates the dense legal/clinical sections into parent-language paragraphs you can actually use: what this goal means, why this accommodation is here, what's missing if anything.
Auto-link past versions
Upload last year's IEP after this year's, and Beacon offers to link them as parent โ child in a version chain. You can see what changed.
What Beacon stores when you use it
iep_documents: Each upload is one row. V2 adds a discriminator column so the table holds all 9 doc types, plus parent/supersedes chains so you can keep a version history per child without confusing Beacon.
| Column | Type | Example |
|---|---|---|
| id | UUID | ae7c... Primary key. |
| user_id | UUID | your-user-id RLS-locked. Nobody else can read it. |
| document_type | TEXT | 'iep' One of: iep / progress_report / plan_504 / evaluation / fba / bip / pwn / transition_plan / generic. |
| derived_name | TEXT | '2025-26 IEP' Beacon generates this from the meeting date and doc type. |
| extracted | JSONB | { goals: [...], accommodations: [...], ... } Structured per-type Zod-validated payload. |
| classification_confidence | NUMERIC(3,2) | 0.92 0.00-1.00. Below ~0.75 Beacon asks you to confirm the type. |
| parent_document_id | UUID, nullable | โ last year's IEP Links a progress report to the IEP it reports against, etc. |
| supersedes_id | UUID, nullable | โ prior 2024-25 IEP Links this year's IEP to last year's. Same doc type chain. |
| created_at | TIMESTAMPTZ | 2026-05-15 14:02:11 EDT When you uploaded. |
A real example
Marcus uploads his daughter's new IEP from the May meeting. He'd uploaded last year's IEP a few months ago. Beacon stitches the chain automatically:
| when | name | type | chain |
|---|---|---|---|
| 2026-01-10 | 2024-25 IEP | iep | (root) |
| 2026-03-15 | Spring '25 Progress Report | progress_report | parent: 2024-25 IEP |
| 2026-05-15 | 2025-26 IEP | iep | supersedes: 2024-25 IEP |
What Beacon auto-knows
- The document type (one of 9) with a confidence score.
- Goals, services, accommodations, present-levels, and key dates (structured per type).
- Which uploads belong to the same child (version chain via parent / supersedes links).
- Your subscription tier and remaining IEP Translator quota.
What Discuss with Beacon adds
- Beacon attaches the breakdown to your chat so you can ask follow-up questions without re-pasting.
- Compare this year's IEP to last year's: 'What changed in the goals?'
- Draft parent-voiced responses: 'help me write a PWN response refusing the placement change'.
- Spot what's missing: 'should there be a behavior plan referenced here?'
Try these with Beacon
โCompare last year's IEP to this year's. What changed?โ
Beacon walks the parent/supersedes chain and reports goal-by-goal differences: which goals were retired, which were added, which had measurable changes (e.g., 'reading fluency target moved from 60 wpm to 80 wpm'). It flags anything that looks like silent service-minute reductions.
โAre these accommodations enough for a 3rd grader with sensory needs?โ
Beacon lists each accommodation, names the need it addresses, and flags categories that look thin (e.g., 'transitions and noise are covered; food and unstructured-time aren't'). It doesn't tell you what to demand; it shows you the map.
โHelp me write a parent-voiced PWN response.โ
Beacon drafts a letter referencing the specific IEP page or section that supports your position. Tone is firm and parent-voiced, not legalese, and includes the federal-law anchor (IDEA, FAPE) only when it strengthens the case.
โWhat rights questions should I ask at the next meeting?โ
Beacon pulls 3-5 high-leverage questions tied to the gaps it sees in this specific document. Generic IEP-rights checklists are easy to find; this list is anchored to your IEP.
โTranslate the 'present levels' section into one paragraph I can show grandparents.โ
Beacon rewrites the dense educational-jargon present-levels into one parent-voiced paragraph. No acronyms unless you ask for them spelled out. Useful for family-meeting prep.