Skip to contents

Nevada charter schools added 17,000 students since 2021 while traditional districts bled 30,000 – and the state’s kindergarten pipeline is swinging wildly year to year.

Part of the njschooldata family of state education data packages.

Full documentation – all 15 stories with interactive charts, getting-started guide, and complete function reference.

Highlights

library(nvschooldata)
library(dplyr)
library(tidyr)
library(ggplot2)

enr <- fetch_enr_multi(2021:2026, use_cache = TRUE)

1. Charter enrollment surged 33% while traditional districts lost 30,000 students

The State Public Charter School Authority (SPCSA) oversees Nevada’s charter sector. Charters grew from 53,223 students in 2021 to 70,534 in 2026 – a 33% increase – while traditional districts lost 30,287 students in the same period.

charter_trend <- enr |>
  filter(is_district, subgroup == "total_enrollment", grade_level == "TOTAL") |>
  group_by(end_year, is_charter) |>
  summarize(students = sum(n_students, na.rm = TRUE),
            n_districts = n(), .groups = "drop") |>
  mutate(sector = ifelse(is_charter, "Charter", "Traditional"))

stopifnot(nrow(charter_trend) > 0)
charter_trend |> select(end_year, sector, students, n_districts)
#> # A tibble: 10 x 4
#>    end_year sector      students n_districts
#>       <dbl> <chr>          <dbl>       <int>
#>  1     2021 Charter        53223          37
#>  2     2021 Traditional   433410          19
#>  3     2022 Charter        55415          38
#>  4     2022 Traditional   436923          19
#>  5     2023 Charter        59670          43
#>  6     2023 Traditional   429927          19
#>  7     2024 Charter        61883          44
#>  8     2024 Traditional   423687          19
#>  9     2026 Charter        70534          51
#> 10     2026 Traditional   403123          19
Charter vs traditional enrollment trends
Charter vs traditional enrollment trends

(source)


2. Nevada lost nearly 13,000 students between 2021 and 2026

Nevada was one of America’s fastest-growing states for decades, but school enrollment has declined since 2022. The state shed 18,681 students from its 2022 peak to 2026.

state_totals <- enr |>
  filter(is_district, subgroup == "total_enrollment", grade_level == "TOTAL") |>
  group_by(end_year) |>
  summarize(n_students = sum(n_students, na.rm = TRUE), .groups = "drop") |>
  mutate(change = n_students - lag(n_students),
         pct_change = round(change / lag(n_students) * 100, 2))

stopifnot(nrow(state_totals) > 0)
state_totals
#> # A tibble: 5 x 4
#>   end_year n_students change pct_change
#>      <dbl>      <dbl>  <dbl>      <dbl>
#> 1     2021     486633     NA      NA
#> 2     2022     492338   5705       1.17
#> 3     2023     489597  -2741      -0.56
#> 4     2024     485570  -4027      -0.82
#> 5     2026     473657 -11913      -2.45
Nevada statewide enrollment trends
Nevada statewide enrollment trends

(source)


3. Kindergarten enrollment swung wildly: up 8% in 2022, down 9% in 2024

Kindergarten enrollment is a leading indicator of future trends. Nevada K enrollment hit 34,641 in 2022 then crashed to 28,931 in 2024 before recovering to 30,490 in 2026. Grade-level data is available at the school level.

k_data <- enr |>
  filter(is_school, subgroup == "total_enrollment", grade_level == "K") |>
  group_by(end_year) |>
  summarize(k_students = sum(n_students, na.rm = TRUE), .groups = "drop") |>
  mutate(change = k_students - lag(k_students),
         pct_change = round(change / lag(k_students) * 100, 2))

stopifnot(nrow(k_data) > 0)
k_data
#> # A tibble: 5 x 4
#>   end_year k_students change pct_change
#>      <dbl>      <dbl>  <dbl>      <dbl>
#> 1     2021      31995     NA      NA
#> 2     2022      34641   2646       8.27
#> 3     2023      31951  -2690      -7.77
#> 4     2024      28931  -3020      -9.45
#> 5     2026      30490   1559       5.39
Kindergarten enrollment trends
Kindergarten enrollment trends

(source)


Data Taxonomy

Category Years Function Details
Enrollment 2016-2026 fetch_enr() / fetch_enr_multi() District, school. Race, gender, FRL, SpEd, LEP
Assessments Not yet available
Graduation Not yet available
Directory Current fetch_directory() School-level. Contact info, charter status, locale
Per-Pupil Spending Not yet available
Accountability Not yet available
Chronic Absence Not yet available
EL Progress Not yet available
Special Ed Not yet available

