Clinical

Progress Reports

Coralia Progress Reports produces the monthly progress report that insurance utilization reviewers read to re-authorize Applied Behavior Analysis (ABA) services. Each report is created already filled with the period's collected clinical data — per-goal baselines and trends, service utilization against the active authorization, and caregiver-guidance participation — tracked against its due date, and frozen by e-signature.

The problem in real agencies

Every month, insurance utilization reviewers decide whether to re-authorize a child's Applied Behavior Analysis (ABA) services based on one document: the progress report. In most agencies, a Board Certified Behavior Analyst (BCBA) assembles it by hand — exporting graphs, copying baseline and current values into a template, re-deriving how many authorized units were actually delivered, and writing narratives after clinic hours. Every hand-copied number is a chance for the report to disagree with the clinical record it summarizes.

The deadline math is unforgiving. Last month's reports come due early in the new month, across an entire caseload at once, and the ones attached to an authorization that expires soon are exactly the ones that cannot slip — a late report delays the reauthorization packet, and services delivered past the authorization end date may never be funded. Yet most practice software cannot answer the basic question: which clients still owe a report right now?

There is also a record-integrity problem. If a report's numbers keep recalculating after it is signed, or the printed document a payer receives is generated through a different path than the version reviewed on screen, the agency cannot prove what the clinician actually attested to. Payer audits compare the signed document against the underlying session data — drift between them is a finding, not a formatting quirk.

How it works in Coralia

  1. 1

    A report is born with data

    When a Board Certified Behavior Analyst (BCBA) creates a report for a client and month, Coralia seeds six standard sections and writes machine-built data blocks from the period's stored session data. Per behavior goal: baseline, latest value, mastery target, least-squares trend (at least 3 data points required), a 0–100 progress percentage, and a sparkline capped at 40 points. A utilization block compares delivered sessions, units, and hours per Current Procedural Terminology (CPT) code against the authorization's approved and used units. A caregiver block counts caregiver-guidance (97156) sessions and guardian attendance. Nothing is estimated or invented.

  2. 2

    The due engine knows who owes what

    Coralia derives, at read time, which clients owe last month's report: a client owes one when an approved authorization overlapped the month and at least one submitted or approved session was recorded in it. Reports are due by the 10th of the following month, computed in the agency's timezone, and 'done' means submitted or signed. The reports page shows a banner with the pending count, due date, days past due, and one-click Start and Open actions per client; the clinical caseload tab on the dashboard shows the same report-due state for every client.

  3. 3

    Reauthorization-critical reports rise to the top

    A pending report whose client's latest authorization ends within 60 days is flagged reauthorization-critical, sorted to the top, and labeled 'authorization expiring soon' — that report is the medical-necessity evidence the reauthorization packet needs. On weekday mornings, a background job sends each responsible analyst — the client's primary assigned BCBA or Board Certified Assistant Behavior Analyst (BCaBA), falling back to any active BCBA, then a BCaBA — one digest alert covering due-soon, overdue, and reauthorization-critical reports. Digests deduplicate per analyst within 72 hours and carry only counts and month labels, never client names.

  4. 4

    AI drafts the narrative; the analyst owns it

    Each section offers 'Draft with AI' — per section, or a sweep that drafts every empty section at once. The prompt is grounded exclusively in the report's stored data snapshot, with hard rules: never invent scores, dates, or frequencies; describe a goal with zero data in one honest sentence; never recommend specific new hour or unit amounts. Drafting refuses to run if the report has no data snapshot. Output lands in the rich-text editor for the analyst to review, edit, or discard, and clinical data is sent with provider storage disabled.

  5. 5

    Signing freezes the report and its numbers

    Manual status moves follow a strict transition map across draft, review, submitted, and revision-needed. Approved is terminal and reachable only by signing — the system rejects a manual move to Approved. Signing requires every required section to carry a written narrative (a machine-built data block alone does not count), captures a typed or drawn e-signature with the signer's frozen credential, hashes the report content, and writes an append-only signature record in the same transaction that flips the status. From then on, the document and its data snapshot are locked: a signed report keeps showing the numbers it was signed over.

  6. 6

    Print the payer-facing document

    A dedicated print view renders what the utilization reviewer receives: a masthead with the authorization facts, goal tables with sparklines and plain status words, service-utilization tables, and the signature block. It runs through the same content decoder as the on-screen viewer, so the screen and the printed document cannot disagree. While a report is still editable, a 'Refresh data' action rebuilds the data blocks from current session data — and always preserves the analyst's written narrative.

