healthsim-membersim

MemberSim generates realistic synthetic claims and payer data for testing claims processing systems, payment integrity, and benefits administration.

$ 安裝

git clone https://github.com/mark64oswald/healthsim-workspace /tmp/healthsim-workspace && cp -r /tmp/healthsim-workspace/skills/membersim ~/.claude/skills/healthsim-workspace

// tip: Run this command in your terminal to install the skill


name: healthsim-membersim description: "MemberSim generates realistic synthetic claims and payer data for testing claims processing systems, payment integrity, and benefits administration."

MemberSim - Claims and Payer Data Generation

For Claude

Use this skill when the user requests healthcare claims, payer data, or benefits administration cohorts. This is the primary skill for generating realistic synthetic claims and member data.

When to apply this skill:

  • User mentions claims, billing, or reimbursement
  • User requests 837P (professional) or 837I (facility) claims
  • User specifies payer, insurance, or benefits cohorts
  • User asks for X12 formatted output (834, 835, 837, 270/271)
  • User needs member enrollment, eligibility, or prior authorization data

Key capabilities:

  • Generate members with coverage and benefit plans
  • Create professional and facility claims with proper coding
  • Model claim adjudication with CARC codes and payment calculations
  • Track accumulators (deductible, OOP, coinsurance)
  • Handle prior authorization workflows
  • Transform output to X12 formats (837, 835, 834, 270/271)

For specific claims cohorts, load the appropriate cohort skill from the table below.

Overview

MemberSim generates realistic synthetic claims and payer data for testing claims processing systems, payment integrity, and benefits administration. This includes:

  • Member enrollment and eligibility
  • Professional claims (837P)
  • Institutional/facility claims (837I)
  • Claim adjudication and payment
  • Prior authorization workflows
  • Accumulator tracking (deductible, OOP)

Quick Start

Simple Professional Claim

Request: "Generate a professional claim for an office visit"

{
  "claim": {
    "claim_id": "CLM20250115000001",
    "claim_type": "PROFESSIONAL",
    "member_id": "MEM001234",
    "provider_npi": "1234567890",
    "service_date": "2025-01-15",
    "place_of_service": "11",
    "principal_diagnosis": "I10",
    "claim_lines": [
      {
        "line_number": 1,
        "procedure_code": "99214",
        "charge_amount": 175.00,
        "units": 1
      }
    ]
  },
  "adjudication": {
    "status": "paid",
    "allowed_amount": 125.00,
    "paid_amount": 100.00,
    "copay": 25.00
  }
}

Facility Claim with DRG

Request: "Generate an inpatient claim for heart failure admission"

Claude loads facility-claims.md and produces a complete 837I-style claim with DRG assignment.

Cohort Skills

Load the appropriate cohort based on user request:

CohortTrigger PhrasesFile
Plan & Benefitsplan, benefit plan, HMO, PPO, HDHP, copay, deductible structureplan-benefits.md
Enrollment & Eligibilityenrollment, eligibility, 834, 270, 271, coverageenrollment-eligibility.md
Professional Claimsoffice visit, 837P, physician claim, E&Mprofessional-claims.md
Facility Claimshospital, inpatient, 837I, DRG, UB-04facility-claims.md
Prior Authorizationprior auth, pre-cert, authorization, PAprior-authorization.md
Accumulator Trackingdeductible, OOP, accumulator, cost sharingaccumulator-tracking.md
Value-Based Carequality measures, VBC, HEDIS, risk adjustment, HCC, care gapsvalue-based-care.md
Behavioral Healthmental health, psychiatry, psychotherapy, substance abuse, SUDbehavioral-health.md

Generation Parameters

ParameterTypeDefaultDescription
claim_typestringPROFESSIONALPROFESSIONAL, INSTITUTIONAL, DENTAL
claim_statusstringpaidpaid, denied, pending, partial
network_statusstringin-networkin-network, out-of-network
member_ageint or range18-65Member age
plan_typestringPPOHMO, PPO, EPO, POS, HDHP

Output Entities

Member

Extends Person with coverage information:

  • member_id, subscriber_id, relationship_code
  • group_id, plan_code
  • coverage_start, coverage_end
  • PCP assignment (for HMO)

Claim

Claim header with:

  • claim_id, claim_type
  • member_id, provider_npi
  • service dates, place of service
  • diagnosis codes (principal + secondary)
  • claim_lines array

ClaimLine

Individual service line:

  • procedure_code (CPT/HCPCS)
  • modifiers, units
  • charge_amount
  • revenue_code (for institutional)

Adjudication

Payment determination:

  • status (paid, denied, pending)
  • allowed_amount, paid_amount
  • deductible, copay, coinsurance
  • adjustment_reason_codes

