Topic · AI DAP note generator

AI DAP note generator that runs on your Mac — Data / Assessment / Plan drafted locally, audio never leaves the device

DAP is the dominant progress-note format in private-practice mental-health work because it puts the narrative where the narrative belongs — in Data — and treats Assessment and Plan as the clinician's professional voice rather than an LLM's. A DAP generator that respects that structure has to do two things well: it has to produce a Data paragraph dense enough to anchor the chart, and it has to know when to stop. TherapyDraft is the DAP generator built around both — and it does the work on your Mac, with no network socket open for the audio or the draft.

TL;DR

TherapyDraft is an AI DAP note generator for US private-practice mental-health clinicians that runs entirely on the clinician's M-series Mac. Record a session, click "Draft DAP," and in two to four minutes you have a Data / Assessment / Plan draft sized for the median private-practice progress note. The audio file, the transcript, and the draft never open a network socket because the macOS network-sandbox entitlement on those code paths is set to deny by design. Output pastes cleanly into SimplePractice, TherapyNotes, TheraNest, Jane, Valant, and any other EHR with a rich-text or plain-text progress-note field. There is a 10-session free trial; paid is $39 per month or $349 per year.

Why DAP, and why a generator built specifically for DAP

DAP — Data, Assessment, Plan — outpaces SOAP and BIRP in private-practice mental-health work for one structural reason: it puts the long narrative in one place. Data is the section where the session lives — what the client reported, what the clinician observed, what was said and what was felt. Assessment is the clinician's clinical reasoning, short by design. Plan is the next-step list, shorter still. Most LMFTs and LCSWs working in talk-therapy modalities — CBT, ACT, EFT, IFS, psychodynamic, integrative — find DAP closer to how they think about a session than SOAP's four-way split.

That structural simplicity matters for AI-assisted drafting. SOAP scribes have a recurring failure mode where the Objective field fills up with verbatim transcript snippets — "client said 'I had a panic attack on Sunday'" — because the model doesn't know what else to put there. DAP avoids that pattern: Data absorbs the narrative honestly, Assessment is short enough that the clinician can write it directly if the model's draft drifts, and Plan is functionally a checklist. A generator tuned for DAP can be tuned for that shape — long where it matters, short where it should be, with the clinical voice held in reserve for the Assessment.

TherapyDraft's prompt scaffolding for DAP is calibrated against roughly a hundred anonymized real DAP notes contributed by beta clinicians during the supervised testing phase. The model is told, in effect, that Data is where the work happens, that Assessment should not exceed about a quarter of Data's length, and that Plan should be a short list of 3–6 items. The output reflects that — Data carries the session, Assessment names the clinical work, Plan closes the loop.

The DAP-drafting workflow on a Mac

  1. Record or import the audio. Use TherapyDraft's built-in recorder, your Mac's microphone, a USB lavalier, or an exported audio file from any session-recording setup. Telehealth recordings work; in-person recordings work; phone-call exports work. The file is stored in TherapyDraft's local Application Support directory and stays there until you delete it.
  2. Pick DAP and pick the voice preset. The format dropdown has SOAP, DAP, BIRP, GIRP, and a Custom mode. Choose DAP. The voice preset toggles whether Data is third-person or first-person, whether Assessment includes a DSM-5-TR provisional formulation line, and whether Plan numbers its items or bullets them. Defaults are calibrated to the median private-practice DAP; first-time customization is one click per toggle, and the preset is persistent.
  3. Draft locally. whisper.cpp transcribes the audio on your Mac (real-time factor under 1.0× on M2 and faster), then Qwen 2.5 14B-Instruct (4-bit MLX) runs the DAP-shaped prompt against the transcript and your style examples. End-to-end on a 50-minute session: 90–150 seconds on M2, 60–100 seconds on M3 or M4. The macOS network-sandbox entitlement on the recording, transcription, and inference paths is set to deny by design; there is no socket through which audio or text can leave.
  4. Review and paste. Read the draft in TherapyDraft's editor, fix anything the model got wrong, then click the EHR-paste preset for your chart-of-record. Output is plain-text labeled paragraphs that drop cleanly into the Data, Assessment, and Plan fields of any standard DAP form. Custom forms with extra fields work too — the Custom-form-aware preset takes your field labels and emits paragraphs to match.
  5. Sign in your EHR. The note is yours; the AI authored a draft, you authored the note. The audit trail in your EHR shows you as the author of every field because every field was edited by you while logged in. That is the correct legal posture and matches the way every cloud DAP scribe quietly handles authorship in practice.

