Pediatric Overweight & Obesity at CSVS

Incidence, Severity, and Site-Level Variation — 2020–2025

Author
Affiliation

Oguchi Nkwocha, MD., MS.

Chief Medical Officer, Clinica de Salud del Valle de Salinas

Published

May 10, 2026

Data Source: NextGen Report Server (3/31/26) — EHR encounter-level exports with ICD-10 diagnosis fields.
Prepared for QA by: Oguchi Nkwocha, MD., MS., CMO
Study Period: January 2020 – December 2025 | Ages: 2–19 years | Sites: 10 CSVS clinics

1 Objective

This study characterizes the incidence, severity distribution, and site-level variation of pediatric overweight and obesity across all Clinica de Salud del Valle de Salinas (CSVS) clinic sites over a 6-year period (2020–2025).

Study Design Parameters
Parameter Value
Time Frame January 2020 – December 2025 (6 calendar years)
Age Range 2–19 years (calculated from date of birth and date of service)
Data Source NextGen Report Server (3/31/26) — EHR encounter-level exports
Population All pediatric patients (ages 2–19) with ≥1 encounter at any of 10 CSVS sites
Patient Identifier MRN (unique patient medical record number)

2 Methods & Definitions

2.1 Definition of a Case

A case is defined as any unique patient (by MRN) with ≥1 encounter carrying an overweight or obesity ICD-10 diagnosis code (E66.01, E66.09, E66.1, E66.2, E66.3, E66.8, E66.9) or pediatric BMI percentile Z-code (Z68.53, Z68.54) during the study period (2020–2025).

2.2 Incidence

Unique patients with ≥1 encounter with overweight/obesity diagnosis ÷ unique patients with ≥1 encounter, within the defined period and stratum × 100%.

\[ \text{Incidence} = \frac{\text{Unique patients with } \geq 1 \text{ overweight/obesity diagnosis}}{\text{Unique patients with } \geq 1 \text{ encounter}} \times 100 \]

2.3 ICD-10 / Z-Code Capture

Table 1: ICD-10 and Z-codes used for case identification
Code Description Classification
E66.01 Morbid (severe) obesity due to excess calories Severe Obesity (Class II)
E66.09 Other obesity due to excess calories Obesity
E66.1 Drug-induced obesity Obesity
E66.2 Morbid obesity with alveolar hypoventilation Severe Obesity (Class II)
E66.3 Overweight Overweight
E66.8 Other obesity Obesity
E66.9 Obesity, unspecified Obesity
Z68.53 BMI pediatric, 85th to < 95th percentile Overweight
Z68.54 BMI pediatric, ≥ 95th percentile Obesity

2.4 Weight Classification (CDC/AAP)

CDC/AAP Weight Status Categories
Category BMI-for-Age Percentile
Overweight 85th to < 95th
Obesity (Class I) ≥ 95th to < 120% of 95th
Severe Obesity (Class II) ≥ 120% of 95th percentile or BMI ≥ 35

2.5 Denominator Definitions

6-Year Cumulative Denominator: All unique patients (by MRN) aged 2–19 with ≥1 encounter at any CSVS site during 2020–2025. n = 16,628.

Annual Denominator: All unique patients (by MRN) aged 2–19 with ≥1 encounter at any CSVS site during that specific calendar year.

Important

A patient seen in multiple years appears in each year’s annual denominator but only once in the cumulative denominator. Therefore, annual rates cannot be summed to derive the cumulative rate.

3 Data Processing

Data loading and cleaning pipeline
file_denominator <- "ped_obesity_2020-2025_full_denom.xlsx"
file_cases       <- "ped Obesity 2020_2025_2.xlsx"

obesity_codes <- tribble(
  ~code, ~weight_class,
  "E66.01","Severe obesity (Class II)","E66.09","Obesity","E66.1","Obesity",
  "E66.2","Severe obesity (Class II)","E66.3","Overweight","E66.8","Obesity",
  "E66.9","Obesity","Z68.53","Overweight","Z68.54","Obesity"
)

severity_rank <- c("Underweight"=0,"Healthy weight"=1,"Overweight"=2,"Obesity"=3,"Severe obesity (Class II)"=4)

denom_raw <- read.xlsx(file_denominator,startRow=6,skipEmptyRows=TRUE,detectDates=TRUE) %>% clean_names()
cases_raw <- read.xlsx(file_cases,startRow=5,detectDates=TRUE) %>% clean_names()

diag_code_cols <- intersect(paste0("diag_",1:12),names(cases_raw))
diag_desc_cols <- intersect(paste0("diag_",1:12,"_desc"),names(cases_raw))