Plan

Benefit plan configuration:

  • plan_type (HMO, PPO, etc.)
  • deductibles, OOP maximums
  • copays, coinsurance rates
  • network requirements

Accumulator

Year-to-date cost sharing:

  • deductible_applied vs deductible_limit
  • oop_applied vs oop_limit
  • Family vs individual tracking

See ../../references/data-models.md for complete schemas.

Adjudication Logic

Payment Calculation

1. Verify eligibility (coverage active on service date)
2. Check network status (in-network vs OON)
3. Determine allowed amount (fee schedule or % of charges)
4. Apply cost sharing:
   a. Deductible (if not met)
   b. Copay (fixed amount)
   c. Coinsurance (% of allowed after deductible)
5. Calculate paid amount = allowed - member responsibility
6. Update accumulators

Common Denial Reasons

CodeDescriptionCohort
CO-4Procedure code inconsistent with modifierInvalid modifier
CO-45Charge exceeds fee scheduleUCR violation
CO-50Non-covered servicesBenefit exclusion
CO-96Non-covered charge(s)Out of network, no OON benefit
CO-97Benefit included in another serviceBundling
PR-1Deductible amountMember responsibility
PR-2Coinsurance amountMember responsibility
PR-3Copay amountMember responsibility

Output Formats

FormatRequestUse Case
JSONdefaultAPI testing
X12 834"as 834", "X12 enrollment"Enrollment file
X12 270"as 270", "eligibility inquiry"Eligibility request
X12 271"as 271", "eligibility response"Eligibility response
X12 837P"as 837P", "X12 professional"Claims submission
X12 837I"as 837I", "X12 institutional"Facility claims
X12 835"as 835", "remittance"Payment posting
CSV"as CSV"Analytics
SQL"as SQL"Database loading

See ../../formats/ for transformation skills.

Examples

Example 1: Paid Office Visit

Request: "Generate a paid claim for a 99214 office visit for hypertension"

{
  "member": {
    "member_id": "MEM001234",
    "name": { "given_name": "Sarah", "family_name": "Johnson" },
    "birth_date": "1978-06-15",
    "gender": "F",
    "plan_code": "PPO-GOLD",
    "coverage_start": "2024-01-01"
  },
  "claim": {
    "claim_id": "CLM20250115000001",
    "claim_type": "PROFESSIONAL",
    "member_id": "MEM001234",
    "provider_npi": "1234567890",
    "service_date": "2025-01-15",
    "place_of_service": "11",
    "principal_diagnosis": "I10",
    "claim_lines": [
      {
        "line_number": 1,
        "procedure_code": "99214",
        "charge_amount": 175.00,
        "units": 1,
        "diagnosis_pointers": [1]
      }
    ]
  },
  "adjudication": {
    "status": "paid",
    "allowed_amount": 125.00,
    "deductible": 0.00,
    "copay": 25.00,
    "coinsurance": 0.00,
    "paid_amount": 100.00,
    "patient_responsibility": 25.00
  }
}

Example 2: Denied Claim (Prior Auth Required)

Request: "Generate a denied claim for MRI without prior authorization"

{
  "claim": {
    "claim_id": "CLM20250115000002",
    "claim_type": "PROFESSIONAL",
    "service_date": "2025-01-15",
    "place_of_service": "22",
    "principal_diagnosis": "M54.5",
    "claim_lines": [
      {
        "line_number": 1,
        "procedure_code": "72148",
        "charge_amount": 1500.00,
        "units": 1
      }
    ]
  },
  "adjudication": {
    "status": "denied",
    "denial_reason": "CO-15",
    "denial_message": "Prior authorization required",
    "allowed_amount": 0.00,
    "paid_amount": 0.00
  }
}

Example 3: Partial Payment (Deductible Applied)

Request: "Generate a claim where deductible applies"

{
  "accumulator_before": {
    "deductible_applied": 200.00,
    "deductible_limit": 500.00,
    "oop_applied": 200.00,
    "oop_limit": 3000.00
  },
  "claim": {
    "claim_id": "CLM20250115000003",
    "procedure_code": "99214",
    "charge_amount": 175.00
  },
  "adjudication": {
    "status": "paid",
    "allowed_amount": 125.00,
    "deductible": 125.00,
    "copay": 0.00,
    "paid_amount": 0.00,
    "patient_responsibility": 125.00
  },
  "accumulator_after": {
    "deductible_applied": 325.00,
    "deductible_limit": 500.00,
    "oop_applied": 325.00,
    "oop_limit": 3000.00
  }
}

Example 4: Oncology Infusion Claim

Request: "Generate a facility claim for chemotherapy infusion"