End-to-end time on a 50-minute session: roughly two to four minutes of local drafting plus one to three minutes of clinical review and editing in your EHR. Net displacement of typing burden: about 15–25 minutes per session, which is the same range cloud DAP scribes report — without the audio leaving your machine.

A sample DAP output from an anonymized fake transcript

Below is a draft TherapyDraft produced from an anonymized fake 50-minute transcript. The "client" is composite; nothing in this transcript corresponds to a real session or a real person. Names, demographics, and clinical detail have been generalized. The point of the sample is to show the shape of the output — paragraph length, voice, level of clinical specificity, and where the model deliberately holds back.

Data. Client presented on time for a regular weekly session, appearing well-groomed and reasonably rested. Affect was reactive and somewhat constricted at intake, broadening over the session as rapport re-established. Client opened by reporting a difficult interaction at work the prior Tuesday in which a senior colleague attributed an error to client in a meeting that included client's direct supervisor. Client described the event as "the kind of thing I usually let go for a week before I notice I'm not letting it go." Client traced an escalating pattern over the subsequent days: shortened sleep onset Wednesday and Thursday, two missed gym sessions, increased weekend rumination on whether to address the colleague directly. Client reported that the rumination peaked Sunday afternoon and that client used the in-session coping skills practiced in prior weeks — paced breathing and a brief written reframe — to interrupt it. Client described the reframe as partially successful, noting that "the reframe got me out of the loop but didn't change how I feel about her." Client and clinician revisited the values-clarification work from session 6 and identified that the colleague interaction conflicts most directly with client's stated value of being seen as competent at work. Client expressed willingness to draft a short, direct conversation script for the colleague before next session and to test it in roleplay.

Assessment. Client continues to demonstrate progress on the core treatment goal of recognizing rumination earlier in its arc and applying coping skills before symptoms generalize to sleep and exercise. The client's articulation of the values conflict (competence versus avoidance) is meaningfully sharper than at intake and reflects integration of the values-clarification work. Affect modulation across the session, and the use of session 6's reframe in vivo, support continued forward movement. No acute risk factors observed; no SI / HI reported or elicited.

Plan. Client to draft a 3–4 sentence script for the colleague conversation prior to next session. In session, roleplay the conversation twice with role reversal. Continue weekly cadence; revisit values-clarification follow-up at session 12 per treatment plan. Clinician to send the cognitive-defusion handout discussed in session 4 as a reference for the rumination-interruption work.

Notice the shape. Data is the substance — about 240 words, anchored in observable detail, paraphrasing the client without quoting the transcript verbatim. Assessment is short — about 75 words — and stays on the clinical reasoning rather than restating Data. Plan is six concrete next-step items in five short sentences. The model deliberately did not invent diagnostic specificity it didn't have evidence for; it did not pretend to know things the transcript didn't say; and it did not put speech transcript snippets into Data where a paraphrase would do.

That balance — long where it matters, short where it should be, hedged where the evidence is thin — is what a DAP generator earns its keep on. The full transcript-to-draft path runs on your Mac. The model file is local. The transcript is local. The draft is local. Nothing leaves the device.

Why a local DAP generator is structurally different from a cloud DAP generator

Every cloud DAP scribe in market in 2026 — Mentalyc, Upheal, Blueprint, Supanote, Freed, CliniScripts, and the in-product AI scribes shipping inside major EHRs — works the same way at the architectural layer. Audio uploads to the vendor's cloud. The vendor's cloud forwards it to an AI subprocessor for transcription and drafting. The transcript and draft come back, get stored in the vendor's tenant of that subprocessor's storage, and surface in the clinician's web UI. Every link in that chain is covered by the vendor's BAA, and every link is also a new line in the practice's subprocessor inventory and a new breach surface.

The architectural property of running the DAP generator locally is not better security in the conventional sense — it's the absence of a category of risk. There is no subprocessor chain because there is no cloud. There is no breach surface at the AI vendor because there is no AI vendor. There is no audio in transit because there is no transit. The Mac is the cloud, and the only thing that ever leaves it for this workflow is the typed-or-pasted note that you type-or-paste into your EHR yourself, after reviewing it.

That property is load-bearing for a meaningful minority of US private-practice clinicians — not the majority, but a real and growing segment driven by 2026's BAA-trust fatigue, by therapist-discovery cases that have publicized how subprocessor chains expose session content, and by the simple availability of M-series Macs powerful enough to run 14B-parameter models in 4-bit at conversational latency. For that clinician, a DAP generator that runs locally is not "the cheaper option" or "the faster option" — it is the only option that matches their threat model.

