Behavioral health AI scribe 2026: SOAP, DAP, 90834 vs 90837, and the long-narrative problem
AI scribes engineered for primary care visits hit a wall in mental health practice. A 53-minute psychotherapy session is not a 12-minute med-management visit with extra rambling. The narrative is long, the CPT code depends on a stopwatch, the privacy laws are stricter, and the vendor demos rarely show this segment because the failure modes are obvious.
Here's what actually breaks, what to look for, and what a DIY pipeline can do better than the $399/month tools.
Why behavioral health scribing is structurally different
- Length. Sessions run 45–55 minutes. ASR transcripts are 7,000–12,000 words. Most scribe LLM contexts handle this, but the summarization style designed for "patient presents with sore throat" produces flat clinical narratives that miss the point of a therapy note.
- Time-based CPT codes. 90832 (30 min), 90834 (45 min), 90837 (60 min). A scribe that doesn't track session duration to the minute either over-codes (audit risk) or under-codes (revenue loss). Most generic scribes don't track at all.
- DSM-5-TR fidelity. Diagnoses are rarely declared verbatim in session ("you have F33.1"). They're inferred from symptoms over weeks. AI that hallucinates a DSM code from a single session's content is dangerous.
- 42 CFR Part 2. Federal SUD records have stricter consent rules than HIPAA. Sub-processors and BAA chains that work for primary care don't all cover Part 2. Most scribe vendors don't address this in their privacy docs.
- Narrative format options. SOAP works for med management. DAP (Data, Assessment, Plan) and BIRP (Behavior, Intervention, Response, Plan) fit therapy better. Most generic scribes only output SOAP.
The CPT timer problem (real revenue impact)
2026 reimbursement (Medicare national):
| CPT | Time threshold | 2026 Medicare allowable (national) |
|---|---|---|
| 90832 | 16–37 min | ~$72 |
| 90834 | 38–52 min | ~$103 |
| 90837 | ≥ 53 min | ~$155 |
| +90836 | add-on with E/M | ~$48 |
| 90847 | family/couples 50 min | ~$108 |
A clinician seeing 6 sessions/day, 4 days/week, who downcodes 90837 to 90834 even 30% of the time loses $52 × 30% × 24 sessions/week = ~$374/week, or roughly $19,500/year. An AI scribe that locks down session duration from the audio file (not from your manual entry) protects this revenue.
SOAP, DAP, BIRP — what to use
| Format | Best fit | Why |
|---|---|---|
| SOAP | Med-management, integrated primary-care behavioral health | Familiar to medical billers, fits prescribing workflow. |
| DAP | Outpatient psychotherapy, individual sessions | "Assessment" lets you connect today's content to longitudinal themes without forcing an objective/subjective split. |
| BIRP | Group therapy, intensive outpatient (IOP), substance use treatment | "Behavior" + "Response" formats fit observable-action documentation that auditors and payers prefer for SUD. |
Solo private-practice psychotherapists most often want DAP. Group practices working with multiple payers need both DAP and SOAP available. A scribe that hardcodes SOAP costs you flexibility.
The DSM-5-TR hallucination risk
Generic scribe LLMs trained heavily on primary-care notes will sometimes assert diagnoses ("Major Depressive Disorder, recurrent, moderate, F33.1") from a single session that mentions sad mood and sleep changes. This creates two problems:
- Audit exposure. Diagnosis without proper criteria documentation in the chart is a fraud finding.
- Patient harm. An over-coded F33.1 from week 1 follows the patient through every future record query — life insurance underwriting, child custody evaluations, security clearances.
Mitigation: prompt the LLM to only carry forward diagnoses already in the patient's chart, and to flag new symptoms for clinician review rather than auto-coding. Most ambient scribes don't expose this prompt; DIY does.
2026 vendor reality check for behavioral health
| Vendor | Format support | Time tracking | 42 CFR Part 2 covered? |
|---|---|---|---|
| Heidi Health | SOAP, custom prompts (DAP via prompt) | Yes (audio duration) | BAA covers HIPAA; Part 2 not explicitly addressed |
| Suki AI | Primarily SOAP; psychiatry templates exist | Yes | HIPAA BAA; Part 2 case-by-case |
| Eleos Health | Built for behavioral health: BIRP, DAP, SOAP | Yes, with CPT suggestion | Yes — addresses Part 2 explicitly |
| Upheal | Therapy-focused: DAP, BIRP, custom | Yes | HIPAA BAA; clarify Part 2 in contract |
| Mentalyc | DAP, BIRP, SOAP, GIRP, PIRP | Yes | HIPAA BAA |
| DIY (Whisper + Claude) | Any format via prompt | From audio metadata | You control the chain — see BAA chain audit |
Eleos, Upheal, and Mentalyc are the only purpose-built behavioral-health scribes worth a serious pilot in 2026. Generic scribes (Suki, Heidi, Abridge, Nuance) work but require prompt customization that most clinicians won't maintain.
DIY pipeline tweaks for therapy notes
The base solo-provider DIY stack (Whisper + Claude) handles therapy with three additions:
- Time tracking. Use ffmpeg to extract audio duration:
ffprobe -i session.m4a -show_entries format=duration. Round down to the nearest minute. Pass to the LLM as a hard fact: "Session duration: 47 minutes." - Format flag. Prompt: "Output as DAP" / "Output as BIRP" / "Output as SOAP". Single keyword, deterministic structure. Use system message to define each.
- DSM-TR safety prompt. "Carry forward only diagnoses listed in {prior_dx}. For new symptoms, write under 'Areas for clinician review' — do NOT assign new ICD codes."
Sample DAP prompt template
You are a behavioral health documentation assistant.
Patient: {patient_name}
Session date: {date}
Session duration (from audio file): {minutes} minutes
Existing diagnoses (chart): {prior_diagnoses}
Modality: {individual|family|group}
Output format: DAP
Rules:
- Determine CPT from session duration: 90832 (16-37 min), 90834 (38-52 min), 90837 (53+ min).
- Carry forward existing diagnoses only. Flag new symptoms under "Areas for clinician review".
- Use third-person clinical voice.
- Do not assert any diagnosis not in {prior_diagnoses}.
- Length: 250-450 words.
Transcript:
{transcript}
This prompt, fed to Claude or GPT-4 class models, produces clean DAP notes with correct CPT 90% of the time on first pass. Manual review still needed for the diagnosis section.
ROI math for solo therapist
- Loaded $/hr (private pay, $180/hr session): ~$200 effective hourly
- Time saved per session: 12 minutes (longer than primary care because of transcript length)
- 22 sessions/week = 264 min = 4.4 hr saved/week
- 4.4 hr × $200 = $880/week saved or one extra session/week added
- Cost: Eleos / Upheal $99–$249/mo, or DIY $30–$80/mo at this volume
- Net: $3,000–$3,400/month for solo private practice
The 42 CFR Part 2 watch-out
If your practice treats Substance Use Disorder, federal Part 2 rules require redisclosure consent that HIPAA does not. A scribe vendor whose BAA covers HIPAA but whose chain (Whisper sub-processor, LLM provider, storage) hasn't been audited for Part 2 is a compliance gap. Two questions every clinic should ask before signing:
- "Does your BAA address 42 CFR Part 2 specifically, or only HIPAA?"
- "List every sub-processor that touches audio or transcript, with its Part 2 status."
If the answer is vague, treat it as not covered.
Therapy session transcription at $0.05/min
BAA on request. No subscription floor. Bring your own LLM for DAP/BIRP notes.
Transcribe a session →