{
  "claim": {
    "claim_id": "CLM20250115000004",
    "claim_type": "INSTITUTIONAL",
    "member_id": "MEM005678",
    "provider_npi": "1234567890",
    "facility_type": "outpatient_hospital",
    "service_date": "2025-01-15",
    "principal_diagnosis": "C50.911",
    "diagnosis_description": "Malignant neoplasm of right female breast",
    "claim_lines": [
      {
        "line_number": 1,
        "revenue_code": "0335",
        "procedure_code": "96413",
        "hcpcs_code": "J9267",
        "description": "Paclitaxel injection, 1mg",
        "units": 175,
        "charge_amount": 3500.00
      },
      {
        "line_number": 2,
        "revenue_code": "0335",
        "procedure_code": "96415",
        "description": "Chemotherapy infusion, additional hour",
        "units": 2,
        "charge_amount": 400.00
      },
      {
        "line_number": 3,
        "revenue_code": "0250",
        "procedure_code": "96360",
        "hcpcs_code": "J2405",
        "description": "Ondansetron injection (antiemetic)",
        "units": 8,
        "charge_amount": 120.00
      }
    ]
  },
  "prior_auth": {
    "auth_number": "PA20250101-12345",
    "status": "approved",
    "approved_units": 6,
    "approved_through": "2025-06-30"
  },
  "adjudication": {
    "status": "paid",
    "allowed_amount": 3200.00,
    "deductible": 0.00,
    "coinsurance": 640.00,
    "paid_amount": 2560.00,
    "patient_responsibility": 640.00
  }
}

Key oncology claim elements:

  • J-codes for injectable drugs (J9267 = paclitaxel)
  • Revenue code 0335 (chemotherapy)
  • Prior authorization reference
  • Multi-line claim (drug + administration + supportive care)

Related Skills

MemberSim Cohorts

Cross-Product: PatientSim (Clinical)

MemberSim claims correspond to PatientSim clinical encounters:

MemberSim SkillPatientSim CohortsIntegration
professional-claims.mdOffice visits, consultsMatch E&M codes to encounter complexity
facility-claims.mdInpatient, ED, surgeryMatch DRG to admission diagnoses
prior-authorization.mdElective proceduresPA approved → procedure scheduled
behavioral-health.mdPsychiatric careMatch visit types and diagnoses

PatientSim Cohort Links:

Integration Pattern: Generate clinical encounter in PatientSim first, then use MemberSim to create corresponding claims with matching service dates, diagnosis codes, and procedures.

Cross-Product: RxMemberSim (Pharmacy)

Medical and pharmacy benefits are often coordinated:

MemberSim SkillRxMemberSim SkillIntegration
plan-benefits.mdformulary-management.mdCoordinated benefit design
accumulator-tracking.mdrx-accumulator.mdCombined deductible/OOP
prior-authorization.mdrx-prior-auth.mdMedical vs. pharmacy PA
enrollment-eligibility.mdrx-enrollment.mdSynchronized coverage

Integration Pattern: For integrated medical+Rx benefits, ensure accumulators are synchronized and coverage dates match. Some specialty drugs are covered under medical benefit (infused) vs. pharmacy benefit (oral).

Cross-Product: PopulationSim (Demographics & SDOH) - v2.0 Data Integration

PopulationSim v2.0 provides embedded real-world data for actuarially realistic member generation. When a geography is specified, MemberSim uses actual CDC PLACES, SVI, and ADI data to ground demographics, health patterns, and expected utilization.

Data-Driven Generation Pattern

Step 1: Look up real population data

# For Maricopa County, AZ (FIPS: 04013)
Read from: skills/populationsim/data/county/places_county_2024.csv
→ DIABETES_CrudePrev: 10.2%
→ OBESITY_CrudePrev: 29.8%
→ BPHIGH_CrudePrev: 29.1%
→ ACCESS2_CrudePrev: 12.8% (uninsured rate)

Read from: skills/populationsim/data/county/svi_county_2022.csv
→ RPL_THEMES (overall SVI): 0.52
→ EP_POV150: 18.1% (below 150% poverty)
→ EP_AGE65: 17.2% (65+ population)

Step 2: Apply rates to member generation

{
  "cohort_parameters": {
    "geography": { "county_fips": "04013", "name": "Maricopa County, AZ" },
    "expected_prevalence": {
      "diabetes": 0.102,
      "obesity": 0.298,
      "hypertension": 0.291
    },
    "demographic_context": {
      "age_65_plus": 0.172,
      "poverty_rate": 0.181
    },
    "data_provenance": {
      "source": "CDC_PLACES_2024",
      "data_year": 2022
    }
  }
}