denom <- denom_raw %>%
  mutate(dt_of_svc=as.Date(dt_of_svc),birth_dt=as.Date(birth_dt),
    age=as.numeric(difftime(dt_of_svc,birth_dt,units="days"))/365.25,
    sex=toupper(str_trim(sex)),md_rc=str_trim(as.character(md_rc)),
    per_nbr=str_trim(as.character(per_nbr)),
    loc_name=str_trim(loc_name),zip=str_trim(as.character(zip)),
    visit_year=year(dt_of_svc)) %>%
  filter(age>=2,age<20,visit_year>=2020,visit_year<=2025)

cases <- cases_raw %>%
  mutate(across(all_of(c(diag_code_cols,diag_desc_cols)),as.character)) %>%
  mutate(dt_of_svc=as.Date(dt_of_svc),birth_dt=as.Date(birth_dt),
    age=as.numeric(difftime(dt_of_svc,birth_dt,units="days"))/365.25,
    sex=toupper(str_trim(sex)),md_rc=str_trim(as.character(md_rc)),
    per_nbr=str_trim(as.character(per_nbr)),
    loc_name=str_trim(loc_name),zip=str_trim(as.character(zip)),
    visit_year=year(dt_of_svc)) %>%
  filter(age>=2,age<20,visit_year>=2020,visit_year<=2025)

cases_for_denom <- cases %>% filter(!md_rc %in% denom$md_rc) %>%
  select(all_of(intersect(names(denom),names(cases))))
denom <- bind_rows(denom,cases_for_denom)

cases_long <- cases %>% mutate(row_id=row_number()) %>%
  pivot_longer(cols=all_of(diag_code_cols),names_to="diag_position",values_to="diag_code") %>%
  filter(!is.na(diag_code)) %>% mutate(diag_code=str_trim(toupper(diag_code)))

cases_matched <- cases_long %>%
  inner_join(obesity_codes %>% mutate(code=toupper(code)),by=c("diag_code"="code")) %>%
  mutate(rank=severity_rank[weight_class])

icd_summary <- cases_matched %>% group_by(row_id) %>%
  summarise(matched_codes=paste(unique(diag_code),collapse="; "),
    icd_weight_class=weight_class[which.max(rank)],.groups="drop")

cases <- cases %>% mutate(row_id=row_number()) %>%
  left_join(icd_summary,by="row_id") %>%
  mutate(weight_class_final=case_when(
    icd_weight_class=="Severe obesity (Class II)"~"Severe obesity (Class II)",
    !is.na(icd_weight_class)~icd_weight_class,TRUE~NA_character_),
    ow_ob_case=weight_class_final %in% c("Overweight","Obesity","Severe obesity (Class II)"))

output <- cases %>% filter(ow_ob_case) %>%
  select(loc_name,md_rc,dt_of_svc,visit_year,birth_dt,age,sex,
    weight_class=weight_class_final,matched_codes,all_of(diag_code_cols)) %>%
  arrange(md_rc,dt_of_svc)

age_breaks <- c(2,5,10,15,20); age_labels <- c("2–4","5–9","10–14","15–19")
denom <- denom %>% mutate(age_group=cut(age,breaks=age_breaks,right=FALSE,labels=age_labels))
output <- output %>% mutate(age_group=cut(age,breaks=age_breaks,right=FALSE,labels=age_labels))

4 Results

4.1 Overall Incidence

Over the 6-year study period, 3,721 of 16,628 unique pediatric patients had at least one encounter with an overweight or obesity diagnosis, yielding a 6-year cumulative incidence of 22.4%.

4.2 Incidence (%) Trend by Year

Figure 1: Annual incidence of pediatric overweight/obesity (unique patients per year)
Table 2: Annual incidence by year (unique patients)
Year Denominator Cases Incidence
2,020 7,236 559 7.7%
2,021 7,560 930 12.3%
2,022 8,830 891 10.1%
2,023 9,859 1,038 10.5%
2,024 10,640 1,026 9.6%
2,025 10,901 845 7.8%

4.3 Incidence (%) by Age Group

Figure 2: 6-year cumulative incidence by age group (unique patients)

4.4 Incidence (%) by Age Group & Sex

Figure 3: Incidence by age group and sex (unique patients)
Tip

Males aged 10–14 show the highest incidence at 22.9%, compared to 19.3% for females in the same age group.

4.5 Incidence (%) by Clinic Site

Figure 4: Incidence by clinic site (unique patients, 2020–2025)

Sanborn at 33.7% — 1.8× the next highest site.

4.6 Zip Code Analysis

To understand the site-level variation — particularly Sanborn’s 33.7% incidence — we examined overweight/obesity rates by zip code.