See the full data category taxonomy

Quick Start

R

# install.packages("remotes")
remotes::install_github("almartin82/nvschooldata")

library(nvschooldata)
library(dplyr)

# Fetch one year
enr_2026 <- fetch_enr(2026)

# Fetch multiple years
enr_multi <- fetch_enr_multi(c(2021:2024, 2026))

# State totals
get_state_enrollment(c(2021:2024, 2026))

# Filter to a specific district
enr_2026 |>
  filter_district("02")  # Clark County

# Filter to Clark County schools
enr_2026 |>
  filter_county("Clark")

# District breakdown
enr_2026 |>
  filter(is_district, subgroup == "total_enrollment", grade_level == "TOTAL") |>
  arrange(desc(n_students))

# School directory
dir_data <- fetch_directory()

Python

import pynvschooldata as nv

# Check available years
years = nv.get_available_years()
print(f"Data available from {years['min_year']} to {years['max_year']}")

# Fetch one year
df = nv.fetch_enr(2026)

# Fetch multiple years
df_multi = nv.fetch_enr_multi([2024, 2026])

# Filter to district totals
district_totals = df[
    (df['is_district'] == True) &
    (df['grade_level'] == 'TOTAL') &
    (df['subgroup'] == 'total_enrollment')
].sort_values('n_students', ascending=False)

print(district_totals[['district_name', 'n_students']])

Explore More

Full analysis with 15 stories: - Enrollment trends – 15 stories - Function reference

Data Notes

Data Source

Nevada Department of Education: Enrollment Data

Available Years

Years Format Aggregation Levels Demographics Notes
2021-2026 Modern District, School Race, Gender, Special Populations Full LEA codes, complete data
2018-2020 Intermediate District, School Race, Gender Consolidated format
2016-2017 Legacy Limited Limited Partial data extraction

Census Day

Data is collected on October 1 “validation day” each year. This is Nevada’s official enrollment count date.

Suppression Rules

Nevada does not suppress small counts in the publicly available enrollment files. All counts are reported as provided by districts.

Nevada District Codes

Code District
02 Clark County School District (Las Vegas)
16 Washoe County School District (Reno)
13 Carson City School District
18 State Public Charter School Authority (SPCSA)

Grade-Level Data Availability

Grade-level breakdowns (PK, K, 01-12) are available at the school level only. District-level records have grade_level == "TOTAL" only. To get grade-level aggregates across districts, filter on is_school and aggregate.

Subgroup Availability by Year

  • Race/ethnicity and gender: Available for 2018+
  • Special populations (EL, FRL, IEP, Foster, Military, Homeless, Migrant): Available 2021+
  • Grade levels: K-12 plus ungraded (UG) available at school level for modern format years

Deeper Dive

4. Charter schools crack the top 10 in Nevada

Clark County dominates, but three charter networks (Somerset, Pinecrest, Doral) now enroll more students than most county school districts. Somerset Academy alone enrolls more than 14 of the 17 county districts.

enr_2026 <- fetch_enr(2026, use_cache = TRUE)

top_districts <- enr_2026 |>
  filter(is_district, subgroup == "total_enrollment", grade_level == "TOTAL") |>
  arrange(desc(n_students)) |>
  head(10) |>
  select(district_name, n_students, is_charter)

stopifnot(nrow(top_districts) == 10)
top_districts
#> # A tibble: 10 x 3
#>    district_name                      n_students is_charter
#>    <chr>                                   <dbl> <lgl>
#>  1 Clark County School District           291587 FALSE
#>  2 Washoe County School District           63655 FALSE
#>  3 Somerset Academy of Las Vegas            9534 TRUE
#>  4 Elko County School District              9293 FALSE
#>  5 Lyon County School District              9060 FALSE
#>  6 Pinecrest Academy of Nevada              8474 TRUE
#>  7 Carson City School District              7281 FALSE
#>  8 Doral Academy                            6442 TRUE
#>  9 Nye County School District               5794 FALSE
#> 10 Coral Academy of Science Las Vegas       5552 TRUE
Top Nevada districts
Top Nevada districts

(source)


5. Clark County lost 27,706 students since 2021 while Washoe held steady

Clark County (Las Vegas) and Washoe County (Reno) are Nevada’s two urban anchors. Clark dropped 8.7% from 2021 to 2026 while Washoe only dropped 2.1%.

