Skip to contents

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

Loading the Package

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: 3042

Data 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, 10

Story 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: 1012

Story 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: 307

Story 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         81

Story 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    1012

Story 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: 3042

Data 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

Assessment Systems

System Years Proficiency Levels
ACT Aspire 2016-2023 In Need of Support, Close, Ready, Exceeding
ATLAS 2024+ Level 1, Level 2, Level 3, Level 4
2020 No data COVID-19 testing waiver

Available Subjects

  • ATLAS: ELA, Reading, Math, Science (by grade), Algebra, Geometry
  • ACT Aspire: English, Reading, Math, Science, Writing, ELA, STEM

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