Figure 5: Incidence by zip code (unique patients, zip codes with ≥50 patients)
Table 3: Incidence by zip code (zip codes with ≥50 patients)
Zip Code Denominator Cases Incidence
93912 54 18 33.3%
93925 93 30 32.3%
93905 5,027 1,488 29.6%
93915 80 22 27.5%
93906 2,563 687 26.8%
93901 767 204 26.6%
93908 87 23 26.4%
93907 547 131 23.9%
93960 1,119 259 23.1%
93930 903 153 16.9%
93926 444 68 15.3%
95012 1,482 208 14.0%
93933 194 27 13.9%
93927 2,399 320 13.3%
93955 118 9 7.6%
95076 338 25 7.4%
95039 59 2 3.4%

Sanborn Medical Clinic’s high incidence (33.7%) is largely explained by its patient population: 93905 accounts for 2,556 of Sanborn’s 4,740 patients, and the population-level incidence in 93905 is 29.6% — the highest of any high-volume zip code. Zip codes 93906 (26.8%) and 93901 (26.6%) also contribute disproportionately. These three zip codes together represent 85% of Sanborn’s patient panel, suggesting that the elevated rate reflects the local community burden rather than a site-specific coding or practice anomaly.

4.7 Classification Breakdown

Figure 6: Distribution among overweight/obesity patients (latest encounter per patient)
Table 4: Classification: % of cases vs % of all pediatric patients
Category Patients % of Cases % of All Pediatric
Obesity 1,926 51.8% 11.6%
Overweight 1,727 46.4% 10.4%
Severe obesity (Class II) 68 1.8% 0.4%
Total 3,721 100.0% 22.4%
Note:
% of Cases = share within overweight/obesity patients.
% of All Pediatric = incidence against full denominator of unique patients.

4.8 Rolling Cumulative Incidence

To account for encounters where the overweight/obesity diagnosis may not have been recorded, we examine the cumulative build year-by-year. Each row represents all unique patients through that year; classification uses the latest encounter.

Table 5: Rolling cumulative incidence by sex
Through Sex Denominator Cases Incidence
2020
2,020 F 3,543 266 7.5%
2,020 M 3,693 293 7.9%
2020–2021
2,021 F 4,563 625 13.7%
2,021 M 4,730 725 15.3%
2020–2022
2,022 F 5,488 937 17.1%
2,022 M 5,698 1,062 18.6%
2020–2023
2,023 F 6,395 1,260 19.7%
2,023 M 6,599 1,388 21.0%
2020–2024
2,024 F 7,379 1,549 21.0%
2,024 M 7,595 1,709 22.5%
2020–2025
2,025 F 8,225 1,767 21.5%
2,025 M 8,405 1,954 23.2%
Figure 7: Rolling cumulative incidence by sex

Males consistently higher; both approach ~22–23% by 2025. The asymptotic pattern confirms diminishing new case capture over time.

5 Comparisons

5.1 National Comparison

Our CSVS rates can be contextualized against national projections from the GBD 2021 US Obesity Forecasting study.

Figure 8: GBD 2021 US Obesity Forecasting: Estimated prevalence of overweight and obesity, ages 5–14, by gender, 1990–2050. Dashed vertical line: 2021, forecast follows. Solid vertical line: 2025. CSVS study period: 2020-2025.
Table 6: CSVS vs GBD national estimates (ages 5–14, combined overweight/obesity)
Source Males Females Method
GBD 2021 (US national, ~2025) ~35% ~30% BMI-measured prevalence
CSVS (6-year cumulative, 2020–2025) 23.2% 21.5% ICD-10 coded diagnoses

Source: GBD 2021 US Obesity Forecasting Collaborators. Lancet. 2024 Dec 7;404(10469):2278-2298. doi: 10.1016/S0140-6736(24)01548-4. PMID: 39551059; PMCID: PMC11694015.

5.2 State Comparison

Figure 9: Overweight by Age, by Race/Ethnicity, California, 2022. Source: California Health Interview Survey, UCLA. California Health Care Foundation, August 2024.

5.3 Monterey County Comparison

Figure 10: Teens who are Overweight or Obese, Monterey County. Source: California Health Interview Survey, Neighborhood Edition (2021-2022).

5.4 Comparisons Caveat

Warning

Key limitations when comparing CSVS data with external studies:

  • CSVS study period is 2020–2025. Most frequently cited studies are dated (up to 2020). We included only more recent studies, but even then coverage was only up to 2022. The National Study covers up to 2021, but forecasts to 2050.

  • CSVS uses diagnostic codes (ICD-10); comparators use BMI. Risk of under-counting is higher with visit-based ICD-10 coding since overweight/obesity, a chronic condition, may only be incidental to the current visit Chief Complaint and therefore may not be documented at the visit. Age-cuts are also different.