The specifics

  • Every new report is seeded with 6 standard sections — Summary, Behavior Progress, Treatment Objectives, Service Utilization, Caregiver Progress, Recommendations — 4 of them required.

  • Per-goal data blocks show baseline, latest value, mastery target, least-squares trend (minimum 3 data points), progress percentage, and a sparkline capped at 40 points.

  • Reports are due by the 10th of the following month, computed in the agency's own timezone.

  • A pending report tied to an authorization ending within 60 days is flagged reauthorization-critical and sorted to the top of the list.

  • 7 section types are addable — including free-form Additional Notes — and can be renamed and reordered; required sections cannot be removed.

  • 5 report statuses — draft, review, submitted, approved, revision needed; Approved is terminal and reachable only by e-signing.

  • Two e-signature methods, typed or drawn, with content hashing and an append-only signature record; drawn signature images are served only through a permission-gated proxy.

  • One report of a given type per client and month is enforced by a database uniqueness constraint; duplicate attempts are rejected.

  • Section narratives are rich text, sanitized server-side against a strict allowlist, and — like client names — encrypted at rest in a platform built for HIPAA compliance.

  • A report can be marked billable with an optional CPT procedure code as document metadata — some insurances reimburse progress reports.

Integrations

Authorization Tracking — utilization blocks and reauthorization flags read directly from the client's active authorization period · Clinical Data Collection — goal, trend, and caregiver-participation blocks derive entirely from recorded session data · In-app alerts — a weekday-morning background job delivers due and reauthorization-critical digests to responsible analysts · Practice-management mirroring — monthly reports synced from an agency's connected external system appear read-only and refresh to match the source on every sync

Access control

Progress reports ride on the agency's assessment permissions — staff with assessment view rights can read them, and only staff with assessment manage rights can create, edit, or sign — layered with per-client caseload scoping, so assistant-level staff such as Registered Behavior Technicians (RBTs) see only reports for clients on their own caseload. Independently of role permissions, the server accepts authoring, editing, and signing only from a BCBA, BCaBA, or a staff member in the analyst or clinical-support role category.

Frequently asked questions

What data does a new progress report start with?

On creation, Coralia writes machine-built data blocks computed from the period's stored session data: per-goal baseline, latest value, mastery target, trend, progress percentage, and sparkline; delivered sessions, units, and hours per CPT code compared against the authorization's approved and used units; and caregiver-guidance (97156) session counts with guardian attendance. Every value is computed from stored records — if a goal has no data in the period, the report says so.

How does Coralia know which clients owe a progress report?

A due engine derives it from existing records: a client owes last month's report when an approved authorization overlapped the month and at least one submitted or approved session was recorded in it. Reports are due by the 10th of the following month in the agency's timezone. 'Done' means submitted or signed; anything else surfaces on the reports page and the clinical dashboard with overdue and reauthorization-critical flags.

Does the AI write the whole report?

It drafts narrative sections; the analyst finalizes them. Each 'Draft with AI' generation is grounded exclusively in the report's stored data snapshot, with hard rules to never invent scores, dates, or frequencies, to describe zero-data goals in one honest sentence, and to never recommend specific hour or unit amounts. The draft lands in the editor for human review, and only a clinician's e-signature can finalize the report. Clinical data is sent with provider storage disabled.

What happens when a report is signed?

The system checks that every required section carries a written narrative, records a typed or drawn e-signature along with the signer's frozen credential, hashes the content, and appends a signature record in the same transaction that moves the report to Approved. From that point the document and its data snapshot are locked, and the numbers on the signed report never change. Creation, status changes, and signing are all recorded in the audit log.

Can I see progress reports in Coralia without signing up?

Yes. Coralia's live demo at coralia.app/demo is a complete synthetic agency — no sign-up and no real client data. You can open it in a browser and walk the clinical workflow end to end. Everything on this page describes shipped behavior; the module works the same way in production agencies today.