growth_data <- enr |>
  filter(is_district, subgroup == "total_enrollment", grade_level == "TOTAL",
         grepl("Clark|Washoe", district_name)) |>
  mutate(county = case_when(
    grepl("Clark", district_name) ~ "Clark County",
    grepl("Washoe", district_name) ~ "Washoe County"
  )) |>
  group_by(county, end_year) |>
  summarize(n_students = sum(n_students, na.rm = TRUE), .groups = "drop") |>
  group_by(county) |>
  mutate(index = round(n_students / first(n_students) * 100, 1)) |>
  ungroup()

stopifnot(nrow(growth_data) > 0)
growth_data
#> # A tibble: 10 x 4
#>    county        end_year n_students index
#>    <chr>            <dbl>      <dbl> <dbl>
#>  1 Clark County      2021     319293 100
#>  2 Clark County      2022     320245 100.3
#>  3 Clark County      2023     314372  98.5
#>  4 Clark County      2024     309397  96.9
#>  5 Clark County      2026     291587  91.3
#>  6 Washoe County     2021      64988 100
#>  7 Washoe County     2022      66541 102.4
#>  8 Washoe County     2023      64990 100
#>  9 Washoe County     2024      64755  99.6
#> 10 Washoe County     2026      63655  97.9
Clark vs Washoe enrollment trends
Clark vs Washoe enrollment trends

(source)


6. Hispanic students are 46% of Nevada enrollment, down slightly from 47% in 2021

Hispanic students are the largest demographic group in Nevada public schools at 45.9%, followed by white students at 25.9%. Hispanic share dipped from 46.8% in 2021 to 45.9% in 2026, a modest decrease even as Hispanic students remain the largest group.

demographics <- enr_2026 |>
  filter(is_district, grade_level == "TOTAL",
         subgroup %in% c("white", "black", "hispanic", "asian",
                         "native_american", "multiracial", "pacific_islander")) |>
  group_by(subgroup) |>
  summarize(n_students = sum(n_students, na.rm = TRUE), .groups = "drop") |>
  mutate(pct = round(n_students / sum(n_students) * 100, 1)) |>
  arrange(desc(n_students))

stopifnot(nrow(demographics) == 7)
demographics
#> # A tibble: 7 x 3
#>   subgroup         n_students   pct
#>   <chr>                 <dbl> <dbl>
#> 1 hispanic             217320  45.9
#> 2 white                122852  25.9
#> 3 black                 58830  12.4
#> 4 multiracial           37516   7.9
#> 5 asian                 27170   5.7
#> 6 pacific_islander       6622   1.4
#> 7 native_american        3347   0.7
Nevada student demographics
Nevada student demographics

(source)


7. Las Vegas Metro has 61.6% of all Nevada students

Beyond Las Vegas and Reno, the remaining 68 entities (15 rural county districts plus charter schools) account for 25% of enrollment.

regional <- enr_2026 |>
  filter(is_district, subgroup == "total_enrollment", grade_level == "TOTAL") |>
  mutate(region = case_when(
    grepl("Clark", district_name) ~ "Las Vegas Metro",
    grepl("Washoe", district_name) ~ "Reno Metro",
    TRUE ~ "Rest of Nevada"
  )) |>
  group_by(region) |>
  summarize(
    n_entities = n_distinct(district_name),
    total_enrollment = sum(n_students, na.rm = TRUE),
    .groups = "drop"
  ) |>
  mutate(pct = round(total_enrollment / sum(total_enrollment) * 100, 1))

stopifnot(nrow(regional) == 3)
regional
#> # A tibble: 3 x 4
#>   region          n_entities total_enrollment   pct
#>   <chr>                <int>            <dbl> <dbl>
#> 1 Las Vegas Metro          1           291587  61.6
#> 2 Reno Metro               1            63655  13.4
#> 3 Rest of Nevada          68           118415  25.0
Enrollment by region
Enrollment by region

(source)


8. Fifteen districts report 100% FRL eligibility

FRL eligibility is a proxy for economic disadvantage. Many charter schools report 100% FRL, along with two rural counties (Esmeralda and Pershing). The variation across districts is enormous.

frl_data <- enr_2026 |>
  filter(is_district, grade_level == "TOTAL", subgroup == "free_reduced_lunch") |>
  mutate(pct_display = round(pct * 100, 1)) |>
  arrange(desc(pct)) |>
  head(15) |>
  select(district_name, n_students, pct_display)

