Introduction
The arschooldata package provides access to Arkansas
assessment data from the Arkansas Division of Elementary and Secondary
Education (DESE). This vignette demonstrates how to analyze state
assessment results.
Arkansas has used two major assessment systems in recent years:
- ACT Aspire (2016-2023): College readiness aligned assessment
- ATLAS (2024-present): Arkansas Teaching, Learning & Assessment System
Check Available Assessment Years
years <- get_available_assessment_years()
cat("Available years:", paste(years$years, collapse = ", "), "\n")
#> Available years: 2016, 2017, 2018, 2019, 2021, 2022, 2023, 2024, 2025
cat("ATLAS years:", paste(years$atlas_years, collapse = ", "), "\n")
#> ATLAS years: 2024, 2025
cat("ACT Aspire years:", paste(years$aspire_years, collapse = ", "), "\n")
#> ACT Aspire years: 2016, 2017, 2018, 2019, 2021, 2022, 2023
cat("\nNote:", years$note)
#>
#> Note: Arkansas assessment data is available for ACT Aspire (2016-2019, 2021-2023) and ATLAS (2024-present). 2020 data is not available due to COVID-19 testing waiver. Proficiency levels differ between systems: ACT Aspire uses 'In Need of Support', 'Close', 'Ready', 'Exceeding'; ATLAS uses Level 1-4.Fetch Assessment Data
# Get 2024 ATLAS data (newest assessment system)
atlas_2024 <- fetch_assessment(2024, use_cache = TRUE)
# Get 2023 ACT Aspire data
aspire_2023 <- fetch_assessment(2023, use_cache = TRUE)
cat("2024 ATLAS rows:", nrow(atlas_2024), "\n")
#> 2024 ATLAS rows: 3031
cat("2023 ACT Aspire rows:", nrow(aspire_2023), "\n")
#> 2023 ACT Aspire rows: 3042Data Structure
cat("2024 ATLAS columns:\n")
#> 2024 ATLAS columns:
print(names(atlas_2024))
#> [1] "district_name" "district_lea" "school_name"
#> [4] "school_lea" "grade" "ela_n"
#> [7] "ela_pct_level_1" "ela_pct_level_2" "ela_pct_level_3"
#> [10] "ela_pct_level_4" "reading_n" "reading_pct_level_1"
#> [13] "reading_pct_level_2" "reading_pct_level_3" "reading_pct_level_4"
#> [16] "math_n" "math_pct_level_1" "math_pct_level_2"
#> [19] "math_pct_level_3" "math_pct_level_4" "algebra_n"
#> [22] "algebra_pct_level_1" "algebra_pct_level_2" "algebra_pct_level_3"
#> [25] "algebra_pct_level_4" "geometry_n" "geometry_pct_level_1"
#> [28] "geometry_pct_level_2" "geometry_pct_level_3" "geometry_pct_level_4"
#> [31] "science_n" "science_pct_level_1" "science_pct_level_2"
#> [34] "science_pct_level_3" "science_pct_level_4" "biology_n"
#> [37] "biology_pct_level_1" "biology_pct_level_2" "biology_pct_level_3"
#> [40] "biology_pct_level_4" "end_year" "aggregation_flag"Story 1: Little Rock Central High Shows Strong ELA Performance at Grade 10
Little Rock Central High School, the historic school of the 1957 desegregation crisis, tested 541 students in grade 10 ELA in 2024.
central_10 <- atlas_2024 %>%
filter(district_lea == "6001000",
grepl("CENTRAL HIGH", school_name),
grade == "10")
cat("Central High School Grade 10 (2024 ATLAS):\n")
#> Central High School Grade 10 (2024 ATLAS):
print(central_10[, c("school_name", "grade", "ela_n", "ela_pct_level_4")])
#> # A tibble: 1 × 4
#> school_name grade ela_n ela_pct_level_4
#> <chr> <chr> <chr> <chr>
#> 1 CENTRAL HIGH SCHOOL 10 541 15.5%Story 2: Bentonville Schools Lead Northwest Arkansas in ATLAS Results
Thomas Jefferson Elementary in Bentonville tested 94 Grade 3 students in ELA with 28.7% reaching Level 4.
bentonville <- atlas_2024 %>%
filter(district_lea == "0401000",
grepl("THOMAS JEFFERSON", school_name),
grade == "03")
cat("Bentonville Thomas Jefferson Elementary Grade 3 (2024 ATLAS):\n")
#> Bentonville Thomas Jefferson Elementary Grade 3 (2024 ATLAS):
print(bentonville[, c("school_name", "grade", "ela_n", "ela_pct_level_4", "math_n", "math_pct_level_4")])
#> # A tibble: 1 × 6
#> school_name grade ela_n ela_pct_level_4 math_n math_pct_level_4
#> <chr> <chr> <chr> <chr> <chr> <chr>
#> 1 THOMAS JEFFERSON ELEMENTA… 03 94 28.7% 94 22.3%Story 3: Springdale Elmdale Elementary Faces Proficiency Challenges
Springdale’s Elmdale Elementary, serving 72 students in Grade 3 for ELA, shows just 5.6% at Level 4 - reflecting achievement gaps in the state’s largest district.
springdale_elmdale <- atlas_2024 %>%
filter(district_lea == "7207000",
grepl("ELMDALE", school_name),
grade == "03")
cat("Springdale Elmdale Elementary Grade 3 (2024 ATLAS):\n")
#> Springdale Elmdale Elementary Grade 3 (2024 ATLAS):
print(springdale_elmdale[, c("school_name", "grade", "ela_n", "ela_pct_level_4", "math_n", "math_pct_level_4")])
#> # A tibble: 1 × 6
#> school_name grade ela_n ela_pct_level_4 math_n math_pct_level_4
#> <chr> <chr> <chr> <chr> <chr> <chr>
#> 1 ELMDALE ELEMENTARY SCHOOL 03 72 5.6% 72 5.6%Story 4: Fort Smith Chaffin JHS Shows Middle School Strength
L.A. Chaffin Junior High School tested 236 Grade 8 students in ELA with 21.6% reaching the top proficiency level.
fort_smith_chaffin <- atlas_2024 %>%
filter(district_lea == "6601000",
grepl("CHAFFIN", school_name),
grade == "08")
cat("Fort Smith Chaffin JHS Grade 8 (2024 ATLAS):\n")
#> Fort Smith Chaffin JHS Grade 8 (2024 ATLAS):
print(fort_smith_chaffin[, c("school_name", "grade", "ela_n", "ela_pct_level_4")])
#> # A tibble: 1 × 4
#> school_name grade ela_n ela_pct_level_4
#> <chr> <chr> <chr> <chr>
#> 1 L. A. CHAFFIN MIDDLE SCHOOL 08 236 21.6%Story 5: Rogers Eastside Elementary Outperforms District Average
Rogers’ Eastside Elementary had 75 Grade 5 students tested with 36% reaching ELA Level 4 - strong performance for Northwest Arkansas.
rogers_eastside <- atlas_2024 %>%
filter(district_lea == "0405000",
grepl("EASTSIDE", school_name),
grade == "05")
cat("Rogers Eastside Elementary Grade 5 (2024 ATLAS):\n")
#> Rogers Eastside Elementary Grade 5 (2024 ATLAS):
print(rogers_eastside[, c("school_name", "grade", "ela_n", "ela_pct_level_4")])
#> # A tibble: 1 × 4
#> school_name grade ela_n ela_pct_level_4
#> <chr> <chr> <chr> <chr>
#> 1 EASTSIDE ELEMENTARY SCHOOL 05 75 36.0%Story 6: Over 3,000 School-Grade Combinations Tested in 2024
The 2024 ATLAS assessment covered 1,013 schools across 259 districts.
cat("2024 ATLAS Assessment Coverage:\n")
#> 2024 ATLAS Assessment Coverage:
cat("Total rows (school-grade combinations):", nrow(atlas_2024), "\n")
#> Total rows (school-grade combinations): 3031
cat("Unique districts:", length(unique(atlas_2024$district_lea)), "\n")
#> Unique districts: 259
cat("Unique schools:", length(unique(atlas_2024$school_lea)), "\n")
#> Unique schools: 1012
cat("Grades tested:", paste(sort(unique(atlas_2024$grade)), collapse = ", "), "\n")
#> Grades tested: 03, 04, 05, 06, 07, 08, 09, 10Story 7: ACT Aspire 2023 Captured Final Year Before ATLAS Transition
The 2022-23 ACT Aspire assessment, the final year before the ATLAS transition, tested 3,042 school-grade combinations.
cat("2023 ACT Aspire (Final Year):\n")
#> 2023 ACT Aspire (Final Year):
cat("Total rows:", nrow(aspire_2023), "\n")
#> Total rows: 3042
cat("Unique districts:", length(unique(aspire_2023$district_lea)), "\n")
#> Unique districts: 258
cat("Unique schools:", length(unique(aspire_2023$school_lea)), "\n")
#> Unique schools: 1012Story 8: Grade 3 Represents Critical Early Literacy Assessment Point
Grade 3 is tested across Arkansas as the key early literacy checkpoint, with ATLAS assessing reading foundational skills.
grade3_2024 <- atlas_2024 %>%
filter(grade == "03")
cat("Grade 3 Testing (2024 ATLAS):\n")
#> Grade 3 Testing (2024 ATLAS):
cat("Schools tested:", length(unique(grade3_2024$school_lea)), "\n")
#> Schools tested: 485
# Top 5 Grade 3 schools by ELA Level 4 rate
top_g3 <- grade3_2024 %>%
filter(!is.na(ela_pct_level_4), ela_pct_level_4 != "N<10") %>%
mutate(ela_l4 = as.numeric(gsub("%", "", ela_pct_level_4))) %>%
arrange(desc(ela_l4)) %>%
head(10)
cat("\nTop 10 Grade 3 Schools by ELA Level 4 %:\n")
#>
#> Top 10 Grade 3 Schools by ELA Level 4 %:
print(top_g3[, c("district_name", "school_name", "ela_n", "ela_pct_level_4")])
#> # A tibble: 10 × 4
#> district_name school_name ela_n ela_pct_level_4
#> <chr> <chr> <chr> <chr>
#> 1 LITTLE ROCK SCHOOL DISTRICT JEFFERSON ELE… 65 50.8%
#> 2 LITTLE ROCK SCHOOL DISTRICT FOREST PARK E… 71 46.5%
#> 3 PULASKI COUNTY SPECIAL SCHOOL DISTRICT BAKER ELEMENT… 73 43.8%
#> 4 BENTONVILLE SCHOOL DISTRICT APPLE GLEN EL… 75 38.7%
#> 5 FOUNDERS CLASSICAL ACADEMIES OF ARKANSAS FOUNDERS CLAS… 68 38.2%
#> 6 EMERSON-TAYLOR-BRADLEY SCHOOL DISTRICT EMERSON ELEME… 29 37.9%
#> 7 ROGERS SCHOOL DISTRICT EASTSIDE ELEM… 72 37.5%
#> 8 FAYETTEVILLE SCHOOL DISTRICT ROOT ELEMENTA… 98 35.7%
#> 9 CONWAY SCHOOL DISTRICT JULIA LEE MOO… 73 35.6%
#> 10 LITTLE ROCK SCHOOL DISTRICT DON ROBERTS E… 174 35.6%Story 9: High School Grades 9-10 Show Different Testing Patterns
High school testing in grades 9 and 10 captures students at different academic stages, with course-based assessments like Algebra and Geometry.
hs_2024 <- atlas_2024 %>%
filter(grade %in% c("09", "10"))
cat("High School Testing (2024 ATLAS):\n")
#> High School Testing (2024 ATLAS):
cat("Grade 9 schools:", nrow(hs_2024[hs_2024$grade == "09",]), "\n")
#> Grade 9 schools: 321
cat("Grade 10 schools:", nrow(hs_2024[hs_2024$grade == "10",]), "\n")
#> Grade 10 schools: 307Story 10: Major District Comparison Shows Northwest Arkansas Leading
Comparing the state’s five largest districts reveals geographic achievement patterns.
major_districts <- c(
"6001000" = "Little Rock",
"0401000" = "Bentonville",
"7207000" = "Springdale",
"0405000" = "Rogers",
"6601000" = "Fort Smith"
)
major_summary <- atlas_2024 %>%
filter(district_lea %in% names(major_districts)) %>%
group_by(district_lea) %>%
summarise(
schools = n_distinct(school_lea),
grades_tested = n_distinct(grade),
total_rows = n()
) %>%
mutate(district = major_districts[district_lea])
cat("Major District Summary (2024 ATLAS):\n")
#> Major District Summary (2024 ATLAS):
print(major_summary[, c("district", "schools", "grades_tested", "total_rows")])
#> # A tibble: 5 × 4
#> district schools grades_tested total_rows
#> <chr> <int> <int> <int>
#> 1 Bentonville 24 8 48
#> 2 Rogers 23 8 66
#> 3 Little Rock 35 8 106
#> 4 Fort Smith 27 8 86
#> 5 Springdale 29 8 81Story 11: 2020 Testing Waived Due to COVID-19 Pandemic
The COVID-19 pandemic resulted in a federal testing waiver for Spring 2020, creating a gap in assessment data.
years <- get_available_assessment_years()
cat("Assessment data gap:\n")
#> Assessment data gap:
cat("Available years:", paste(years$years, collapse = ", "), "\n")
#> Available years: 2016, 2017, 2018, 2019, 2021, 2022, 2023, 2024, 2025
cat("\n2020 is explicitly excluded due to COVID-19 testing waiver.\n")
#>
#> 2020 is explicitly excluded due to COVID-19 testing waiver.Story 12: Assessment Systems Changed Proficiency Definitions
ACT Aspire used “In Need of Support, Close, Ready, Exceeding” while ATLAS uses “Level 1, 2, 3, 4” - making direct comparisons challenging.
cat("ACT Aspire (2016-2023) columns:\n")
#> ACT Aspire (2016-2023) columns:
print(grep("exceeding|ready|close", names(aspire_2023), value = TRUE, ignore.case = TRUE)[1:8])
#> [1] "english_pct_close" "english_pct_ready" "english_pct_exceeding"
#> [4] "math_pct_close" "math_pct_ready" "math_pct_exceeding"
#> [7] "science_pct_close" "science_pct_ready"
cat("\nATLAS (2024+) columns:\n")
#>
#> ATLAS (2024+) columns:
print(grep("level_4|level_3|level_2|level_1", names(atlas_2024), value = TRUE, ignore.case = TRUE)[1:8])
#> [1] "ela_pct_level_1" "ela_pct_level_2" "ela_pct_level_3"
#> [4] "ela_pct_level_4" "reading_pct_level_1" "reading_pct_level_2"
#> [7] "reading_pct_level_3" "reading_pct_level_4"Story 13: Multi-Year Trends Show ACT Aspire Era Performance
Fetching multiple years of ACT Aspire data allows trend analysis before the ATLAS transition.
# Get 2022 and 2023 for comparison
aspire_multi <- fetch_assessment_multi(c(2022, 2023), use_cache = TRUE)
aspire_by_year <- aspire_multi %>%
group_by(end_year) %>%
summarise(
total_rows = n(),
districts = n_distinct(district_lea),
schools = n_distinct(school_lea)
)
cat("ACT Aspire Multi-Year Summary:\n")
#> ACT Aspire Multi-Year Summary:
print(aspire_by_year)
#> # A tibble: 2 × 4
#> end_year total_rows districts schools
#> <dbl> <int> <int> <int>
#> 1 2022 3009 259 998
#> 2 2023 3042 258 1012Story 14: Thomas Jefferson Elementary 2023 vs 2024 Shows Assessment Transition
Comparing the same school across ACT Aspire (2023) and ATLAS (2024) reveals the difficulty of cross-system comparisons.
tj_2023 <- aspire_2023 %>%
filter(district_lea == "0401000",
grepl("THOMAS JEFFERSON", school_name),
grade == "03")
tj_2024 <- atlas_2024 %>%
filter(district_lea == "0401000",
grepl("THOMAS JEFFERSON", school_name),
grade == "03")
cat("Thomas Jefferson Elementary Grade 3 Comparison:\n")
#> Thomas Jefferson Elementary Grade 3 Comparison:
cat("\n2023 ACT Aspire:\n")
#>
#> 2023 ACT Aspire:
print(tj_2023[, c("school_name", "english_n", "english_pct_exceeding")])
#> # A tibble: 1 × 3
#> school_name english_n english_pct_exceeding
#> <chr> <chr> <chr>
#> 1 THOMAS JEFFERSON ELEMENTARY SCHOOL 87 64.4%
cat("\n2024 ATLAS:\n")
#>
#> 2024 ATLAS:
print(tj_2024[, c("school_name", "ela_n", "ela_pct_level_4")])
#> # A tibble: 1 × 3
#> school_name ela_n ela_pct_level_4
#> <chr> <chr> <chr>
#> 1 THOMAS JEFFERSON ELEMENTARY SCHOOL 94 28.7%Story 15: Statewide Assessment Coverage Ensures Accountability
With over 250 districts and 1,000+ schools tested annually, Arkansas maintains comprehensive assessment coverage for accountability.
# Count unique entities
atlas_coverage <- atlas_2024 %>%
summarise(
districts = n_distinct(district_lea),
schools = n_distinct(school_lea),
school_grades = n()
)
aspire_coverage <- aspire_2023 %>%
summarise(
districts = n_distinct(district_lea),
schools = n_distinct(school_lea),
school_grades = n()
)
cat("Statewide Assessment Coverage:\n")
#> Statewide Assessment Coverage:
cat("\n2024 ATLAS:\n")
#>
#> 2024 ATLAS:
cat(" Districts:", atlas_coverage$districts, "\n")
#> Districts: 259
cat(" Schools:", atlas_coverage$schools, "\n")
#> Schools: 1012
cat(" School-grade rows:", atlas_coverage$school_grades, "\n")
#> School-grade rows: 3031
cat("\n2023 ACT Aspire:\n")
#>
#> 2023 ACT Aspire:
cat(" Districts:", aspire_coverage$districts, "\n")
#> Districts: 258
cat(" Schools:", aspire_coverage$schools, "\n")
#> Schools: 1012
cat(" School-grade rows:", aspire_coverage$school_grades, "\n")
#> School-grade rows: 3042Data Notes
Data Source
Assessment data comes from the Arkansas Division of Elementary and Secondary Education (DESE): https://dese.ade.arkansas.gov/Offices/public-school-accountability/assessment-test-scores
Suppression Rules
- Results for groups with fewer than 10 students are suppressed (“N<10”)
- This protects student privacy while maintaining data utility
Session Info
sessionInfo()
#> R version 4.5.2 (2025-10-31)
#> Platform: x86_64-pc-linux-gnu
#> Running under: Ubuntu 24.04.3 LTS
#>
#> Matrix products: default
#> BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
#> LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.26.so; LAPACK version 3.12.0
#>
#> locale:
#> [1] LC_CTYPE=C.UTF-8 LC_NUMERIC=C LC_TIME=C.UTF-8
#> [4] LC_COLLATE=C.UTF-8 LC_MONETARY=C.UTF-8 LC_MESSAGES=C.UTF-8
#> [7] LC_PAPER=C.UTF-8 LC_NAME=C LC_ADDRESS=C
#> [10] LC_TELEPHONE=C LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C
#>
#> time zone: UTC
#> tzcode source: system (glibc)
#>
#> attached base packages:
#> [1] stats graphics grDevices utils datasets methods base
#>
#> other attached packages:
#> [1] ggplot2_4.0.2 dplyr_1.2.0 arschooldata_0.1.0
#>
#> loaded via a namespace (and not attached):
#> [1] gtable_0.3.6 jsonlite_2.0.0 compiler_4.5.2 tidyselect_1.2.1
#> [5] jquerylib_0.1.4 systemfonts_1.3.2 scales_1.4.0 textshaping_1.0.5
#> [9] readxl_1.4.5 yaml_2.3.12 fastmap_1.2.0 R6_2.6.1
#> [13] generics_0.1.4 curl_7.0.0 knitr_1.51 tibble_3.3.1
#> [17] desc_1.4.3 bslib_0.10.0 pillar_1.11.1 RColorBrewer_1.1-3
#> [21] rlang_1.1.7 utf8_1.2.6 cachem_1.1.0 xfun_0.56
#> [25] fs_1.6.7 sass_0.4.10 S7_0.2.1 cli_3.6.5
#> [29] pkgdown_2.2.0 withr_3.0.2 magrittr_2.0.4 digest_0.6.39
#> [33] grid_4.5.2 rappdirs_0.3.4 lifecycle_1.0.5 vctrs_0.7.1
#> [37] evaluate_1.0.5 glue_1.8.0 cellranger_1.1.0 farver_2.1.2
#> [41] codetools_0.2-20 ragg_1.5.1 purrr_1.2.1 httr_1.4.8
#> [45] rmarkdown_2.30 tools_4.5.2 pkgconfig_2.0.3 htmltools_0.5.9