For clinicians whose threat model is satisfied by a signed BAA with a reputable cloud scribe, the cloud options are perfectly defensible. The deeper-dive comparison is in the pricing comparison page, and the architectural-vs-contractual argument is laid out in the BAA explainer. This page is for clinicians who already know what they want and are searching for the tool that ships it.

What "DAP" means here, briefly

A DAP note is a progress note structured as three labeled paragraphs:

DAP is the dominant format in private-practice talk-therapy work because it maps cleanly to how most clinicians actually think about a session — narrative first, reasoning second, next steps third. SOAP, by contrast, splits the narrative into Subjective and Objective fields that don't map as naturally to mental-health work, where most of what's "Objective" is the clinician's observation of the Subjective. BIRP and GIRP are common in insurance-billing-heavy contexts because they foreground Intervention as a labeled section that auditors can find quickly. TherapyDraft generates all four formats; this page is about DAP specifically because it's the most common request in the private-practice setting we serve.

Pricing and free trial

TherapyDraft is $39 per month or $349 per year for the Solo plan, which includes unlimited DAP / SOAP / BIRP / GIRP drafts, all EHR paste presets, the tamper-evident inference attestation log, and the one-shot template matching from your own example notes. Group pricing is $29 per seat per month for practices of 3+ seats. There is a free trial of 10 sessions with no credit card required — see the free-trial page for the trial mechanics.

Pricing context against cloud DAP scribes: Mentalyc starts at $19.99/mo, Supanote at $39/mo, Upheal at $29/mo, Blueprint at $0.99 per session, and Freed at $99/mo. TherapyDraft sits at the median of that range and uses the architectural-vs-contractual difference, not price, as the wedge. The full breakdown is in the pricing comparison.

Related questions

Is DAP a better fit than SOAP for AI generation?

DAP is structurally easier for an LLM to draft well because two of its three sections (Assessment and Plan) are short and clinician-led, leaving Data as the only long narrative. SOAP splits the narrative across Subjective and Objective, which encourages cloud scribes to over-generate the Objective field with literal speech transcripts. DAP avoids that failure mode by design. The tradeoff: SOAP is more familiar to clinicians who came to private practice from medical settings, and some EHRs default their progress-note form to SOAP. TherapyDraft generates both equally well; the choice is yours per session.

Does the DAP generator work for non-mental-health DAP users?

TherapyDraft is shaped for mental-health clinicians (LMFT / LCSW / LPC / PsyD / PhD) and its prompt scaffolding for DAP assumes a 50-minute talk-therapy session. It still produces sensible DAP output for adjacent contexts — case-management notes, school-counseling notes, EAP intake — but the longer the session deviates from a talk-therapy structure, the more clinical editing the draft needs. Substance-use group counseling and psychiatric medication-management visits are out of scope; the prompt scaffolding doesn't fit those workflows.

Can I write the Data paragraph in third person and the Assessment in first person?

Yes. The voice preset has a per-section toggle: Data in third person ("Client reported…"), Assessment and Plan in first person ("I observed…" / "I will…"), or a single voice across the whole note. Most LMFT and LCSW clinicians keep Data third-person and Assessment first-person; LPCs vary by supervisor preference. The first-time setup is one click and the preset travels across sessions. The preset can also be exported as a small JSON file and shared across a group practice so the practice's documentation voice is consistent across clinicians.

How long are the DAP paragraphs the model produces?

From a 50-minute session, expect Data at 180–280 words, Assessment at 60–110 words, and Plan at 40–80 words. Total length is configurable — "concise" compresses to roughly 60 percent of those numbers, "thorough" grows them by about a third. The default is calibrated to the median private-practice DAP, which clocks in around 350–450 words total. If your supervisor or your insurance reviewer prefers shorter or longer notes, the preset can be set once and then forgotten.

Why ship a DAP generator that runs on the Mac instead of using a cloud DAP scribe?

Because the moment your session audio leaves the Mac, you are trusting your scribe vendor's BAA, their AI subprocessor's BAA, their hosting provider's BAA, and the security posture of every employee at every link in the chain. A local DAP generator removes that chain from the threat model entirely — the audio never opens a network socket, the transcript never leaves the device, the draft is produced on hardware you physically control. For clinicians who chose mental-health practice partly because of the privilege the relationship carries, that architectural property is worth a few extra dollars per month over the cheapest cloud option. For clinicians whose threat model is satisfied by a cloud BAA, the cloud options are perfectly defensible — this page exists for the segment that wants the architectural answer.

Further reading