6 Provider Response & Management

6.1 Referral to Community Nutrition Services & Programs

  • Healthy Together (Aspire)
  • Healthy Weight for Life (CCAH)
  • Kids Eat Right (Montage)
  • Nutrition and Wellness Education (NMC)
  • Weight Management Clinic (NMC)
  • Nutrition Pathfinders (County Health Department)
  • YMCA Youth Fit 4 Life (YF4L)

Also…

  • Center for Healthy Weight Pediatric Weight Control Program (Stanford Medicine Children’s Health (Palo Alto))
  • WATCH (Weight Assessment for Teen and Child Health) (UCSF Benioff Children’s Hospitals (San Francisco))

6.2 Referral to Behavioral Health Services

Manage comorbid anxiety and depression

6.3 Referral for Pharmacotherapy

  • Stanford Medicine Children’s Health (Palo Alto)
  • UCSF Benioff Children’s Hospitals (San Francisco

6.4 Referral to Bariatric Surgery

  • UCSF Benioff Children’s Hospitals (San Francisco)
  • Stanford Medicine Children’s Health (Palo Alto)

UCSF Benioff Children’s Hospitals (San Francisco) also have Pediatric Fatty Liver and Weight Assessment Clinic that considers drug and surgical therapies alongside lifestyle intervention.

6.5 AAP’s 2023 Clinical Guidelines for Pediatric Obesity

There is in fact a guideline, a very useful and empowering tool.

CPG (Clinical Practice Guideline) 2023 on Ped Obesity Recommendations:

Obesity is a [treatable] Chronic Disease With Complex Contributing Factors

  • ≥2 years: BMI screening & lifestyle/behavioral interventions
  • (8–11 years: Consensus-based off-label pharmacotherapy consideration in select cases in 2026)
  • ≥12 years: Pharmacotherapy (as adjunct to intensive health behavior and lifestyle treatment)
  • ≥13 years: Evaluation for referral for metabolic and bariatric surgery in those with severe obesity (BMI ≥120% of the 95th percentile)

Source: 2023 AAP CPG: Pediatrics (2023) 151(2): e2022060641. doi:10.1542/peds.2022-060641

7 Key Findings & Next Steps

  1. 22.4% cumulative incidence — approximately one in four to five pediatric patients at CSVS had at least one overweight or obesity diagnosis over 6 years.
  2. Peak in ages 10–14 at 21.2%, with males (22.9%) exceeding females (19.3%).
  3. Trend analysis — incidence peaked 2021, now stabilizing around 9–10%
  4. Sanborn site deep-dive — 33.7% rate reflects local community burden. ~50% of entire Ped Obesity population are from Zipcodes 93905 & 93906; 85% Ped Obesity pop from same zipcodes are served by Sanborn clinic
  5. Severity stratification — 52% obese vs 46% overweight, with 1.8% classified severe
  6. CSVS overweight / Obesity stats are better than national, state and county (with caveats related to methodologies)
  7. Resources such as intervention programs, Community Nutrition Services & Programs & Behavioral Health Services need to be evaluated for efficacy and utilized appropriately
  8. Clinical Practice Guidelines on Pediatric Obesity recommend following considerations:
  • Age 12 and above: Pharmacotherapy (GLP-1ra agents) (Resources: Stanford, UCSF Children’s)
  • Age 13 and above: Bariatric surgery (Resources: Stanford, UCSF Children’s)

Paradigm shift: Overweight / Obesity is a treatable chronic disease, not a personal choice sequela

8 Limitations

  • ICD-10 coded diagnoses undercount true prevalence. Patients with overweight/obesity who were not coded at a given visit are only captured if coded at a subsequent encounter.
  • Rolling cumulative approach mitigates undercounting by aggregating across years, but patients who never receive a diagnosis code remain missed.
  • No measured BMI data — classification relies entirely on provider-assigned ICD-10/Z-codes.
  • Denominator completeness depends on the EHR report extract from NextGen.
  • Comparison studies use different methodologies (BMI-measured vs ICD-10 coded), different time periods, and different populations.

9 Appendix

9.1 Denominator Verification

Table 7: Denominator verification: unique patients by year
Year Unique Patients
2020 7,236
2021 7,560
2022 8,830
2023 9,859
2024 10,640
2025 10,901
Cumulative 16,628

9.2 Reproducibility

This report was generated using R 4.4.2 with Quarto. All source code is available in the collapsible code blocks above.


Clinica de Salud del Valle de Salinas — Quality Improvement
Oguchi Nkwocha, MD., MS., CMO
Data Source: NextGen Report Server