Assessment scores, committed to the report.
Drop the publisher’s score-report PDFs in. Each assessment is identified from its content, its scores extracted and written into your practice’s own DOCX template — locally, on one Windows machine.
Request a demo Start at stage 1.0 ↓
Local files only · The template itself is never modified · No report data, file names, or scores ever leave this computer
One run, four stages.
-
1.0 · Drop
Drop the publisher’s score-report PDFs into the window. Each assessment is identified from its content — never the filename — and scores are extracted across up to 8 parallel worker processes. Digital PDFs only; there is no OCR.
Assessments identified from PDF content, not filenames. -
2.0 · Review
Values that cannot be verified are routed to the audit JSON’s review list instead of being guessed. Classification bands are computed from fixed score ranges, never read from the PDF’s own text. A qualified clinician must review the final report; automation does not replace clinical judgment.
Anything unverifiable is labeled, not written. -
3.0 · Generate
Preflight validation runs first; a zero-write dry run proves the pass; then atomic staged writes with rollback. Ambiguity aborts before any file is created. Nothing is uploaded.
Generating locally—please keep this window open… -
4.0 · File
A dated copy is saved under Documents › Psych Reports with its audit JSON. The template itself is never modified. Author metadata is scrubbed from the generated report — dc:creator, cp:lastModifiedBy, free-text docProps.
Report ready · verified values were written into the report.
Coverage, in three honest tiers.
The app tells you which tier an assessment is in before it writes anything.
- Writes score cells today
- BASC-3 (Parent, Teacher) · BRIEF2 · BYI-2 · CAARS-2 (Observer, Spouse/Partner) · CEFI (Parent, Teacher) · Conners 4 (Teacher; Parent when relationship = Mother) · CPT-3 · D-KEFS Verbal Fluency · WAIS-V · WISC-V · WRAT-5
- Detected, routed to review
- Recognized on sight and sent to the audit JSON’s review list; no cells are written. ASRS · PAI · CVLT-3 · WMS-5 · K-CPT 2
- In the registry, coming soon
- Raven’s 2 · WPPSI-IV · WAIS-IV · Vineland-3 · WIAT-III · CEFI-A · BRIEF-A · Conners CBRS · BASC-3 PRQ · Sensory Profile 2 · SRS-2 · CARS-2 ST
Anything the app cannot verify is routed to review — never guessed.
The specification.
| Platform | Windows desktop · single signed .exe | releases signed via Azure Trusted Signing · RFC3161 timestamp · published SHA-256 |
|---|---|---|
| Input | Test-publisher score-report PDFs | identified from content, never the filename · no OCR |
| Output | Dated DOCX copy + audit JSON | saved under Documents › Psych Reports |
| Template | Your practice’s existing DOCX | prepared as part of onboarding · never modified |
| Extraction | Up to 8 parallel worker processes | opt-in checkpoint cache keyed by SHA-256 |
| Writes | Atomic staged writes with rollback | preflight validation · zero-write dry runs · ambiguity aborts |
| Classification | Fixed bands computed from score ranges | never trusted from the PDF’s own text |
| Network | Licensing handshake only | allowlist pinned by tests/unit/test_licensing_privacy.py |
| Offline | 14-day grace | Ed25519-signed · AES-256-GCM machine files · DPAPI at rest |
| Metadata | Author fields scrubbed on generation | dc:creator · cp:lastModifiedBy · free-text docProps |
Nothing leaves this computer.
Extraction, review, and generation all run locally. The app never uploads assessment or report data — there is no cloud component to send it to.
Activation contacts only your practice’s licensing server. No report data, file names, or scores ever leave this computer.
Sent
license key · salted one-way machine-fingerprint hash · platform constant · app version · server IDs
Never sent
file names · paths · scores · hostnames · usernames · report content
This allowlist is pinned by an automated test — tests/unit/test_licensing_privacy.py. If a build tried to send more, the test suite would fail.
License state is DPAPI-encrypted at rest. Offline machine files are Ed25519-signed and AES-256-GCM encrypted, with a 14-day offline grace period. The executable is one signed file — Azure Trusted Signing, RFC3161 timestamp, SHA-256 published with each release.
One license, per seat.
Seat license
$— per seat / year
Final price to confirm.
- Annual per-seat subscription
- Licensed per computer — one seat, one machine
- Self-service seat release
- 14-day offline grace
- Expiry restricts report generation — never your data
- Template onboarding included
Questions, answered plainly.
Does it run on Mac?
No. ReportAutomation is Windows-only — a single signed executable, verified by Azure Trusted Signing with an RFC3161 timestamp and a published SHA-256.
Where does client data go?
Nowhere. Extraction, review, and generation run on your computer. The only network traffic is a licensing handshake with your practice’s own licensing server, and its payload is a strict allowlist — never file names, paths, scores, or report content.
Do we need a BAA for this?
The app transmits no assessment or report data to us or to anyone, so there is no cloud processor handling PHI. The licensing payload allowlist is published and pinned by an automated test; review it with your own compliance counsel.
Will it work with our report template?
Yes — your practice’s template is prepared as part of onboarding. The app writes into a dated copy under Documents › Psych Reports; the template itself is never modified.
Can it read scanned score reports?
No. There is no OCR. The app reads digital score-report PDFs as exported by the test publisher.
What happens when we are offline?
The app keeps working for 14 days without reaching the licensing server. Offline machine files are Ed25519-signed and AES-256-GCM encrypted; license state is DPAPI-encrypted at rest.
What happens when the license expires?
Report generation stops. Your data does not — templates, reports, and audit JSONs are ordinary files on your disk and stay there.
What does it do with a value it cannot verify?
It refuses to guess. Unverifiable values are routed to the audit JSON’s review list, and ambiguity aborts the run before any file is created.
How do we buy it?
Request a demo. Licensing is an annual per-seat subscription — one seat per computer, with self-service seat release. There is no self-serve download and no trial.
See a run on your own template.
A demo is a live run — publisher PDFs in, a dated report and its audit JSON out. Your practice’s template is prepared as part of onboarding.
Local files only · The template itself is never modified