Protect identity.
Preserve meaning.
Transform sensitive mental health conversations into data for AI training and evaluation—while preserving the context that matters.
ClientYeah. My dad died suddenly about a year ago. He was helping someone else get to safety. It got a lot of public attention, and people called him a hero.
The problem
Masking misses what identifies and breaks what matters.
What masking misses
Yeah. My dad, Ernesto, died in the Moore tornado on May 20, 2025. He was helping a neighbor get into their storm shelter. It was on the news, they called him a hero on KOCO.
IdentifiableYeah. My dad, <PERSON>, died in the Moore tornado on <DATE_TIME>. He was helping a neighbor get into their storm shelter. It was on the news, they called him a hero on KOCO.
Still searchableYeah. My dad died suddenly about a year ago. He was helping someone else get to safety. It got a lot of public attention, and people called him a hero.
RewrittenWhat masking breaks
Your PHQ-9 today came out at 17, which is in the moderately severe range. I'd like us to make a safety plan together and talk with Dr. Okafor about the sleep.
IdentifiableYour PHQ-9 <DATE_TIME> came out at <DATE_TIME>, which is in the moderately severe range. I'd like us to make a safety plan together and talk with Dr. <PERSON> about the sleep.
Score lostYour PHQ-9 today came out at 17, which is in the moderately severe range. I'd like us to make a safety plan together and talk with the prescribing doctor about the sleep.
Score keptHow it works
Two stages, then a hard test.
Catch the obvious
Pattern rules replace names, numbers, and dates with tags.
Fix what masking can't
A de-identification sheet, written once with full context, guides a rewrite eight turns at a time.
Score every claim
Safe Harbor, mosaic clues, clinical facts, and quality, each scored separately.
Try to find the client
Can a model pick the client out of 10 profiles? Chance is 10%.
“We never call a dataset anonymous.”
Results
Three hard sessions, measured.
16-year-old high school wrestler
Re-identification · chance 10%
Clinical facts kept
Safe Harbor
93-year-old veteran
Re-identification · chance 10%
Clinical facts kept
Safe Harbor
The product
What a buyer receives.
- Rewritten sessionsConsistent surrogates. Scores, doses, and risk statements kept exact.
- Retained attributesSex, age band, occupation category, living situation.
- Clinical factsWhat each session can evaluate.
- VerificationSafe Harbor, mosaic exposure, lineup, rule checks, quality.
{
"sample_id": "S1",
"synthetic": true,
"legal_basis": "synthetic",
"pipeline": {
"stage_1": "masking",
"stage_2": "rewrite from de-identification sheet",
"evaluation": "rules, probability judgments, persona lineup"
},
"retained_attributes": {
"sex": "Female",
"age_band": "30-39",
"state": "withheld",
"occupation_category": "Healthcare professional (nursing, hospital-based, night shift)",
"living_situation": "Lives alone"
},
"messages": [
{
"turn_id": "t1",
"speaker": "therapist",
"text": "Thanks for coming in today. Before we start, can you confirm your date of birth for the chart?"
},
{
"turn_id": "t2",
"speaker": "client",
"text": "Sure, I'll give it to the front desk again. And I have a new cell number if they need it."
},
{
"turn_id": "t3",
"speaker": "therapist",
"text": "Got it. And the email on file, is that still right?"
},
{
"turn_id": "t4",
"speaker": "client",
"text": "Yeah, it's the same one. Oh, and billing asked me for my social again, but I already gave it to them at intake."
},
{
"turn_id": "t5",
"speaker": "therapist",
"text": "Okay. Last time we talked about the night shifts. How has this past week been?"
},
{
"turn_id": "t6",
"speaker": "client",
"text": "Honestly bad. I work nights as a nurse at the hospital, and I'm often carrying heavy responsibility with short staffing. Earlier this week, colleagues were absent and I covered the unit mostly alone."
},
{
"turn_id": "t7",
"speaker": "therapist",
"text": "That sounds exhausting. What happened in your body during that shift?"
},
{
"turn_id": "t8",
"speaker": "client",
"text": "In the early morning hours my chest got tight, my hands went numb, I thought I was having a heart attack. That's the third panic attack this month."
},
{
"turn_id": "t9",
"speaker": "therapist",
"text": "How are you sleeping between shifts?"
},
{
"turn_id": "t10",
"speaker": "client",
"text": "Maybe four hours. I live alone now, and the noise near my place wakes me up constantly."
},
{
"turn_id": "t11",
"speaker": "therapist",
"text": "You mentioned last session that the anniversary of your father's death was coming up."
},
{
"turn_id": "t12",
"speaker": "client",
"text": "Yeah. My dad died suddenly about a year ago. He was helping someone else get to safety. It got a lot of public attention, and people called him a hero."
},
{
"turn_id": "t13",
"speaker": "therapist",
"text": "That's a heavy loss, and a public one. How are you coping with it right now?"
},
{
"turn_id": "t14",
"speaker": "client",
"text": "Mostly wine. Like four glasses most nights, sometimes the whole bottle on my days off."
},
{
"turn_id": "t15",
"speaker": "therapist",
"text": "I want to ask directly, because it matters. Have you had any thoughts of not wanting to be alive?"
},
{
"turn_id": "t16",
"speaker": "client",
"text": "Sometimes I wish I just wouldn't wake up. I don't have a plan or anything. I wouldn't do that to my brother Sam, he already lost dad."
},
{
"turn_id": "t17",
"speaker": "therapist",
"text": "Thank you for telling me. Do you have access to anything at home you might use to hurt yourself?"
},
{
"turn_id": "t18",
"speaker": "client",
"text": "No guns. I do have meds from work, like I could get them easily, but I haven't thought about it like that."
},
{
"turn_id": "t19",
"speaker": "therapist",
"text": "Your PHQ-9 today came out at 17, which is in the moderately severe range. I'd like us to make a safety plan together and talk with the prescribing doctor about the sleep."
},
{
"turn_id": "t20",
"speaker": "client",
"text": "Okay. The prescribing doctor at the clinic? I can get my record number if you need it. My next shift is later this week, can we meet in the middle of the week?"
},
{
"turn_id": "t21",
"speaker": "therapist",
"text": "That works. Call 988 or come to the ER if those thoughts get stronger before then."
}
],
"clinical_facts": [
{
"id": "C1",
"fact": "recurrent panic attacks (about three this month) with chest tightness and numbness",
"retention_probability": 0.97
},
{
"id": "C2",
"fact": "insomnia, about four hours of sleep",
"retention_probability": 0.97
},
{
"id": "C3",
"fact": "heavy alcohol use, about four glasses of wine most nights, more on days off",
"retention_probability": 0.96
},
{
"id": "C4",
"fact": "passive suicidal ideation without a plan, protective factor is a sibling",
"retention_probability": 0.95
},
{
"id": "C5",
"fact": "access to medications through work (means access risk)",
"retention_probability": 0.95
},
{
"id": "C6",
"fact": "PHQ-9 score of 17 (moderately severe)",
"retention_probability": 0.97
},
{
"id": "C7",
"fact": "traumatic bereavement of father around an upcoming anniversary",
"retention_probability": 0.9
},
{
"id": "C8",
"fact": "occupational stress from night shift healthcare work",
"retention_probability": 0.97
}
],
"verification": {
"safe_harbor": [
{
"category": "A",
"status": "pass",
"llm_probability": null
},
{
"category": "B",
"status": "pass",
"llm_probability": 0.08
},
{
"category": "C",
"status": "pass",
"llm_probability": 0.15
},
{
"category": "D-F",
"status": "pass",
"llm_probability": 0.08
},
{
"category": "G",
"status": "pass",
"llm_probability": 0.08
},
{
"category": "H-K",
"status": "pass",
"llm_probability": 0.08
},
{
"category": "N-O",
"status": "pass",
"llm_probability": null
},
{
"category": "R",
"status": "pass",
"llm_probability": 0.27
}
],
"direct_identifiers_left": 0,
"mosaic_exposure": 0.07,
"lineup_reidentification": {
"probability": 0.123,
"chance": 0.1,
"decoys": "demographically matched"
},
"rule_checks": {
"risk_terms_kept": {
"suicidal ideation": true,
"self-harm": true,
"firearm": true,
"medication access": true,
"alcohol": true,
"crisis line": true
},
"scores_and_doses_kept": {
"PHQ-9 17": true
},
"tags_left": 0,
"turn_structure_kept": true
},
"quality": {
"natural_conversation": 0.75,
"clinical_facts_added": 0.2,
"risk_changed": 0.04
}
}
}Built for the U.S. path
Designed around how health data can actually move.
Expert Determination, not just Safe Harbor
Safe Harbor strips the context evaluations need. Expert Determination lets a qualified expert approve richer data for a defined recipient, and Into the Unknown's sheet, checks, and lineup results are the evidence that expert works from.
Two paths, both de-identified
- Existing records, licensed after Expert Determination
- New sessions, collected with written authorization
High-risk categories stay out
- Minors
- Psychotherapy notes
- 42 CFR Part 2 records
- Audio and voiceprints
Evidence on every record
- Legal basis and source state
- Consent or determination ID
- Reviewer sign-off
Guardrails downstream
- No re-identification or linkage
- Equal terms downstream (CA AB 713)
- No transfer to countries of concern
Roadmap
From prototype to a trusted supply.
Prototype
- Two-stage pipeline
- Evaluation and lineup
- 3 synthetic sessions
Validate
- Calibrate against human raters
- Buyer and provider interviews
Pilot
- One state, one provider
- Expert Determination on real data
Supply
- Licensed evaluation datasets
- Recurring supply
FAQ
Straight answers.
Is the output anonymous?
We don't use that word. We report what was checked and what remains. Release of real data is decided by a qualified expert under HIPAA Expert Determination.
Is the demo live?
Run pipeline calls our backend. By default it returns that pipeline's recorded output; with the pipeline configured on the server, it runs live. Sessions are synthetic: every person, number, and place is invented.
What do the percentages mean?
Model probability judgments under fixed test conditions. In the lineup, chance is 10%. They are evidence for review, not real-world rates.
Why rewrite instead of mask?
Masking removes strings. Risk lives in combinations of details, and value lives in exact clinical facts. Rewriting handles both.