stopifnot(nrow(frl_data) > 0)
frl_data
#> # A tibble: 15 x 3
#>    district_name                           n_students pct_display
#>    <chr>                                        <dbl>       <dbl>
#>  1 Esmeralda County School District                69       100
#>  2 Pershing County School District                647       100
#>  3 Futuro Academy                                 484       100
#>  4 Mater Academy of Northern Nevada               514       100
#>  5 Democracy Prep                                 927       100
#>  6 Sports Leadership and Management Academy      1988       100
#>  7 Equipo Academy                                 949       100
#>  8 Mater Academy of Nevada                       5297       100
#>  9 Rainbow Dreams Early Learning Academy          229       100
#> 10 The Delta Academy                             1315       100
#> 11 Innovations International Charter School       619       100
#> 12 Quest Academy                                  415       100
#> 13 FuturEdge Academy                              318       100
#> 14 Southern Nevada Trades High School             250       100
#> 15 Vegas Vista Academy                            270       100
FRL eligibility by district
FRL eligibility by district

(source)


9. Futuro Academy has the highest EL concentration at 41%

English Learner populations vary dramatically. Clark County leads in absolute numbers (45,993), but several charter schools have much higher EL concentrations. Futuro Academy leads at 41.1% EL students, followed by Equipo Academy at 38.5%.

el_data <- enr_2026 |>
  filter(is_district, grade_level == "TOTAL", subgroup == "lep") |>
  arrange(desc(n_students)) |>
  head(10) |>
  select(district_name, n_students, pct)

stopifnot(nrow(el_data) == 10)
el_data
#> # A tibble: 10 x 3
#>    district_name                      n_students    pct
#>    <chr>                                   <dbl>  <dbl>
#>  1 Clark County School District            45993 0.158
#>  2 Washoe County School District            9229 0.145
#>  3 Mater Academy of Nevada                  1816 0.343
#>  4 Carson City School District               916 0.126
#>  5 Elko County School District               774 0.083
#>  6 Lyon County School District               637 0.070
#>  7 Nye County School District                449 0.077
#>  8 Somerset Academy of Las Vegas             405 0.042
#>  9 CIVICA Academy                            403 0.280
#> 10 Equipo Academy                            365 0.385
English Learner enrollment by district
English Learner enrollment by district

(source)


10. Clark County has 5x more EL students than Washoe but similar FRL rates

English Learners, students with IEPs, and Free/Reduced Lunch eligible students represent key populations for educational policy. Clark County has ~46,000 EL students vs Washoe’s ~9,200.

special_pops <- enr_2026 |>
  filter(is_district, grade_level == "TOTAL",
         subgroup %in% c("free_reduced_lunch", "special_ed", "lep"),
         grepl("Clark|Washoe", district_name)) |>
  mutate(county = ifelse(grepl("Clark", district_name), "Clark County", "Washoe County")) |>
  group_by(county, subgroup) |>
  summarize(n_students = sum(n_students, na.rm = TRUE), .groups = "drop")

stopifnot(nrow(special_pops) == 6)
special_pops
#> # A tibble: 6 x 3
#>   county        subgroup           n_students
#>   <chr>         <chr>                   <dbl>
#> 1 Clark County  free_reduced_lunch     282969
#> 2 Clark County  lep                     45993
#> 3 Clark County  special_ed              44484
#> 4 Washoe County free_reduced_lunch      39010
#> 5 Washoe County lep                      9229
#> 6 Washoe County special_ed              10537
Special populations by district
Special populations by district

(source)


11. 12th grade has the most students; PK has the fewest

Tracking enrollment by grade reveals a classic pattern: PK is small (13,852), enrollment jumps at K (30,490), and peaks at 12th grade (37,730). Grade-level data is available at the school level.

grade_data <- enr_2026 |>
  filter(is_school, subgroup == "total_enrollment",
         !grade_level %in% c("TOTAL", "UG", "AD")) |>
  group_by(grade_level) |>
  summarize(n_students = sum(n_students, na.rm = TRUE), .groups = "drop") |>
  mutate(grade_level = factor(grade_level, levels = c("PK", "K", sprintf("%02d", 1:12)))) |>
  filter(!is.na(grade_level))

stopifnot(nrow(grade_data) > 0)
grade_data
#> # A tibble: 14 x 2
#>    grade_level n_students
#>    <fct>            <dbl>
#>  1 PK               13852
#>  2 K                30490
#>  3 01               31486
#>  4 02               30265
#>  5 03               33417
#>  6 04               35890
#>  7 05               34847
#>  8 06               35814
#>  9 07               36276
#> 10 08               36577
#> 11 09               37251
#> 12 10               37010
#> 13 11               37217
#> 14 12               37730
Enrollment by grade level
Enrollment by grade level

