Skip to content

Matching Parameters Reference

Auto-generated from config/matching/parameters/<domain>.yaml. Do not edit by hand — run python scripts/generate_matching_parameters_reference.py after a registry change.

The registry is the source of truth for the 147-parameter matching algorithm spec (ADR-0026). This page summarizes its current state — what is active, what is seeded but dormant, what is documented but not yet wired.

Status summary

Status Count Meaning
active 14 Engine reads the data and weights it into the per-domain score.
seeded 87 Data exists in Postgres or Neo4j; registry doesn't consume yet. Graduates to active after coverage threshold + normalizer wiring.
unseeded 31 Schema exists, no data populated. Awaiting ingest / admin form.
not_implemented 15 Spec / patent placeholder. No data, no schema, no engine path.
Total 147

Per-domain breakdown

Domain Total Active Seeded Unseeded Not implemented
clinical_context 12 1 8 2 1
provider_capability 13 2 8 2 1
outcomes_evidence 12 3 6 2 1
cost_financial 10 1 5 3 1
logistics_travel 13 1 9 2 1
visa_regulatory 16 0 10 3 3
cultural_linguistic 10 3 4 2 1
patient_preferences 12 3 5 3 1
risk_safety 14 0 9 3 2
post_op_continuity 12 0 8 3 1
data_quality 11 0 7 3 1
trust_reputation 12 0 8 3 1

clinical_context

ID Status Weight Source Path Patent Description
procedure_specialty_match active 0.450 postgres provider.specialties Overlap between requested procedures (matching input) and the provider's declared specialty list. Includes the proced...
icd10_subspecialty_match seeded 0.100 neo4j (Provider)-[:OFFERS]->(Procedure)-[:TREATS]->(Condition) ICD-10 → subspecialty graph traversal. Provider's offerings link via Procedure to Conditions; this measures how many ...
condition_severity_alignment seeded 0.060 neo4j (Provider)-[:HAS_CASE_VOLUME]->(Severity) Whether the provider routinely handles the patient's severity tier (low / moderate / severe / critical).
comorbidity_capability seeded 0.050 neo4j (Provider)-[:OFFERS]->(Procedure {handles_comorbidities: bool}) Provider's documented ability to manage common comorbidities alongside the primary procedure.
case_volume_per_procedure seeded 0.060 neo4j (Provider)-[:OFFERS {annual_cases}]->(Procedure) Annual case volume for the specific requested procedure.
subspecialist_team_size seeded 0.050 postgres provider.bed_count Number of subspecialist doctors on staff for the requested procedure's specialty. Proxied today by bed_count; will sw...
rare_condition_capability seeded 0.040 neo4j (Provider)-[:HAS_CAPABILITY]->(RareCondition) Provider's track record with rare / orphan conditions.
pediatric_geriatric_capability seeded 0.040 neo4j (Provider)-[:HAS_CAPABILITY {age_group}]->() Pediatric ICU, geriatric rehabilitation, etc.
clinical_trial_access seeded 0.040 neo4j (Provider)-[:RUNS]->(ClinicalTrial) Whether the provider runs clinical trials relevant to the patient's diagnosis (oncology, rare disease, advanced cardi...
emergency_capacity unseeded 0.040 postgres provider.icu_beds ICU + emergency department capacity — relevant for high-risk procedures and for patients flagged by the risk assessor.
telemedicine_followup_capability unseeded 0.040 postgres provider.cultural_support Whether the provider supports post-op telemedicine for patients returning home after a cross-border procedure.
procedure_innovation_index not_implemented 0.030 api external.research_index_api Composite score from PubMed + ClinicalTrials.gov measuring how cutting-edge the provider's approach is for the reques...

provider_capability

