Monday, April 13, 2026

Excel Academy Rhode Island enrollment nearly quadruples in three years

In this series: Rhode Island 2025-26 Enrollment.

Rhode Island lost 9,728 students over the past six years. One school gained 327.

Excel Academy Rhode Island enrolled 444 students in 2025-26, up from just 117 in 2022-23 — nearly quadrupling in three years. That 131-student gain this year alone was the largest of any school in the state, traditional or charter. The growth rate, 41.9%, was also the highest statewide.

It is a striking trajectory for a school that ranks 43rd out of 64 districts by total size. Providence, the largest district at 19,824 students, enrolls roughly 45 times as many.

Each year bigger than the last

Excel Academy has posted three consecutive years of enrollment growth, with each year adding more students in absolute terms than the one before — even as the percentage growth rate has naturally moderated.

Year Enrollment Change Pct Change
2022-23 117
2023-24 200 +83 +70.9%
2024-25 313 +113 +56.5%
2025-26 444 +131 +41.9%

The pattern is unusual. Most new schools see their growth rates and raw gains taper off together. Excel Academy's raw gains have accelerated — 83, then 113, then 131 — suggesting demand has not yet caught up with capacity.

A state losing ground

Excel Academy's growth stands out even more against the statewide backdrop. Rhode Island enrolled 133,829 students in 2025-26, down 2,149 from the prior year — the largest single-year drop since the pandemic year of 2020-21.

Year RI Total Change
2019-20 143,557
2020-21 139,184 -4,373
2021-22 138,566 -618
2022-23 137,449 -1,117
2023-24 136,154 -1,295
2024-25 135,978 -176
2025-26 133,829 -2,149

The state has lost students every year since 2019-20, dropping from 143,557 to 133,829 — a decline of 6.8% over six years.

RELATED: Charter enrollment crosses ten percent of Rhode Island's student population

The few that grew

The largest enrollment declines in 2025-26 were concentrated in urban districts. Providence lost 426 students, followed by Pawtucket (-282), Woonsocket (-261), Warwick (-149), and Westerly (-134). Cranston, the state's second-largest district, lost 131 students — exactly the number Excel Academy gained.

Of Rhode Island's 64 districts, only a small number posted gains — and the top growers were predominantly charter and specialty schools.

District Change Enrollment
Excel Academy Rhode Island +131 444
MET Career and Tech +77 894
Segue Institute for Learning +75 489
Trinity Academy for the Performing Arts +71 305
RISE Prep Academies +66 701
Nuestro Mundo Public Charter +43 335
Cumberland +38 4,919

Cumberland, at 4,919 students, was the only large traditional district among the top gainers.

What to watch next

Sustained growth at this pace raises practical questions. A school that has nearly quadrupled in three years must hire teachers, add classroom space, and scale operations to match. Whether Excel Academy can maintain program quality while continuing to expand is something the 2026-27 enrollment data will begin to answer — particularly if the school approaches the 500-student mark.

At the state level, the shift of students from traditional urban districts to smaller charter and specialty schools adds pressure to already-strained budgets in Providence, Pawtucket, and Woonsocket, where per-pupil funding follows departing students. If the 2025-26 pattern holds, the fiscal squeeze on those districts will deepen before it eases.

Current and prior year

enr_2026 <- fetch_enr(2026, tidy = TRUE) enr_2025 <- fetch_enr(2025, tidy = TRUE)

Historical

enr_hist <- fetch_enr_multi(2020:2026, tidy = TRUE)

Excel Academy enrollment

enr_hist |> dplyr::filter(is_district, subgroup == "total_enrollment", district_name == "Excel Academy Rhode Island") |> dplyr::select(end_year, n_students)

Statewide totals

enr_hist |> dplyr::filter(is_state, subgroup == "total_enrollment") |> dplyr::group_by(end_year) |> dplyr::summarize(total = max(n_students))

Top growing districts

library(dplyr) curr <- enr_2026 |> filter(is_district, subgroup == "total_enrollment") prev <- enr_2025 |> filter(is_district, subgroup == "total_enrollment") inner_join(curr, prev, by = "district_name", suffix = c("_2026", "_2025")) |> mutate(change = n_students_2026 - n_students_2025) |> arrange(desc(change)) |> select(district_name, change, n_students_2026) |> head(10)


*Detailed code that reproduces the analysis and figures in this article is available exclusively to EdTribune subscribers.*

Discussion

Loading comments...