| name | generation |
| description | Conversation-driven specification and execution of healthcare data generation at scale. Use when building profiles, generating cohorts, creating journeys, batch generation, specifying distributions, or any at-scale data generation task. |
Generative Framework Skills
Use these skills when building specifications for data generation or executing batch generation.
Quick Reference
Trigger Phrases
Building Specifications
- "Build a profile for 100 Medicare members"
- "Create a journey for diabetic patients"
- "Specify a commercial cohort with CHF"
- "Define a surgical episode journey"
Executing Specifications
- "Generate patients from this profile"
- "Execute the diabetic journey for 50 patients"
- "Run batch generation for this cohort"
Using Templates
- "Use the Medicare diabetic template"
- "Start with the surgical episode journey"
- "Generate using the commercial healthy profile"
Workflow Overview
1. Build a Profile (Optional)
{
"profile": {
"generation": { "count": 200, "products": ["patientsim", "membersim"] },
"demographics": {
"age": { "type": "normal", "mean": 74, "std": 6, "min": 65, "max": 85 },
"gender": { "type": "categorical", "weights": { "M": 0.48
2. Build a Journey (Optional)
Create a first-year diabetic journey:
- Initial diagnosis visit with labs
- Metformin prescription
- Quarterly follow-ups with A1c
- Possible titration to second agent
3. Execute Generation
Generate the cohort using this profile and journey
Save as cohort "ma-diabetic-cohort-2025"
Distribution Types
| Type | Use Case | Example |
|---|
categorical | Discrete choices | Gender: M/F/Other |
normal | Bell curve | Age centered at 72 |
log_normal | Skewed positive | Healthcare costs |
uniform | Equal probability | Random day in range |
explicit | Specific values | Exactly these NDCs |
See distributions/distribution-types.md for details.
Statistical Fidelity — Matching Real Populations
Generated cohorts should use statistical distributions that match real-world population characteristics. The goal is realistic synthetic data, not random noise.
How to match a target population:
- Identify the source benchmark. For Medicare Advantage, use CMS enrollment statistics (mean age ~72, 55% female, regional mix). For Commercial, use employer-census norms. For Medicaid, use state-level demographics.
- Select distribution types that fit the data shape. Age in MA populations follows a roughly normal distribution centered near 72-74 with standard deviation ~7. Cost distributions are log-normal (many low-cost, few high-cost). Chronic condition prevalence uses categorical distributions with rates from CDC PLACES or CMS Chronic Conditions data.
- Parameterize from published statistics. Do not guess distribution parameters. Use published prevalence rates (e.g., 27% diabetes in Medicare, 14% heart failure) and demographic breakdowns. PopulationSim data (
skills/populationsim/) provides county- and tract-level benchmarks for prevalence and social determinants.
- Validate output against inputs. After generation, confirm the cohort's statistical profile (mean, median, standard deviation, category proportions) matches the specification within an acceptable tolerance. Flag drift greater than 5% from target parameters.
Journey Patterns
| Pattern | Use Case | Example |
|---|
linear | Simple sequence | Office visit → Lab → Follow-up |
branching | Decision points | ER → Admit OR Discharge |
protocol | Trial schedules | Cycle 1 Day 1, Day 8, Day 15 |
lifecycle | Long-term patterns | New member first year |
See the journeys/ folder for pattern details.
Integration with Products
The Generative Framework orchestrates all HealthSim products:
| When Generating | Products Involved | Cross-Domain Triggers |
|---|
| Patient cohort | PatientSim, NetworkSim | Provider assignment |
| Member claims | MemberSim, PatientSim, NetworkSim | Encounter → Claim |
| Pharmacy fills | RxMemberSim, PatientSim, NetworkSim | Rx → Fill, DUR check |
| Trial subjects | TrialSim, PatientSim, NetworkSim | Subject ↔ Patient linking |
Templates
Pre-built profiles and journeys for common use cases:
Profile Templates
Journey Templates
Safety Guardrails
All generated data is synthetic and fictional. HealthSim produces simulated test data only. Never present generated records as real patient data.
- No clinical advice. Generated data must not be used to make prescribing decisions, diagnoses, or treatment recommendations. If asked, remind the user this is synthetic test data, not real clinical information.
- Real codes, synthetic entities. Use real, valid medical code systems for realism (see below), but all patients, members, encounters, and claims are generated/fictional.
- No real PHI. Never pull from or reference real patient databases. All person-level data is simulated.
Standard Code Systems
Generated data should reference recognized healthcare code systems:
| System | Use |
|---|
| ICD-10 | Diagnosis codes |
| CPT / HCPCS | Procedure codes |
| LOINC | Lab / observation codes |
| RxNorm / NDC | Medication identifiers |
| SNOMED CT | Clinical terminology |
| NPI | Provider identifiers |
Real reference data (NPI registry, CMS facility files, published code sets) is safe to use. Synthetic data is generated for all patient/member-level entities.
Edge Cases and Error Handling
When generating data, handle incomplete or invalid inputs gracefully:
Missing or Partial Input
| Situation | How to Handle |
|---|
| No age range specified | Default to plan-appropriate range (Medicare: 65-95, Commercial: 18-64, Medicaid Pediatric: 0-18) |
| No geography specified | Omit geographic constraints; generate nationally representative distribution |
| Missing condition prevalence | Use published population baselines (e.g., CDC PLACES prevalence rates) |
| Incomplete journey steps | Generate the specified steps; warn the user about gaps rather than inventing steps silently |
| Unknown or invalid ICD-10/CPT code | Reject the code and ask the user to verify; never silently substitute a different code |
What NOT to Generate
These are common mistakes to avoid:
- Do NOT invent code systems. Use only recognized systems (ICD-10, CPT, HCPCS, LOINC, RxNorm, NDC, SNOMED CT, NPI). Never fabricate codes that look plausible but do not exist in the standard.
- Do NOT generate clinically impossible combinations. Example: a 5-year-old with Medicare Fee-for-Service, or a pregnancy diagnosis on a male patient. Cross-check age, sex, and plan type against clinical plausibility.
- Do NOT silently drop requested attributes. If the user asks for 10 fields and only 8 can be generated, surface the gap explicitly rather than returning incomplete records without explanation.
- Do NOT extrapolate beyond the specification. If the user asks for "50 patients with diabetes," generate exactly 50 with diabetes -- do not add additional unrequested conditions for "realism" unless the user has opted into realistic comorbidity modeling.
- Do NOT generate duplicate identifiers. Every patient ID, member ID, encounter ID, and claim ID must be unique within a cohort.
Validation Checklist
Before returning generated data, verify:
- All code values exist in their respective standard (ICD-10, CPT, LOINC, etc.)
- Date sequences are chronologically consistent (admission before discharge, prescription before fill)
- Demographic fields are internally consistent (age matches date of birth, plan type matches age eligibility)
- Requested counts match output counts (if 200 members requested, 200 are returned)
- No duplicate identifiers exist across the generated dataset
Related Skills
Implementation Status: Foundation phase. See GENERATIVE-FRAMEWORK-PROGRESS.md for details.