(source)


12. Nevada’s smallest LEAs are charter schools, not counties

While Esmeralda County (69 students) is the smallest county district, Nevada’s smallest LEAs are micro-charters. Nevada State High School II has just 18 students.

smallest <- enr_2026 |>
  filter(is_district, subgroup == "total_enrollment", grade_level == "TOTAL") |>
  arrange(n_students) |>
  head(10) |>
  select(district_name, n_students, is_charter)

stopifnot(nrow(smallest) == 10)
smallest
#> # A tibble: 10 x 3
#>    district_name                                  n_students is_charter
#>    <chr>                                               <dbl> <lgl>
#>  1 Nevada State High School II                            18 TRUE
#>  2 Independence High School                               37 FALSE
#>  3 Esmeralda County School District                       69 FALSE
#>  4 Nevada Classical Academy Elko                          83 TRUE
#>  5 Young Women's Leadership Academy of Las Vegas         108 TRUE
#>  6 Learning Bridge                                       171 TRUE
#>  7 Davidson Academy                                      171 FALSE
#>  8 Do & Be Arts Academy of Excellence                    175 TRUE
#>  9 Silver Sands Montessori                               188 TRUE
#> 10 Honors Academy of Literature                          202 TRUE
Nevada’s smallest districts
Nevada’s smallest districts

(source)


13. Lyon County has the highest IEP rate among large districts at 17%

Students with IEPs require specialized services. Clark County has the most IEP students by count (44,484), but Lyon County has the highest rate among sizable districts at 17%.

iep_data <- enr_2026 |>
  filter(is_district, grade_level == "TOTAL", subgroup == "special_ed") |>
  mutate(pct_display = round(pct * 100, 1)) |>
  arrange(desc(n_students)) |>
  head(10) |>
  select(district_name, n_students, pct_display)

stopifnot(nrow(iep_data) == 10)
iep_data
#> # A tibble: 10 x 3
#>    district_name                  n_students pct_display
#>    <chr>                               <dbl>       <dbl>
#>  1 Clark County School District        44484        15.3
#>  2 Washoe County School District       10537        16.6
#>  3 Lyon County School District          1541        17.0
#>  4 Somerset Academy of Las Vegas        1258        13.2
#>  5 Elko County School District          1238        13.3
#>  6 Carson City School District           943        13.0
#>  7 Nye County School District            882        15.2
#>  8 Pinecrest Academy of Nevada           840         9.9
#>  9 Douglas County School District        692        14.6
#> 10 Doral Academy                         674        10.5
IEP students by district
IEP students by district

(source)


14. Washoe County lost 1,333 students over 5 years

Washoe County (Reno-Sparks) is Nevada’s second-largest district. It peaked at 66,541 in 2022 before declining.

washoe_data <- enr |>
  filter(is_district, subgroup == "total_enrollment", grade_level == "TOTAL",
         grepl("Washoe", district_name)) |>
  group_by(end_year) |>
  summarize(n_students = sum(n_students, na.rm = TRUE), .groups = "drop") |>
  mutate(change = n_students - lag(n_students),
         pct_change = round(change / lag(n_students) * 100, 2))

stopifnot(nrow(washoe_data) > 0)
washoe_data
#> # A tibble: 5 x 4
#>   end_year n_students change pct_change
#>      <dbl>      <dbl>  <dbl>      <dbl>
#> 1     2021      64988     NA      NA
#> 2     2022      66541   1553       2.39
#> 3     2023      64990  -1551      -2.33
#> 4     2024      64755   -235      -0.36
#> 5     2026      63655  -1100      -1.70
Washoe County enrollment
Washoe County enrollment

(source)


15. Boys outnumber girls 51.3% to 48.7% statewide

The gender split across Nevada schools is close to even, with a slight male skew consistent with national patterns.

gender_data <- enr_2026 |>
  filter(is_district, grade_level == "TOTAL",
         subgroup %in% c("male", "female")) |>
  group_by(subgroup) |>
  summarize(n_students = sum(n_students, na.rm = TRUE), .groups = "drop") |>
  mutate(pct = round(n_students / sum(n_students) * 100, 1))

stopifnot(nrow(gender_data) == 2)
gender_data
#> # A tibble: 2 x 3
#>   subgroup n_students   pct
#>   <chr>         <dbl> <dbl>
#> 1 female       230511  48.7
#> 2 male         243022  51.3
Enrollment by gender
Enrollment by gender

(source)