ID Status Weight Source Path Patent Description
jci_accreditation active 0.200 postgres provider.accreditations JCI / NABH / TEMOS / ACHSI accreditation. Highest-tier credentials score 1.0; mid-tier 0.85; the rest get the default...
international_patient_volume active 0.150 postgres provider.annual_international_patients Annual international-patient throughput. Acts as a confidence proxy for cross-border care infrastructure (visa suppor...
bed_count seeded 0.100 postgres provider.bed_count Total bed count. Mid-size (200-700) hospitals score highest for most international cases.
operating_theaters seeded 0.070 postgres provider.operating_theaters Number of operating theaters available.
icu_beds seeded 0.070 postgres provider.icu_beds ICU bed count — surrogate for high-acuity capability.
countries_served seeded 0.060 postgres provider.countries_served Distinct source countries the provider has served.
doctor_count seeded 0.070 neo4j (Provider)-[:EMPLOYS]->(Doctor) Doctor count via the Phase-0 doctor-graph projection. Once the projection worker (Phase 2) is live and provider.docto...
subspecialty_breadth seeded 0.060 neo4j (Provider)-[:EMPLOYS]->(Doctor) Distinct subspecialties represented by the on-staff doctors.
research_publication_volume seeded 0.050 neo4j (Provider)-[:HAS_DOCTOR]->(Doctor) Aggregate publication count for the provider's clinical staff. Currently sourced from doctor profiles imported via do...
technology_score seeded 0.050 postgres provider.cultural_support Composite of robotic surgery, advanced imaging (3T MRI, PET), and EMR sophistication. Sourced from provider.cultural_...
nurse_to_bed_ratio unseeded 0.050 postgres provider.cultural_support Nurse staffing ratio per bed.
medical_tourism_team_size unseeded 0.040 postgres provider.cultural_support Dedicated international-patient services team headcount.
peer_referral_volume not_implemented 0.030 neo4j (Provider)-[:RECEIVES_REFERRAL_FROM]->(Provider) Inbound referrals from peer institutions — strong indicator of reputation among other providers in the same specialty.

outcomes_evidence

ID Status Weight Source Path Patent Description
outcome_score active 0.300 postgres provider.outcome_score Composite outcome score — success rate, complication rate, readmission rate. Already in [0, 1]; legacy default fill o...
patient_satisfaction active 0.200 postgres provider.patient_satisfaction Average satisfaction rating from verified patients on a 0-5 scale. Normalized to [0, 1] by /5.
total_reviews active 0.100 postgres provider.total_reviews Number of verified reviews. Acts as confidence amplifier for the satisfaction score — providers with <5 reviews contr...
procedure_specific_success_rate seeded 0.100 neo4j (Provider)-[:OFFERS]->(Procedure) Success rate specific to the requested procedure (rather than the provider-wide outcome_score). Sourced from Neo4j OF...
complication_rate seeded 0.060 neo4j (Provider)-[:OFFERS]->(Procedure) 30-day complication rate per procedure.
readmission_rate seeded 0.060 neo4j (Provider)-[:OFFERS]->(Procedure) 30-day unplanned readmission rate per procedure.
mortality_index seeded 0.050 neo4j (Provider)-[:OFFERS]->(Procedure) Observed-to-expected mortality ratio for the procedure. Lower is better; normalizer inverts the raw value.
similar_patient_outcomes seeded 0.060 neo4j (Patient)-[:COMPLETED_JOURNEY_AT]->(Provider) Outcomes among demographically + clinically similar past patients. The data flywheel — depends on COMPLETED_JOURNEY_A...
average_length_of_stay seeded 0.030 neo4j (Provider)-[:OFFERS]->(Procedure) Mean post-procedure inpatient stay duration.
pain_management_score unseeded 0.020 postgres provider.cultural_support Patient-reported pain control quality post-procedure.
pro_score unseeded 0.010 postgres provider.cultural_support Patient Reported Outcome (PRO) measures (PROMIS, SF-36).
independent_audit_grade not_implemented 0.010 api external.audit_index_api Third-party audit grade (Leapfrog, CMS Star).

cost_financial

ID Status Weight Source Path Patent Description
cost_index active 0.400 postgres provider.cost_index Relative cost multiplier vs market average (0.3 = very cheap, 3.0 = very expensive). Normalized to [0, 1] with invers...
procedure_specific_cost seeded 0.200 postgres provider.procedure_costs Per-procedure cost range from provider.procedure_costs JSONB. Used by the engine when the requested procedure has a p...
graph_offers_cost_range seeded 0.100 neo4j (Provider)-[:OFFERS {cost_min_cents, cost_max_cents}]->(Procedure) Authoritative cost range from the OFFERS edge. Replaces procedure_specific_cost when present; this is what the GraphE...
incremental_cost_ratio seeded 0.100 computed cost_service.icr_for_provider Curaway-mediated cost vs estimated domestic equivalent for the patient's source country. Patent-relevant — frames cro...
insurance_acceptance seeded 0.060 postgres provider.cultural_support Whether the provider accepts the patient's insurance / direct-bill arrangement. Sourced from cultural_support["insura...
payment_plan_options seeded 0.050 postgres provider.cultural_support Availability of installment / financing programs.
bundled_pricing unseeded 0.040 postgres provider.cultural_support All-inclusive bundled pricing (procedure + room + meds + recovery).
pricing_transparency_score unseeded 0.030 postgres provider.cultural_support Quality of advance price disclosure to patients.
forex_protection unseeded 0.010 postgres provider.cultural_support Locked-in exchange rates / multi-currency billing.
catastrophic_coverage not_implemented 0.010 postgres provider.cultural_support Coverage cap on complications / extended stays.

logistics_travel

ID Status Weight Source Path Patent Description
country_corridor active 0.400 postgres provider.country_code Patient-source-country to provider-country corridor lookup. Hard- coded corridors today (USA→IND, GBR→TUR, ARE→IND, e...
flight_connectivity seeded 0.100 yaml config.reference.flight_corridors Number of weekly direct flights from patient hubs.
timezone_delta seeded 0.060 postgres provider.timezone Hours of timezone offset from patient's home — affects family video calls.
airport_proximity seeded 0.060 postgres provider.travel_info Drive time from international airport to provider in minutes.
ground_transport_assistance seeded 0.060 postgres provider.travel_info Provider-arranged airport pickup, hotel transfer.
accommodation_partnerships seeded 0.060 postgres provider.travel_info Discount partnerships with nearby hotels / serviced apartments.
caregiver_accommodation seeded 0.050 postgres provider.cultural_support On-campus / partnered family-stay options.
long_stay_visa_support seeded 0.050 postgres provider.cultural_support Provider letter / paperwork for extended treatment visas.
climate_compatibility seeded 0.040 yaml config.reference.climate Climate match for patients with respiratory / dermatologic sensitivities.
aqi_air_quality seeded 0.040 yaml config.reference.aqi City-level AQI — relevant for cardiac / pulmonary patients.
telemedicine_pre_consult unseeded 0.040 postgres provider.cultural_support Pre-arrival video consult to reduce mistargeted travel.
travel_concierge_quality unseeded 0.020 postgres provider.cultural_support Dedicated international-patient concierge service.
medical_evacuation_partnerships not_implemented 0.020 postgres provider.cultural_support Air-ambulance partnerships for high-risk patients.

visa_regulatory

ID Status Weight Source Path Patent Description
medical_visa_availability seeded 0.200 yaml config.reference.visa_corridors Whether a medical visa exists for the patient-source / provider country pair. Today reads from a hardcoded corridor m...
visa_processing_time_days seeded 0.100 yaml config.reference.visa_corridors Mean days to issuance for the relevant medical visa.
visa_extension_friendliness seeded 0.080 yaml config.reference.visa_corridors Ease of extending if recovery runs longer than expected.
data_protection_equivalency seeded 0.100 yaml config.reference.privacy_regimes Provider-country GDPR / HIPAA equivalency for patient data residency.
medical_records_portability seeded 0.050 postgres provider.cultural_support Provider's commitment to FHIR-compatible records export.
malpractice_legal_recourse seeded 0.080 yaml config.reference.malpractice_regimes Practical legal recourse available to international patients.
tax_repatriation seeded 0.040 yaml config.reference.tax_regimes Tax-deductibility / reimbursement under home-country regime.
companion_visa_options seeded 0.050 yaml config.reference.visa_corridors Visa options for accompanying family / caregiver.
home_country_pre_authorization seeded 0.050 postgres provider.cultural_support Provider is on home insurer's pre-authorized list.
telemedicine_legality seeded 0.050 yaml config.reference.telemedicine_regimes Cross-border telemedicine legal status for follow-up.
clinical_data_sharing_agreements unseeded 0.040 postgres provider.cultural_support Provider's signed BAA / DPA arrangements.
organ_transplant_compatibility unseeded 0.030 yaml config.reference.organ_transplant_regimes Cross-border donor / recipient legality.
stem_cell_therapy_legality unseeded 0.020 yaml config.reference.therapy_regimes Legal status of advanced therapies in destination.
medical_device_compatibility not_implemented 0.040 api external.device_registry_api Implant / device regulatory equivalency for follow-up servicing.
insurance_export_compatibility not_implemented 0.030 api external.insurance_registry_api Whether home insurance covers the destination provider type.
travel_advisory_status not_implemented 0.040 api external.travel_advisory_api Real-time travel-advisory level for destination country.

cultural_linguistic

ID Status Weight Source Path Patent Description
language_concordance active 0.400 postgres provider.languages_supported Overlap between patient's spoken languages and provider's supported languages. English assumed available if no overla...
interpreter_quality seeded 0.150 postgres provider.language_services Quality and availability of medical-grade interpreters. Sourced from language_services["interpreter"] when populated.
doctor_language_match seeded 0.120 neo4j (Provider)-[:EMPLOYS]->(Doctor) Doctor-level language match (vs hospital-level languages_supported). Currently sourced from doctor.languages once Pha...
cultural_accommodations active 0.100 postgres provider.cultural_accommodations Halal food, prayer room, female staff availability. Provider's raw accommodation set membership — independent of any ...
cuisine_familiarity active 0.080 postgres provider.dietary_options Familiar cuisine availability for long-stay patients. Independent of patient dietary requirements — measures the brea...
regional_dialect_support seeded 0.050 postgres provider.language_services Granular dialect support beyond top-level language code (e.g. Egyptian vs Gulf Arabic, Mandarin vs Cantonese).
same_origin_doctor_team seeded 0.040 neo4j (Provider)-[:EMPLOYS]->(Doctor) Doctors who share the patient's country of origin.
cultural_concierge_dedicated unseeded 0.030 postgres provider.cultural_support Dedicated cultural-fit concierge per patient profile.
religious_holidays_accommodation unseeded 0.020 postgres provider.cultural_support Sensitivity to patient's religious calendar in scheduling.
bilingual_documentation not_implemented 0.010 postgres provider.cultural_support Discharge summaries / consents in patient's preferred language.

patient_preferences

ID Status Weight Source Path Patent Description
dietary_match active 0.250 postgres provider.dietary_options Overlap between patient stated dietary requirements and provider dietary options. Halal, kosher, vegetarian, vegan, etc.
gender_preference_accommodation active 0.200 postgres provider.cultural_accommodations Whether the provider can accommodate a patient-stated doctor / staff gender preference (e.g. female_staff_available).
religious_accommodations active 0.150 postgres provider.cultural_accommodations Provider has prayer room, religious dietary observance, or chaplaincy services matching the patient's stated needs.
doctor_age_seniority_preference seeded 0.070 neo4j (Doctor) Patient prefers senior / experienced doctor.
hospital_size_preference seeded 0.060 postgres provider.bed_count Some patients prefer boutique vs large-system care.
traditional_medicine_integration seeded 0.060 postgres provider.cultural_support Ayurvedic, TCM, naturopathic alongside conventional care.
privacy_vip_options seeded 0.050 postgres provider.cultural_support Private wing / VIP suite availability.
companion_room_availability seeded 0.050 postgres provider.cultural_support Family companion can stay in patient room overnight.
pediatric_play_facilities unseeded 0.040 postgres provider.cultural_support Play / education facilities for pediatric patients.
visitor_policy_flexibility unseeded 0.030 postgres provider.cultural_support Flexibility on visiting hours / number of visitors.
smoking_alcohol_policy unseeded 0.020 postgres provider.cultural_support Alignment with patient's lifestyle expectations.
spiritual_counselor_availability not_implemented 0.020 postgres provider.cultural_support On-staff spiritual counselor / chaplain availability.

risk_safety

ID Status Weight Source Path Patent Description
hospital_acquired_infection_rate seeded 0.180 neo4j (Provider)-[:HAS_METRIC]->() Hospital-acquired infection rate.
surgical_site_infection_rate seeded 0.120 neo4j (Provider)-[:HAS_METRIC]->() Surgical-site infection rate.
never_event_history seeded 0.100 neo4j (Provider)-[:HAS_INCIDENT]->(NeverEvent) Wrong-site / wrong-procedure historical incidents.
blood_supply_safety seeded 0.080 postgres provider.cultural_support Blood-bank screening protocols, NAT testing.
medication_error_rate seeded 0.080 neo4j (Provider)-[:HAS_METRIC]->() Adverse drug event / medication error rate.
thromboembolism_prevention_protocols seeded 0.070 postgres provider.cultural_support VTE prophylaxis protocols, especially for travel-recovery patients.
rapid_response_team seeded 0.070 postgres provider.cultural_support 24x7 rapid-response / code-blue team.
anesthesia_safety_score seeded 0.060 postgres provider.cultural_support Anesthesia adverse-event rate / accreditation tier.
emergency_department_capability seeded 0.050 postgres provider.cultural_support Trauma level / 24x7 ED capability.
critical_care_outreach unseeded 0.050 postgres provider.cultural_support Step-down / outreach beyond ICU walls.
patient_safety_culture_score unseeded 0.050 postgres provider.cultural_support Survey-based patient-safety culture index.
handoff_communication_quality unseeded 0.040 postgres provider.cultural_support Quality of clinician-to-clinician shift handoffs.
air_borne_isolation_capability not_implemented 0.030 postgres provider.cultural_support Negative-pressure rooms for infectious-disease patients.
cyber_security_breach_history not_implemented 0.020 api external.breach_disclosure_api Public-disclosure history of patient-data breaches.

post_op_continuity

ID Status Weight Source Path Patent Description
telemedicine_followup_program seeded 0.200 postgres provider.cultural_support Structured remote follow-up post-discharge.
home_country_clinician_partnerships seeded 0.150 postgres provider.cultural_support Vetted local clinicians in patient source country for handoff.
discharge_summary_quality seeded 0.100 postgres provider.cultural_support FHIR-compatible structured discharge documentation.
medication_handover_quality seeded 0.100 postgres provider.cultural_support Reconciled medication list, equivalency mapping for home-country pharmacy.
rehabilitation_protocols seeded 0.100 postgres provider.cultural_support Detailed home-rehab protocols and milestones.
complication_escalation_path seeded 0.080 postgres provider.cultural_support Clear escalation path if complications arise post-return.
physical_therapy_referral_network seeded 0.060 postgres provider.cultural_support PT / OT referral partnerships in patient home country.
psychological_support_continuity seeded 0.050 postgres provider.cultural_support Mental-health follow-up for high-impact procedures.
medical_records_export_quality unseeded 0.060 postgres provider.cultural_support Quality of patient-facing medical records export at discharge.
patient_portal_post_discharge unseeded 0.040 postgres provider.cultural_support Continued patient-portal access post-return.
caregiver_education_quality unseeded 0.030 postgres provider.cultural_support Pre-discharge education for accompanying caregiver.
long_term_outcome_tracking not_implemented 0.030 postgres provider.cultural_support Active tracking of patient outcomes >1 year post-procedure.

data_quality

ID Status Weight Source Path Patent Description
profile_completeness seeded 0.300 postgres provider.completeness_score Provider profile completeness 0-1 score. Will graduate to active once Phase 1 engine renormalization is verified — un...
profile_completeness_tier seeded 0.100 postgres provider.completeness_tier Tier label (basic / verified / enhanced / showcase).
is_verified seeded 0.180 postgres provider.is_verified Provider has been manually verified by Curaway team.
is_active seeded 0.100 postgres provider.is_active Provider is currently accepting patients.
data_freshness seeded 0.100 postgres provider.updated_at Recency of last profile update.
outcome_data_freshness seeded 0.050 neo4j (Provider)-[:HAS_METRIC]->() Recency of clinical-outcome metrics.
cost_data_freshness seeded 0.050 neo4j (Provider)-[:OFFERS]->(Procedure) Recency of procedure cost data.
third_party_data_corroboration unseeded 0.050 api external.directory_apis Cross-reference with public directories / accreditor lists.
photo_video_assets_freshness unseeded 0.040 postgres provider.hero_image_url Recency of marketing assets (proxy for active maintenance).
clinician_roster_freshness unseeded 0.020 neo4j (Provider)-[:EMPLOYS]->(Doctor) Recency of doctor roster updates.
api_integration_completeness not_implemented 0.010 postgres provider.cultural_support Whether the provider exposes a structured slot / availability API.

trust_reputation

ID Status Weight Source Path Patent Description
completed_journeys seeded 0.220 neo4j (Patient)-[:COMPLETED_JOURNEY_AT]->(Provider) Count of past Curaway-mediated patients who completed their journey at this provider. Core data-flywheel signal — acc...
net_promoter_score seeded 0.120 postgres provider.cultural_support NPS from Curaway-mediated patients.
independent_review_score seeded 0.120 api external.review_aggregator_api Aggregated independent-platform review score (Trustpilot, etc).
media_mentions_score seeded 0.080 api external.media_index_api Quality and recency of medical-press mentions.
peer_recognition_awards seeded 0.080 postgres provider.cultural_support Peer-recognition awards in the relevant specialty.
doctor_individual_reputation seeded 0.100 neo4j (Doctor) Doctor-level reputation aggregated to provider.
governance_transparency seeded 0.060 postgres provider.cultural_support Transparency of leadership / governance structure.
financial_stability_score seeded 0.060 api external.financial_index_api Provider's financial stability — reduces risk of mid-care closure.
patient_advocacy_presence unseeded 0.050 postgres provider.cultural_support Independent patient advocate / ombuds presence.
complaint_resolution_quality unseeded 0.050 postgres provider.cultural_support Average time and quality of complaint resolution.
malpractice_claim_rate unseeded 0.040 api external.malpractice_index_api Public malpractice-claim rate per case volume.
social_media_sentiment not_implemented 0.020 api external.social_sentiment_api Social-media sentiment analysis on provider mentions.

Schema

Each parameter in the YAML files follows this shape:

- id: jci_accreditation              # globally unique snake_case id
  domain: provider_capability        # one of 12 spec domains
  domain_weight_share: 0.20          # share within domain (sums to 1.0 per domain)
  source: postgres                   # postgres | neo4j | yaml | computed | api
  source_path: provider.accreditations  # ORM attribute / Cypher pattern / YAML key
  status: active                     # active | seeded | unseeded | not_implemented
  patent_claim: true                 # included in the patent novelty disclosure
  description: >-
    Free-text rationale for reviewers and clinical advisor.
  normalizer:                        # required for status: active
    kind: set_membership             # range | boolean | set_membership | scalar | categorical
    score_map: {JCI: 1.0, NABH: 0.85}
    default: 0.3

See app/services/matching/registry.py for the loader and validation rules. The CI guard test tests/test_matching_registry.py fails any PR that breaks the schema, leaves a domain weight sum off 1.0, or points a source_path at a missing ORM attribute.