SNDS (Systeme National des Donnees de Sante)
France's nationwide health-insurance claims database covering effectively the entire French population (~66 million) - all reimbursed healthcare encounters across public and private care - linkable to hospital discharge summaries (PMSI) and cause-of-death records, with near-complete longitudinal capture from birth or immigration onward.
On this page
The SNDS (formerly SNIIRAM) is one of the world's most complete claims systems: because French statutory insurance covers everyone, it captures virtually all reimbursed care for the whole population, linked to hospitalization detail and deaths. It enables whole-population drug-safety studies, rare-event detection, and life-course analyses that sampling-based sources cannot support.
SNDS
(Système National des Données de Santé, formerly SNIIRAM) consolidates France's nationwide health-insurance claims — covering essentially the entire resident population (~66 million) — with the PMSI hospital-discharge database and cause-of-death records. Because statutory insurance is universal, every reimbursed physician visit, dispensed prescription (with dispensing dates), imaging study, lab test, and device appears; private-practice and hospital care both capture, making coverage near-total rather than sampled.
Why it matters for RWE
Whole-population capture removes the selection questions inherent in insured-population databases: denominators approximate the true population, enabling incidence rates directly comparable to vital statistics, ultra-rare-event safety surveillance, complete life-course exposure histories, and immigrant/migrant cohort construction impossible elsewhere. France's long history of using these data for public-health regulation (pioneered by ANSM and CépiDc studies) gives an unusually rich methods literature.
Operational characteristics
- Beneficiary files: demographic and registration spans per person; anonymized via permanent pseudonymized identifiers enabling cross-file linkage.
- Care-delivery detail: reimbursed acts coded in CCAM (procedures), prescriptions with dispensing dates and quantity; diagnosis codes on claims are sparse (long-term-disease registrations carry ICD-10), so chronic-condition identification leans heavily on the ALD (affection de longue durée) registry and medication proxies.
- PMSI: rich hospital ICD-10-coded diagnoses/procedures across public/private hospitals — the primary outcome source.
- Access: governed by the Health Data Hub / CNAM processes; project-based approval, remote secure environments.
Common pitfalls
- Sparse outpatient diagnoses: unlike UK GP data, ambulatory diagnoses appear mainly as reimbursement codes and ALD registrations; phenotype algorithms must be medication/act-based more than code-based.
- OTC and non-reimbursed items invisible: low-cost generics fully reimbursed, but some products escape.
- ALD registration lag: registering a long-term illness triggers 100% coverage but administrative timing introduces delay relative to clinical onset.
- Cross-border care missing: treatment outside France does not appear.
Pros, cons, and trade-offs
- vs CPRD: total-population claims completeness vs primary-care clinical depth (BMI, smoking, labs).
- vs US claims: true population denominator vs insured-subset selection; no cost-to-payer granularity comparable to US paid amounts.
- Trade-off: breadth vs depth — SNDS maximizes completeness of utilization; clinical nuance requires PMSI linkage and creative algorithms.
When NOT to use
Questions requiring ambulatory clinical measurements without registry linkage; non-French transportability claims without adjustment; cost-effectiveness needing itemized unit costs beyond tariff schedules.
Decision diagram
flowchart LR INS[National insurance funds] --> CL[Reimbursed-care claims] H[Hospitals public + private] --> PM[PMSI discharges] DC[Cause-of-death registry] --> LK[Pseudonymized linkage] --> SNDS[SNDS] ALD[Long-term-disease registrations] --> SNDS SNDS --> HDH[Health Data Hub secure access] HDH --> S[Whole-population RWE]
Worked example
Scenario
Whole-population incidence of myocarditis after mRNA COVID-19 vaccination by age and sex, using nationwide dispensing and PMSI outcomes.
Dataset
Vaccination-attributable myocarditis incidence estimates.
| age_band | vaccinated_n | myocarditis_cases_obs | sir_95ci |
|---|---|---|---|
| 18-24 M - 2100000 - 96 - 3.4 (2.8-4.1) | |||
| 18-24 F - 2050000 - 21 - 0.9 (0.6-1.4) | |||
| 40-49 M - 4300000 - 58 - 1.6 (1.2-2.0) |
Steps
Result
Elevated myocarditis SIR concentrated in young males after second dose (SIR ~3.4), consistent with international findings; SCCS confirmed within-person association.
Trade-offs
Runnable example
SCCS-style vaccination-window analysis skeleton on person-period SNDS extracts.
\
import pandas as pd
import statsmodels.api as sm
def sccs_events(events, vacc_dates, risk_window=(0, 28), control_window=(50, None)):
# Person-period construction: risk vs control intervals per vaccinated case
rows = []
for pid, vd in vacc_dates.items():
ev = events.get(pid, [])
for e in ev:
rows.append({"pid": pid,
"risk": int(risk_window[0] <= (e - vd).days <= risk_window[1]),
"exposure_period": True})
df = pd.DataFrame(rows)
# Conditional Poisson approximation via logit with pid fixed effects
X = pd.get_dummies(df.risk, drop_first=True)
res = sm.GLM(df.risk, sm.add_constant(X),
family=sm.families.Poisson()).fit()
return res
R version using the SCCS package convention.
\
library(SCCS)
fit_sccs <- function(events_df, vacc_date, risk_start = 0, risk_end = 28) {
# events_df: one row per event with indiv (person id) and event date
sca <- sccs_data.frame(indiv = events_df$indiv,
event = events_df$event_date,
exposure = setNames(vacc_date, events_df$indiv))
mod <- standardsccs(event ~ risk(risk_start:risk_end), data = sca)
summary(mod)
}
SAS conditional Poisson via PROC GENMOD with subject fixed effects.
\
proc genmod data=person_periods;
class pid risk(ref='0');
model events = risk / dist=poisson link=log offset=log_days;
repeated subject=pid / type=ind;
estimate 'Risk ratio' risk 1 -1 / exp;
run;
Citations
- [1]Tuppin P, et al. Value of a national administrative database to guide public decisions: From the système national d'information interrégimes de l'Assurance Maladie (SNIIRAM) to the système national des données de santé (SNDS) in France. Revue d'Épidémiologie et de Santé Publique. 2017.
- [2]Health Data Hub. Le Système National des Données de Santé (SNDS).