Step 3: Generate members matching real rates

  • Age distribution mirrors county demographics
  • Expected chronic conditions match PLACES prevalence
  • Risk scores (HCC) calibrated to population health
  • Plan tier selection reflects income distribution

Embedded Data Sources

SourceFileUse in MemberSim
CDC PLACES Countypopulationsim/data/county/places_county_2024.csvExpected utilization rates, risk adjustment
CDC PLACES Tractpopulationsim/data/tract/places_tract_2024.csvNeighborhood-level health patterns
SVI Countypopulationsim/data/county/svi_county_2022.csvSDOH factors, plan selection patterns
SVI Tractpopulationsim/data/tract/svi_tract_2022.csvTract-level vulnerability
ADI Block Grouppopulationsim/data/block_group/adi_blockgroup_2023.csvDeprivation-based adherence modeling

PopulationSim Integration Skills

PopulationSim SkillMemberSim Application
data-lookup.mdExact prevalence rates for risk adjustment
county-profile.mdService area demographics, health patterns
svi-analysis.mdSocial vulnerability → plan tier, adherence
adi-analysis.mdArea deprivation → utilization patterns
cohort-specification.mdData-driven member panel definition

Example: Data-Grounded Medicare Advantage Panel

Request: "Generate 1,000 members for a Medicare Advantage plan in Maricopa County, AZ"

Data Lookup:

From places_county_2024.csv (FIPS 04013):
  DIABETES_CrudePrev: 10.2%
  CHD_CrudePrev: 6.1%
  COPD_CrudePrev: 6.8%
  KIDNEY_CrudePrev: 2.9%

From svi_county_2022.csv (FIPS 04013):
  RPL_THEMES: 0.52 (moderate vulnerability)
  EP_AGE65: 17.2%
  EP_DISABL: 13.1%

Applied to Generation:

  • ~17% of members are 65+ (matches county rate)
  • ~10% have diabetes diagnosis (expected chronic conditions)
  • ~6% have CHD (drives HCC scoring)
  • SVI 0.52 → moderate plan selection diversity
  • Output includes provenance tracking

Output with Provenance:

{
  "member_panel": {
    "total_members": 1000,
    "geography": "Maricopa County, AZ (04013)",
    "generation_context": {
      "data_sources": ["CDC_PLACES_2024", "CDC_SVI_2022"],
      "rates_applied": {
        "diabetes": 0.102,
        "chd": 0.061,
        "age_65_plus": 0.172
      }
    }
  }
}

Key Principle: When geography is specified, always ground member generation in real PopulationSim data. This enables actuarially realistic synthetic member panels for testing claims systems, risk adjustment, and care management.

Cross-Product: NetworkSim (Provider Networks)

NetworkSim provides network context for claims processing:

MemberSim NeedNetworkSim SkillIntegration
Provider network statusnetwork-for-member.mdIn-network vs OON determination
Benefit cost sharingbenefit-for-claim.mdCopay, coinsurance, deductible
Network configurationsynthetic-network.mdHMO/PPO/tiered structure

Integration Pattern: Use NetworkSim to determine network status before adjudicating claims. Network type (HMO/PPO) affects whether out-of-network claims are covered and at what cost share.

Cross-Product: TrialSim (Clinical Trials)

Members may participate in clinical trials with claims integration:

MemberSim ContextTrialSim IntegrationClaims Impact
Specialty drug coverageTrial drug provided freeReduced Rx claims during trial
Standard of careSOC claims continueNormal claim adjudication
Trial-related AEsMay generate medical claimsAE → ED/inpatient claims

Integration Pattern: When a member enrolls in a trial, standard of care claims continue through MemberSim while trial-specific treatments are tracked in TrialSim. Trial-related adverse events may generate claims.

Output Formats

Reference Data


Generative Framework Integration

MemberSim integrates with the Generative Framework for specification-driven generation at scale.

Profile-Driven Generation

Use profile specifications to generate member populations:

"Use the commercial healthy profile to generate 500 members"

The Profile Executor will:

  1. Sample demographics from profile distributions
  2. Generate coverage attributes (plan type, benefits)
  3. Create accumulator records
  4. Link to NetworkSim providers for PCP assignment

Journey-Driven Generation

Attach journey specifications to create claims over time:

"Add the new member onboarding journey to each member"

The Journey Executor will:

  1. Generate enrollment events
  2. Create initial utilization claims
  3. Track accumulator progression
  4. Apply branching for engagement patterns

Cross-Domain Sync

When generating across products, MemberSim entities are automatically linked:

MemberSim EntityLinks To
MemberPatientSim Patient (via SSN)
ClaimPatientSim Encounter
AuthorizationPatientSim Referral
Rx ClaimRxMemberSim Fill

See: ../generation/executors/cross-domain-sync.md