Skip to contents

Overview

The mischooldata package provides access to Michigan K-12 enrollment data from the Center for Educational Performance and Information (CEPI). Data is available from 1996 to present for all public schools, districts, and the state.

Installation

# Install from GitHub
remotes::install_github("almartin82/mischooldata")

Quick Start

Fetch a Single Year

library(mischooldata)
library(dplyr)

# Get 2024 enrollment data (2023-24 school year)
enr_2024 <- fetch_enr(2024, use_cache = TRUE)

# View state total
enr_2024 |>
  filter(is_state, subgroup == "total_enrollment", grade_level == "TOTAL") |>
  select(end_year, n_students)
#>   end_year n_students
#> 1     2024    1373686

Fetch Multiple Years

# Get 5 years of data
enr_multi <- fetch_enr_multi(2020:2024, use_cache = TRUE)

# Track statewide enrollment over time
enr_multi |>
  filter(is_state, subgroup == "total_enrollment", grade_level == "TOTAL") |>
  select(end_year, n_students) |>
  arrange(end_year)
#>   end_year n_students
#> 1     2020    1444313
#> 2     2021    1398455
#> 3     2022    1392700
#> 4     2023    1383889
#> 5     2024    1373686

Check Available Years

# See what years are available
get_available_years()
#> $min_year
#> [1] 1996
#> 
#> $max_year
#> [1] 2026
#> 
#> $description
#> [1] "Michigan enrollment data is available from 1996 to 2026"

Data Structure

The tidy format (default) has the following columns:

  • end_year: School year end (2024 = 2023-24)
  • type: “State”, “District”, or “Building”
  • district_id: 5-digit district code
  • campus_id: 5-digit building code (NA for district/state rows)
  • district_name: District name
  • campus_name: Building name (NA for district/state rows)
  • grade_level: “TOTAL”, “K”, “01”, “02”, …, “12”
  • subgroup: Demographic or total (“total_enrollment”, “white”, “black”, etc.)
  • n_students: Enrollment count
  • pct: Percentage of total enrollment
  • is_state: TRUE for state-level rows
  • is_district: TRUE for district-level rows
  • is_campus: TRUE for building-level rows

Common Queries

Find Largest Districts

enr_2024 |>
  filter(is_district, subgroup == "total_enrollment", grade_level == "TOTAL") |>
  arrange(desc(n_students)) |>
  select(district_name, n_students) |>
  head(10)
#>                                district_name n_students
#> 1  Detroit Public Schools Community District      47581
#> 2                    Utica Community Schools      25303
#> 3              Dearborn City School District      19524
#> 4                   Ann Arbor Public Schools      16918
#> 5          Plymouth-Canton Community Schools      16051
#> 6        Rochester Community School District      14711
#> 7                    Chippewa Valley Schools      14375
#> 8                Grand Rapids Public Schools      13661
#> 9     Livonia Public Schools School District      12876
#> 10               Warren Consolidated Schools      12534

Get Detroit Enrollment

# Detroit Public Schools Community District = 82015
enr_2024 |>
  filter(district_id == "82015", grade_level == "TOTAL") |>
  select(subgroup, n_students, pct) |>
  arrange(desc(n_students))
#>              subgroup n_students          pct
#> 1    total_enrollment      47581 1.0000000000
#> 2               black      38386 0.8067505937
#> 3                male      23873 0.5017338854
#> 4              female      23708 0.4982661146
#> 5            hispanic       6953 0.1461297577
#> 6    total_enrollment       2485 1.0000000000
#> 7    total_enrollment       1931 1.0000000000
#> 8               black       1843 0.7416498994
#> 9              female       1564 0.6293762575
#> 10           hispanic       1454 0.7529777317
#> 11   total_enrollment       1171 1.0000000000
#> 12              white       1154 0.0242533784
#> 13              black       1147 0.9795046968
#> 14               male       1018 0.5271879855
#> 15   total_enrollment        933 1.0000000000
#> 16               male        921 0.3706237425
#> 17             female        913 0.4728120145
#> 18   total_enrollment        899 1.0000000000
#> 19   total_enrollment        879 1.0000000000
#> 20   total_enrollment        874 1.0000000000
#> 21              black        864 0.9829351536
#> 22   total_enrollment        852 1.0000000000
#> 23              black        847 0.9691075515
#> 24   total_enrollment        845 1.0000000000
#> 25              black        835 0.9800469484
#> 26              black        816 0.9656804734
#> 27   total_enrollment        813 1.0000000000
#> 28   total_enrollment        808 1.0000000000
#> 29   total_enrollment        807 1.0000000000
#> 30              black        804 0.9950495050
#> 31              black        792 0.9814126394
#> 32           hispanic        791 0.9729397294
#> 33   total_enrollment        790 1.0000000000
#> 34   total_enrollment        789 1.0000000000
#> 35   total_enrollment        788 1.0000000000
#> 36   total_enrollment        785 1.0000000000
#> 37              black        783 0.9974522293
#> 38              black        781 0.9898605830
#> 39             female        766 0.6541417592
#> 40              black        763 0.9682741117
#> 41              asian        719 0.0151110737
#> 42           hispanic        714 0.7652733119
#> 43   total_enrollment        693 1.0000000000
#> 44   total_enrollment        690 1.0000000000
#> 45   total_enrollment        689 1.0000000000
#> 46   total_enrollment        678 1.0000000000
#> 47              black        678 0.9826086957
#> 48              black        676 0.9811320755
#> 49              black        665 0.9808259587
#> 50   total_enrollment        636 1.0000000000
#> 51   total_enrollment        633 1.0000000000
#> 52   total_enrollment        633 1.0000000000
#> 53   total_enrollment        631 1.0000000000
#> 54              black        624 0.9811320755
#> 55              black        623 0.9842022117
#> 56              black        620 0.9794628752
#> 57              black        619 0.9809825674
#> 58   total_enrollment        605 1.0000000000
#> 59              black        598 0.9884297521
#> 60   total_enrollment        569 1.0000000000
#> 61              black        565 0.9929701230
#> 62   total_enrollment        562 1.0000000000
#> 63   total_enrollment        556 1.0000000000
#> 64              black        553 0.9839857651
#> 65           hispanic        543 0.6040044494
#> 66              black        542 0.9748201439
#> 67   total_enrollment        534 1.0000000000
#> 68              black        522 0.9775280899
#> 69   total_enrollment        520 1.0000000000
#> 70   total_enrollment        520 1.0000000000
#> 71   total_enrollment        514 1.0000000000
#> 72              black        513 0.9980544747
#> 73   total_enrollment        512 1.0000000000
#> 74              black        504 0.9843750000
#> 75               male        499 0.5550611791
#> 76              black        498 0.9576923077
#> 77   total_enrollment        496 1.0000000000
#> 78   total_enrollment        496 1.0000000000
#> 79              black        494 0.9500000000
#> 80               male        484 0.5506257110
#> 81              black        481 0.9697580645
#> 82   total_enrollment        477 1.0000000000
#> 83   total_enrollment        476 1.0000000000
#> 84   total_enrollment        476 1.0000000000
#> 85   total_enrollment        472 1.0000000000
#> 86   total_enrollment        470 1.0000000000
#> 87               male        470 0.5037513398
#> 88              black        469 0.9852941176
#> 89           hispanic        464 0.9354838710
#> 90             female        463 0.4962486602
#> 91   total_enrollment        462 1.0000000000
#> 92   total_enrollment        456 1.0000000000
#> 93   total_enrollment        455 1.0000000000
#> 94              black        454 0.9826839827
#> 95               male        454 0.5328638498
#> 96              black        453 0.9956043956
#> 97               male        452 0.5171624714
#> 98              black        446 0.9489361702
#> 99              black        444 0.9736842105
#> 100  total_enrollment        439 1.0000000000
#> 101  total_enrollment        438 1.0000000000
#> 102            female        437 0.5171597633
#> 103            female        435 0.5383663366
#> 104              male        434 0.5507614213
#> 105             black        431 0.9817767654
#> 106             black        430 0.9817351598
#> 107              male        430 0.5443037975
#> 108  total_enrollment        427 1.0000000000
#> 109  total_enrollment        427 1.0000000000
#> 110            female        425 0.5414012739
#> 111             black        422 0.9882903981
#> 112            female        422 0.4828375286
#> 113  total_enrollment        421 1.0000000000
#> 114  total_enrollment        420 1.0000000000
#> 115              male        419 0.5310519645
#> 116              male        417 0.5167286245
#> 117          hispanic        414 0.8679245283
#> 118              male        412 0.5067650677
#> 119             black        411 0.9785714286
#> 120             black        410 0.5189873418
#> 121  total_enrollment        409 1.0000000000
#> 122              male        408 0.4828402367
#> 123              male        405 0.3458582408
#> 124             black        402 0.9828850856
#> 125            female        401 0.4932349323
#> 126             black        400 0.8474576271
#> 127            female        400 0.4449388209
#> 128            female        398 0.4671361502
#> 129            female        395 0.4493742890
#> 130  total_enrollment        394 1.0000000000
#> 131  total_enrollment        392 1.0000000000
#> 132  total_enrollment        392 1.0000000000
#> 133  total_enrollment        391 1.0000000000
#> 134            female        390 0.4832713755
#> 135             black        388 0.9897959184
#> 136             black        388 0.9847715736
#> 137             black        383 0.9770408163
#> 138              male        381 0.5619469027
#> 139  total_enrollment        379 1.0000000000
#> 140          hispanic        379 0.7962184874
#> 141  total_enrollment        378 1.0000000000
#> 142             black        378 0.9667519182
#> 143          hispanic        378 0.8978622328
#> 144  total_enrollment        377 1.0000000000
#> 145  total_enrollment        377 1.0000000000
#> 146  total_enrollment        376 1.0000000000
#> 147  total_enrollment        376 1.0000000000
#> 148            female        376 0.5457184325
#> 149             black        374 0.9920424403
#> 150             black        373 0.9867724868
#> 151              male        373 0.4616336634
#> 152  total_enrollment        371 1.0000000000
#> 153             black        371 0.9788918206
#> 154  total_enrollment        370 1.0000000000
#> 155            female        370 0.4689480355
#> 156  total_enrollment        369 1.0000000000
#> 157             black        369 0.9946091644
#> 158              male        368 0.5310245310
#> 159             black        363 0.9837398374
#> 160             black        363 0.9810810811
#> 161             black        360 0.9549071618
#> 162              male        360 0.4585987261
#> 163            female        360 0.4556962025
#> 164             black        358 0.9521276596
#> 165  total_enrollment        357 1.0000000000
#> 166            female        354 0.4492385787
#> 167  total_enrollment        352 1.0000000000
#> 168          hispanic        351 0.8220140515
#> 169              male        351 0.5086956522
#> 170  total_enrollment        350 1.0000000000
#> 171             black        347 0.9857954545
#> 172  total_enrollment        343 1.0000000000
#> 173             black        343 0.9800000000
#> 174             black        343 0.1776281719
#> 175             asian        341 0.4316455696
#> 176             black        340 0.9523809524
#> 177            female        339 0.4913043478
#> 178            female        334 0.7106382979
#> 179  total_enrollment        333 1.0000000000
#> 180             black        333 0.9708454810
#> 181          hispanic        333 0.1340040241
#> 182              male        333 0.5235849057
#> 183  total_enrollment        330 1.0000000000
#> 184             black        327 0.9909090909
#> 185             black        325 0.9759759760
#> 186             black        325 0.8643617021
#> 187              male        325 0.5134281201
#> 188            female        325 0.4689754690
#> 189            female        322 0.5103011094
#> 190  total_enrollment        321 1.0000000000
#> 191              male        321 0.5641476274
#> 192          hispanic        318 0.4588744589
#> 193              male        317 0.5007898894
#> 194  total_enrollment        316 1.0000000000
#> 195            female        316 0.4992101106
#> 196             black        315 0.9813084112
#> 197              male        313 0.4542815675
#> 198            female        313 0.5173553719
#> 199              male        309 0.4896988906
#> 200            female        308 0.4865718799
#> 201            female        306 0.5730337079
#> 202  total_enrollment        305 1.0000000000
#> 203  total_enrollment        303 1.0000000000
#> 204            female        303 0.4764150943
#> 205             black        302 0.9966996700
#> 206              male        302 0.5807692308
#> 207  total_enrollment        301 1.0000000000
#> 208              male        300 0.5769230769
#> 209              male        299 0.5377697842
#> 210             black        298 0.9770491803
#> 211            female        297 0.4380530973
#> 212             black        295 0.9800664452
#> 213  total_enrollment        294 1.0000000000
#> 214              male        292 0.4826446281
#> 215  total_enrollment        291 1.0000000000
#> 216             black        291 0.9208860759
#> 217       multiracial        289 0.0060738530
#> 218  total_enrollment        283 1.0000000000
#> 219             black        283 0.9725085911
#> 220              male        282 0.5017793594
#> 221            female        280 0.4982206406
#> 222  total_enrollment        277 1.0000000000
#> 223             black        277 0.3081201335
#> 224  total_enrollment        276 1.0000000000
#> 225  total_enrollment        274 1.0000000000
#> 226             black        273 0.9963503650
#> 227             black        273 0.9646643110
#> 228              male        267 0.5656779661
#> 229              male        267 0.5383064516
#> 230             black        265 0.9601449275
#> 231              male        263 0.5116731518
#> 232              male        262 0.5117187500
#> 233            female        257 0.4622302158
#> 234              male        255 0.5357142857
#> 235              male        254 0.6047619048
#> 236            female        254 0.5120967742
#> 237  total_enrollment        253 1.0000000000
#> 238              male        253 0.5303983229
#> 239             black        252 0.8571428571
#> 240            female        251 0.4883268482
#> 241            female        250 0.4882812500
#> 242  total_enrollment        248 1.0000000000
#> 243  total_enrollment        248 1.0000000000
#> 244            female        248 0.4358523726
#> 245            female        246 0.5168067227
#> 246              male        242 0.5512528474
#> 247              male        242 0.5307017544
#> 248              male        242 0.4879032258
#> 249              male        242 0.5238095238
#> 250             black        241 0.9717741935
#> 251             black        239 0.9637096774
#> 252              male        239 0.6065989848
#> 253             asian        238 0.0957746479
#> 254              male        236 0.5186813187
#> 255  total_enrollment        235 1.0000000000
#> 256            female        235 1.0000000000
#> 257              male        231 0.5409836066
#> 258              male        230 0.4831932773
#> 259            female        229 0.4616935484
#> 260            female        229 0.5439429929
#> 261              male        228 0.6031746032
#> 262              male        228 0.4269662921
#> 263            female        224 0.4696016771
#> 264              male        222 0.5068493151
#> 265            female        221 0.4642857143
#> 266            female        221 0.5175644028
#> 267            female        220 0.4230769231
#> 268            female        220 0.4761904762
#> 269            female        219 0.4813186813
#> 270  total_enrollment        218 1.0000000000
#> 271            female        218 0.4192307692
#> 272            female        216 0.4931506849
#> 273  total_enrollment        215 1.0000000000
#> 274            female        214 0.4692982456
#> 275          hispanic        210 0.7581227437
#> 276              male        209 0.5331632653
#> 277              male        206 0.5478723404
#> 278              male        206 0.4824355972
#> 279              male        205 0.5012224939
#> 280            female        205 0.4343220339
#> 281             white        204 0.2943722944
#> 282            female        204 0.4987775061
#> 283            female        203 0.5398936170
#> 284              male        202 0.5166240409
#> 285              male        202 0.5153061224
#> 286  total_enrollment        200 1.0000000000
#> 287              male        200 0.5390835580
#> 288            female        197 0.4487471526
#> 289            female        196 0.4590163934
#> 290            female        195 0.5145118734
#> 291              male        193 0.5216216216
#> 292  total_enrollment        192 1.0000000000
#> 293              male        192 0.5092838196
#> 294              male        192 0.4560570071
#> 295              male        191 0.5066312997
#> 296            female        191 0.5176151762
#> 297            female        190 0.4846938776
#> 298            female        189 0.4833759591
#> 299             black        188 0.9791666667
#> 300            female        186 0.4933687003
#> 301              male        185 0.5182072829
#> 302            female        185 0.4907161804
#> 303             black        184 0.9200000000
#> 304              male        184 0.4854881266
#> 305  total_enrollment        183 1.0000000000
#> 306            female        183 0.4668367347
#> 307             black        181 0.9890710383
#> 308              male        180 0.5405405405
#> 309              male        178 0.4823848238
#> 310              male        178 0.5632911392
#> 311              male        177 0.5028409091
#> 312            female        177 0.5160349854
#> 313            female        177 0.4783783784
#> 314              male        176 0.5028571429
#> 315            female        175 0.4971590909
#> 316          hispanic        174 0.7981651376
#> 317            female        174 0.4971428571
#> 318              male        173 0.4601063830
#> 319            female        172 0.4817927171
#> 320            female        172 0.5676567657
#> 321              male        171 0.5876288660
#> 322            female        171 0.4609164420
#> 323            female        170 0.4521276596
#> 324            female        170 0.5151515152
#> 325              male        166 0.4839650146
#> 326            female        166 0.3952380952
#> 327              male        165 0.5140186916
#> 328             black        162 0.2337662338
#> 329              male        160 0.4848484848
#> 330             black        157 0.1682743837
#> 331             black        156 0.7255813953
#> 332              male        156 0.5512367491
#> 333            female        156 0.4859813084
#> 334              male        155 0.5149501661
#> 335            female        155 0.3934010152
#> 336            female        153 0.4594594595
#> 337            female        153 0.5016393443
#> 338  total_enrollment        152 1.0000000000
#> 339              male        152 0.4983606557
#> 340            female        152 0.5170068027
#> 341            female        150 0.3968253968
#> 342             black        148 0.5849802372
#> 343            female        146 0.4850498339
#> 344              male        142 0.4829931973
#> 345            female        141 0.5145985401
#> 346            female        141 0.5090252708
#> 347              male        138 0.5000000000
#> 348            female        138 0.5000000000
#> 349            female        138 0.4367088608
#> 350              male        136 0.4909747292
#> 351              male        136 0.5483870968
#> 352              male        136 0.2893617021
#> 353              male        133 0.4854014599
#> 354              male        132 0.5217391304
#> 355              male        131 0.4323432343
#> 356  total_enrollment        130 1.0000000000
#> 357              male        129 0.5201612903
#> 358             white        128 0.0662868980
#> 359            female        127 0.4487632509
#> 360  total_enrollment        126 1.0000000000
#> 361             black        126 0.8289473684
#> 362             black        124 0.9538461538
#> 363            female        121 0.4782608696
#> 364            female        120 0.4123711340
#> 365            female        119 0.4798387097
#> 366  total_enrollment        117 1.0000000000
#> 367             black        115 0.9829059829
#> 368              male        114 0.5229357798
#> 369              male        112 0.5209302326
#> 370            female        112 0.4516129032
#> 371             black        107 0.4553191489
#> 372            female        105 0.5468750000
#> 373            female        105 0.5250000000
#> 374            female        104 0.4770642202
#> 375  total_enrollment        103 1.0000000000
#> 376            female        103 0.4790697674
#> 377  total_enrollment        102 1.0000000000
#> 378             black        101 0.9805825243
#> 379            female        101 0.6644736842
#> 380             black        100 0.7936507937
#> 381             black         99 0.9705882353
#> 382              male         95 0.4750000000
#> 383            female         94 0.5136612022
#> 384  total_enrollment         90 1.0000000000
#> 385              male         89 0.4863387978
#> 386              male         87 0.4531250000
#> 387  total_enrollment         80 1.0000000000
#> 388              male         80 1.0000000000
#> 389             white         78 0.3083003953
#> 390             black         78 0.9750000000
#> 391             white         75 0.0834260289
#> 392              male         75 0.5952380952
#> 393             white         70 0.2978723404
#> 394             black         68 0.7555555556
#> 395            female         68 0.5230769231
#> 396              male         65 0.5555555556
#> 397              male         64 0.6213592233
#> 398              male         62 0.4769230769
#> 399  total_enrollment         61 1.0000000000
#> 400             white         57 0.0610932476
#> 401   native_american         57 0.0011979572
#> 402             asian         54 0.2297872340
#> 403            female         52 0.5098039216
#> 404            female         52 0.4444444444
#> 405              male         51 0.3355263158
#> 406            female         51 0.4047619048
#> 407              male         50 0.4901960784
#> 408             black         49 0.1029411765
#> 409              male         49 0.5444444444
#> 410             white         47 0.0189134809
#> 411             black         47 0.7704918033
#> 412             white         46 0.2139534884
#> 413             black         46 0.1077283372
#> 414             white         44 0.0924369748
#> 415             black         43 0.1552346570
#> 416            female         41 0.4555555556
#> 417            female         39 0.3786407767
#> 418             white         37 0.0984042553
#> 419          hispanic         35 0.0741525424
#> 420             white         33 0.0691823899
#> 421            female         32 0.5245901639
#> 422             white         29 0.0614406780
#> 423             black         29 0.1330275229
#> 424              male         29 0.4754098361
#> 425  total_enrollment         28 1.0000000000
#> 426             black         27 0.9642857143
#> 427          hispanic         27 0.0918367347
#> 428          hispanic         25 0.0988142292
#> 429          hispanic         25 0.0791139241
#> 430             white         23 0.0538641686
#> 431  pacific_islander         23 0.0004833862
#> 432              male         23 0.8214285714
#> 433       multiracial         22 0.0260355030
#> 434             black         21 0.0440251572
#> 435             black         20 0.0475059382
#> 436             white         19 0.0451306413
#> 437       multiracial         19 0.0076458753
#> 438          hispanic         18 0.0346153846
#> 439             white         17 0.0613718412
#> 440             white         16 0.0322580645
#> 441             asian         16 0.1052631579
#> 442       multiracial         16 0.0202531646
#> 443             white         14 0.0642201835
#> 444             black         14 0.0282258065
#> 445          hispanic         14 0.1111111111
#> 446          hispanic         13 0.0147895336
#> 447             white         12 0.0151898734
#> 448          hispanic         12 0.0241935484
#> 449       multiracial         12 0.0102476516
#> 450  total_enrollment         11 1.0000000000
#> 451          hispanic         11 0.1222222222
#> 452       multiracial         11 0.0374149660
#> 453             white         10 0.0192307692
#> 454             white         10 0.1111111111
#> 455             black         10 0.0123001230
#> 456          hispanic         10 0.0114416476
#> 457             white          9 0.0110701107
#> 458             black          9 0.8181818182
#> 459          hispanic          9 0.0113924051
#> 460          hispanic          9 0.0130624093
#> 461       multiracial          9 0.0239361702
#> 462              male          9 0.8181818182
#> 463             white          8 0.0149812734
#> 464             white          8 0.0170212766
#> 465             white          8 0.0634920635
#> 466          hispanic          8 0.0143884892
#> 467          hispanic          8 0.0093896714
#> 468          hispanic          8 0.0400000000
#> 469          hispanic          8 0.0170212766
#> 470       multiracial          8 0.0167714885
#> 471       multiracial          8 0.0224089636
#> 472       multiracial          8 0.0212765957
#> 473       multiracial          8 0.0091533181
#> 474       multiracial          8 0.0101522843
#> 475             white          7 0.0350000000
#> 476             white          7 0.0184696570
#> 477             white          7 0.1147540984
#> 478          hispanic          7 0.0179028133
#> 479          hispanic          7 0.0134615385
#> 480          hispanic          7 0.0325581395
#> 481          hispanic          7 0.0088832487
#> 482       multiracial          7 0.0101449275
#> 483       multiracial          7 0.0163934426
#> 484             white          6 0.0394736842
#> 485             white          6 0.0068649886
#> 486          hispanic          6 0.0153061224
#> 487          hispanic          6 0.0180180180
#> 488          hispanic          6 0.0142857143
#> 489          hispanic          6 0.0074349442
#> 490          hispanic          6 0.0241935484
#> 491          hispanic          6 0.0162162162
#> 492          hispanic          6 0.0051238258
#> 493             asian          6 0.0076142132
#> 494       multiracial          6 0.0196721311
#> 495       multiracial          6 0.0074349442
#> 496       multiracial          6 0.0070422535
#> 497       multiracial          6 0.0127659574
#> 498             white          5 0.0089928058
#> 499             white          5 0.0096153846
#> 500             white          5 0.0176678445
#> 501             white          5 0.0078616352
#> 502             white          5 0.0132978723
#> 503             white          5 0.0063371356
#> 504          hispanic          5 0.0105042017
#> 505          hispanic          5 0.0078988942
#> 506          hispanic          5 0.0181159420
#> 507          hispanic          5 0.0073746313
#> 508          hispanic          5 0.0135501355
#> 509          hispanic          5 0.0059171598
#> 510          hispanic          5 0.0171821306
#> 511          hispanic          5 0.0078988942
#> 512             asian          5 0.0072150072
#> 513             asian          5 0.0132625995
#> 514             asian          5 0.0819672131
#> 515       multiracial          5 0.0096153846
#> 516       multiracial          5 0.0145772595
#> 517       multiracial          5 0.0180505415
#> 518            female          5 0.1785714286
#> 519             white          4 0.0113636364
#> 520             white          4 0.0063191153
#> 521             white          4 0.0058997050
#> 522             white          4 0.0136054422
#> 523             white          4 0.0091324201
#> 524             white          4 0.0106100796
#> 525             white          4 0.0034158839
#> 526          hispanic          4 0.0078125000
#> 527          hispanic          4 0.0066115702
#> 528          hispanic          4 0.0087719298
#> 529          hispanic          4 0.0063391442
#> 530          hispanic          4 0.0208333333
#> 531          hispanic          4 0.0071174377
#> 532          hispanic          4 0.0086580087
#> 533             asian          4 0.0063191153
#> 534             asian          4 0.0097799511
#> 535   native_american          4 0.0016096579
#> 536       multiracial          4 0.0084033613
#> 537       multiracial          4 0.0084745763
#> 538       multiracial          4 0.0307692308
#> 539       multiracial          4 0.0042872454
#> 540       multiracial          4 0.0044493882
#> 541       multiracial          4 0.0063391442
#> 542       multiracial          4 0.0062893082
#> 543       multiracial          4 0.0186046512
#> 544       multiracial          4 0.0071174377
#> 545       multiracial          4 0.0086580087
#> 546       multiracial          4 0.0063191153
#> 547             white          3 0.0068337130
#> 548             white          3 0.0294117647
#> 549             white          3 0.0084033613
#> 550             white          3 0.0037174721
#> 551             white          3 0.0085714286
#> 552             white          3 0.0047543582
#> 553             white          3 0.0038071066
#> 554             white          3 0.0043541364
#> 555          hispanic          3 0.0084033613
#> 556          hispanic          3 0.0197368421
#> 557          hispanic          3 0.0106007067
#> 558          hispanic          3 0.0079365079
#> 559          hispanic          3 0.0079575597
#> 560          hispanic          3 0.0120967742
#> 561          hispanic          3 0.0076142132
#> 562          hispanic          3 0.0093457944
#> 563             asian          3 0.0076726343
#> 564             asian          3 0.0085714286
#> 565             asian          3 0.0015535992
#> 566             asian          3 0.0238095238
#> 567   native_american          3 0.0084033613
#> 568   native_american          3 0.0071258907
#> 569  pacific_islander          3 0.0099667774
#> 570       multiracial          3 0.0127659574
#> 571       multiracial          3 0.0037128713
#> 572       multiracial          3 0.0108695652
#> 573       multiracial          3 0.0065789474
#> 574       multiracial          3 0.0043290043
#> 575       multiracial          3 0.0079575597
#> 576       multiracial          3 0.0120967742
#> 577             white          2 0.0051150895
#> 578             white          2 0.0047619048
#> 579             white          2 0.0072463768
#> 580             white          2 0.0035149385
#> 581             white          2 0.0028985507
#> 582             white          2 0.0033057851
#> 583             white          2 0.1818181818
#> 584             white          2 0.0040322581
#> 585             white          2 0.0109289617
#> 586          hispanic          2 0.0058309038
#> 587          hispanic          2 0.0053050398
#> 588          hispanic          2 0.0053191489
#> 589          hispanic          2 0.0170940171
#> 590          hispanic          2 0.0046838407
#> 591          hispanic          2 0.0031446541
#> 592          hispanic          2 0.0053191489
#> 593          hispanic          2 0.0250000000
#> 594             asian          2 0.0045558087
#> 595             asian          2 0.0042372881
#> 596             asian          2 0.0039062500
#> 597             asian          2 0.0028985507
#> 598             asian          2 0.0053191489
#> 599             asian          2 0.0043859649
#> 600             asian          2 0.0093023256
#> 601   native_american          2 0.0038461538
#> 602   native_american          2 0.0025316456
#> 603   native_american          2 0.0053191489
#> 604   native_american          2 0.0023668639
#> 605   native_american          2 0.0070671378
#> 606   native_american          2 0.0053191489
#> 607   native_american          2 0.0022883295
#> 608   native_american          2 0.0051020408
#> 609       multiracial          2 0.0022753129
#> 610       multiracial          2 0.0029498525
#> 611       multiracial          2 0.0068728522
#> 612       multiracial          2 0.0024600246
#> 613       multiracial          2 0.0037453184
#> 614       multiracial          2 0.0010357328
#> 615       multiracial          2 0.0050761421
#> 616       multiracial          2 0.0327868852
#> 617       multiracial          2 0.0025348542
#> 618       multiracial          2 0.0062305296
#> 619            female          2 0.1818181818
#> 620             white          1 0.0021008403
#> 621             white          1 0.0076923077
#> 622             white          1 0.0030030030
#> 623             white          1 0.0032786885
#> 624             white          1 0.0040322581
#> 625             white          1 0.0027100271
#> 626             white          1 0.0027027027
#> 627             white          1 0.0021929825
#> 628             white          1 0.0011737089
#> 629             white          1 0.0034364261
#> 630             white          1 0.0030303030
#> 631             white          1 0.0026455026
#> 632             white          1 0.0357142857
#> 633             white          1 0.0040322581
#> 634             white          1 0.0024449878
#> 635             white          1 0.0025380711
#> 636             white          1 0.0015797788
#> 637             white          1 0.0021978022
#> 638             white          1 0.0031152648
#> 639          hispanic          1 0.0022779043
#> 640          hispanic          1 0.0028409091
#> 641          hispanic          1 0.0076923077
#> 642          hispanic          1 0.0017574692
#> 643          hispanic          1 0.0022831050
#> 644          hispanic          1 0.0030303030
#> 645          hispanic          1 0.0018726592
#> 646          hispanic          1 0.0033222591
#> 647          hispanic          1 0.0019455253
#> 648          hispanic          1 0.0026385224
#> 649          hispanic          1 0.0025510204
#> 650          hispanic          1 0.0021978022
#> 651             asian          1 0.0097087379
#> 652             asian          1 0.0029154519
#> 653             asian          1 0.0020964361
#> 654             asian          1 0.0025510204
#> 655             asian          1 0.0019230769
#> 656             asian          1 0.0014749263
#> 657             asian          1 0.0040322581
#> 658             asian          1 0.0036101083
#> 659             asian          1 0.0026455026
#> 660             asian          1 0.0015723270
#> 661             asian          1 0.0050000000
#> 662             asian          1 0.0011441648
#> 663             asian          1 0.0033222591
#> 664             asian          1 0.0025510204
#> 665             asian          1 0.0012674271
#> 666   native_american          1 0.0022779043
#> 667   native_american          1 0.0042553191
#> 668   native_american          1 0.0029154519
#> 669   native_american          1 0.0021008403
#> 670   native_american          1 0.0021186441
#> 671   native_american          1 0.0025510204
#> 672   native_american          1 0.0012376238
#> 673   native_american          1 0.0014749263
#> 674   native_american          1 0.0039525692
#> 675   native_american          1 0.0040322581
#> 676   native_american          1 0.0014492754
#> 677   native_american          1 0.0028571429
#> 678   native_american          1 0.0022831050
#> 679   native_american          1 0.0021929825
#> 680   native_american          1 0.0036101083
#> 681   native_american          1 0.0011737089
#> 682   native_american          1 0.0023419204
#> 683   native_american          1 0.0012738854
#> 684   native_american          1 0.0030303030
#> 685   native_american          1 0.0026525199
#> 686   native_american          1 0.0012300123
#> 687   native_american          1 0.0018726592
#> 688   native_american          1 0.0020161290
#> 689   native_american          1 0.0026954178
#> 690   native_american          1 0.0017793594
#> 691   native_american          1 0.0033222591
#> 692   native_american          1 0.0005178664
#> 693   native_american          1 0.0008539710
#> 694   native_american          1 0.0033003300
#> 695   native_american          1 0.0021276596
#> 696   native_american          1 0.0111111111
#> 697  pacific_islander          1 0.0097087379
#> 698  pacific_islander          1 0.0029154519
#> 699  pacific_islander          1 0.0021186441
#> 700  pacific_islander          1 0.0004024145
#> 701  pacific_islander          1 0.0010718114
#> 702  pacific_islander          1 0.0019531250
#> 703  pacific_islander          1 0.0023809524
#> 704  pacific_islander          1 0.0036231884
#> 705  pacific_islander          1 0.0022831050
#> 706  pacific_islander          1 0.0021929825
#> 707  pacific_islander          1 0.0011737089
#> 708  pacific_islander          1 0.0023419204
#> 709  pacific_islander          1 0.0014430014
#> 710  pacific_islander          1 0.0026525199
#> 711  pacific_islander          1 0.0015847861
#> 712  pacific_islander          1 0.0012690355
#> 713  pacific_islander          1 0.0008539710
#> 714  pacific_islander          1 0.0024449878
#> 715  pacific_islander          1 0.0021276596
#> 716  pacific_islander          1 0.0079365079
#> 717       multiracial          1 0.0017985612
#> 718       multiracial          1 0.0025575448
#> 719       multiracial          1 0.0022779043
#> 720       multiracial          1 0.0026525199
#> 721       multiracial          1 0.0036496350
#> 722       multiracial          1 0.0025510204
#> 723       multiracial          1 0.0030030030
#> 724       multiracial          1 0.0065789474
#> 725       multiracial          1 0.0019531250
#> 726       multiracial          1 0.0017574692
#> 727       multiracial          1 0.0039525692
#> 728       multiracial          1 0.0045871560
#> 729       multiracial          1 0.0016528926
#> 730       multiracial          1 0.0022831050
#> 731       multiracial          1 0.0023419204
#> 732       multiracial          1 0.0012738854
#> 733       multiracial          1 0.0020161290
#> 734       multiracial          1 0.0026954178
#> 735       multiracial          1 0.0020161290
#> 736       multiracial          1 0.0014513788
#> 737       multiracial          1 0.0023752969
#> 738       multiracial          1 0.0024449878
#> 739             white          0 0.0000000000
#> 740             white          0 0.0000000000
#> 741             white          0 0.0000000000
#> 742             white          0 0.0000000000
#> 743             white          0 0.0000000000
#> 744             white          0 0.0000000000
#> 745             white          0 0.0000000000
#> 746             white          0 0.0000000000
#> 747             white          0 0.0000000000
#> 748             white          0 0.0000000000
#> 749             white          0 0.0000000000
#> 750             white          0 0.0000000000
#> 751             white          0 0.0000000000
#> 752             white          0 0.0000000000
#> 753             white          0 0.0000000000
#> 754             white          0 0.0000000000
#> 755             white          0 0.0000000000
#> 756             white          0 0.0000000000
#> 757             white          0 0.0000000000
#> 758             white          0 0.0000000000
#> 759             white          0 0.0000000000
#> 760             white          0 0.0000000000
#> 761          hispanic          0 0.0000000000
#> 762          hispanic          0 0.0000000000
#> 763          hispanic          0 0.0000000000
#> 764          hispanic          0 0.0000000000
#> 765          hispanic          0 0.0000000000
#> 766          hispanic          0 0.0000000000
#> 767          hispanic          0 0.0000000000
#> 768          hispanic          0 0.0000000000
#> 769          hispanic          0 0.0000000000
#> 770          hispanic          0 0.0000000000
#> 771          hispanic          0 0.0000000000
#> 772          hispanic          0 0.0000000000
#> 773          hispanic          0 0.0000000000
#> 774          hispanic          0 0.0000000000
#> 775          hispanic          0 0.0000000000
#> 776          hispanic          0 0.0000000000
#> 777          hispanic          0 0.0000000000
#> 778             asian          0 0.0000000000
#> 779             asian          0 0.0000000000
#> 780             asian          0 0.0000000000
#> 781             asian          0 0.0000000000
#> 782             asian          0 0.0000000000
#> 783             asian          0 0.0000000000
#> 784             asian          0 0.0000000000
#> 785             asian          0 0.0000000000
#> 786             asian          0 0.0000000000
#> 787             asian          0 0.0000000000
#> 788             asian          0 0.0000000000
#> 789             asian          0 0.0000000000
#> 790             asian          0 0.0000000000
#> 791             asian          0 0.0000000000
#> 792             asian          0 0.0000000000
#> 793             asian          0 0.0000000000
#> 794             asian          0 0.0000000000
#> 795             asian          0 0.0000000000
#> 796             asian          0 0.0000000000
#> 797             asian          0 0.0000000000
#> 798             asian          0 0.0000000000
#> 799             asian          0 0.0000000000
#> 800             asian          0 0.0000000000
#> 801             asian          0 0.0000000000
#> 802             asian          0 0.0000000000
#> 803             asian          0 0.0000000000
#> 804             asian          0 0.0000000000
#> 805             asian          0 0.0000000000
#> 806             asian          0 0.0000000000
#> 807             asian          0 0.0000000000
#> 808             asian          0 0.0000000000
#> 809             asian          0 0.0000000000
#> 810             asian          0 0.0000000000
#> 811             asian          0 0.0000000000
#> 812             asian          0 0.0000000000
#> 813             asian          0 0.0000000000
#> 814             asian          0 0.0000000000
#> 815             asian          0 0.0000000000
#> 816             asian          0 0.0000000000
#> 817             asian          0 0.0000000000
#> 818             asian          0 0.0000000000
#> 819             asian          0 0.0000000000
#> 820             asian          0 0.0000000000
#> 821             asian          0 0.0000000000
#> 822             asian          0 0.0000000000
#> 823             asian          0 0.0000000000
#> 824             asian          0 0.0000000000
#> 825             asian          0 0.0000000000
#> 826             asian          0 0.0000000000
#> 827             asian          0 0.0000000000
#> 828             asian          0 0.0000000000
#> 829             asian          0 0.0000000000
#> 830             asian          0 0.0000000000
#> 831             asian          0 0.0000000000
#> 832             asian          0 0.0000000000
#> 833             asian          0 0.0000000000
#> 834             asian          0 0.0000000000
#> 835             asian          0 0.0000000000
#> 836             asian          0 0.0000000000
#> 837             asian          0 0.0000000000
#> 838             asian          0 0.0000000000
#> 839             asian          0 0.0000000000
#> 840             asian          0 0.0000000000
#> 841             asian          0 0.0000000000
#> 842   native_american          0 0.0000000000
#> 843   native_american          0 0.0000000000
#> 844   native_american          0 0.0000000000
#> 845   native_american          0 0.0000000000
#> 846   native_american          0 0.0000000000
#> 847   native_american          0 0.0000000000
#> 848   native_american          0 0.0000000000
#> 849   native_american          0 0.0000000000
#> 850   native_american          0 0.0000000000
#> 851   native_american          0 0.0000000000
#> 852   native_american          0 0.0000000000
#> 853   native_american          0 0.0000000000
#> 854   native_american          0 0.0000000000
#> 855   native_american          0 0.0000000000
#> 856   native_american          0 0.0000000000
#> 857   native_american          0 0.0000000000
#> 858   native_american          0 0.0000000000
#> 859   native_american          0 0.0000000000
#> 860   native_american          0 0.0000000000
#> 861   native_american          0 0.0000000000
#> 862   native_american          0 0.0000000000
#> 863   native_american          0 0.0000000000
#> 864   native_american          0 0.0000000000
#> 865   native_american          0 0.0000000000
#> 866   native_american          0 0.0000000000
#> 867   native_american          0 0.0000000000
#> 868   native_american          0 0.0000000000
#> 869   native_american          0 0.0000000000
#> 870   native_american          0 0.0000000000
#> 871   native_american          0 0.0000000000
#> 872   native_american          0 0.0000000000
#> 873   native_american          0 0.0000000000
#> 874   native_american          0 0.0000000000
#> 875   native_american          0 0.0000000000
#> 876   native_american          0 0.0000000000
#> 877   native_american          0 0.0000000000
#> 878   native_american          0 0.0000000000
#> 879   native_american          0 0.0000000000
#> 880   native_american          0 0.0000000000
#> 881   native_american          0 0.0000000000
#> 882   native_american          0 0.0000000000
#> 883   native_american          0 0.0000000000
#> 884   native_american          0 0.0000000000
#> 885   native_american          0 0.0000000000
#> 886   native_american          0 0.0000000000
#> 887   native_american          0 0.0000000000
#> 888   native_american          0 0.0000000000
#> 889   native_american          0 0.0000000000
#> 890   native_american          0 0.0000000000
#> 891   native_american          0 0.0000000000
#> 892   native_american          0 0.0000000000
#> 893   native_american          0 0.0000000000
#> 894   native_american          0 0.0000000000
#> 895   native_american          0 0.0000000000
#> 896   native_american          0 0.0000000000
#> 897   native_american          0 0.0000000000
#> 898   native_american          0 0.0000000000
#> 899   native_american          0 0.0000000000
#> 900  pacific_islander          0 0.0000000000
#> 901  pacific_islander          0 0.0000000000
#> 902  pacific_islander          0 0.0000000000
#> 903  pacific_islander          0 0.0000000000
#> 904  pacific_islander          0 0.0000000000
#> 905  pacific_islander          0 0.0000000000
#> 906  pacific_islander          0 0.0000000000
#> 907  pacific_islander          0 0.0000000000
#> 908  pacific_islander          0 0.0000000000
#> 909  pacific_islander          0 0.0000000000
#> 910  pacific_islander          0 0.0000000000
#> 911  pacific_islander          0 0.0000000000
#> 912  pacific_islander          0 0.0000000000
#> 913  pacific_islander          0 0.0000000000
#> 914  pacific_islander          0 0.0000000000
#> 915  pacific_islander          0 0.0000000000
#> 916  pacific_islander          0 0.0000000000
#> 917  pacific_islander          0 0.0000000000
#> 918  pacific_islander          0 0.0000000000
#> 919  pacific_islander          0 0.0000000000
#> 920  pacific_islander          0 0.0000000000
#> 921  pacific_islander          0 0.0000000000
#> 922  pacific_islander          0 0.0000000000
#> 923  pacific_islander          0 0.0000000000
#> 924  pacific_islander          0 0.0000000000
#> 925  pacific_islander          0 0.0000000000
#> 926  pacific_islander          0 0.0000000000
#> 927  pacific_islander          0 0.0000000000
#> 928  pacific_islander          0 0.0000000000
#> 929  pacific_islander          0 0.0000000000
#> 930  pacific_islander          0 0.0000000000
#> 931  pacific_islander          0 0.0000000000
#> 932  pacific_islander          0 0.0000000000
#> 933  pacific_islander          0 0.0000000000
#> 934  pacific_islander          0 0.0000000000
#> 935  pacific_islander          0 0.0000000000
#> 936  pacific_islander          0 0.0000000000
#> 937  pacific_islander          0 0.0000000000
#> 938  pacific_islander          0 0.0000000000
#> 939  pacific_islander          0 0.0000000000
#> 940  pacific_islander          0 0.0000000000
#> 941  pacific_islander          0 0.0000000000
#> 942  pacific_islander          0 0.0000000000
#> 943  pacific_islander          0 0.0000000000
#> 944  pacific_islander          0 0.0000000000
#> 945  pacific_islander          0 0.0000000000
#> 946  pacific_islander          0 0.0000000000
#> 947  pacific_islander          0 0.0000000000
#> 948  pacific_islander          0 0.0000000000
#> 949  pacific_islander          0 0.0000000000
#> 950  pacific_islander          0 0.0000000000
#> 951  pacific_islander          0 0.0000000000
#> 952  pacific_islander          0 0.0000000000
#> 953  pacific_islander          0 0.0000000000
#> 954  pacific_islander          0 0.0000000000
#> 955  pacific_islander          0 0.0000000000
#> 956  pacific_islander          0 0.0000000000
#> 957  pacific_islander          0 0.0000000000
#> 958  pacific_islander          0 0.0000000000
#> 959  pacific_islander          0 0.0000000000
#> 960  pacific_islander          0 0.0000000000
#> 961  pacific_islander          0 0.0000000000
#> 962  pacific_islander          0 0.0000000000
#> 963  pacific_islander          0 0.0000000000
#> 964  pacific_islander          0 0.0000000000
#> 965  pacific_islander          0 0.0000000000
#> 966  pacific_islander          0 0.0000000000
#> 967  pacific_islander          0 0.0000000000
#> 968  pacific_islander          0 0.0000000000
#> 969  pacific_islander          0 0.0000000000
#> 970  pacific_islander          0 0.0000000000
#> 971  pacific_islander          0 0.0000000000
#> 972  pacific_islander          0 0.0000000000
#> 973  pacific_islander          0 0.0000000000
#> 974  pacific_islander          0 0.0000000000
#> 975  pacific_islander          0 0.0000000000
#> 976  pacific_islander          0 0.0000000000
#> 977  pacific_islander          0 0.0000000000
#> 978  pacific_islander          0 0.0000000000
#> 979       multiracial          0 0.0000000000
#> 980       multiracial          0 0.0000000000
#> 981       multiracial          0 0.0000000000
#> 982       multiracial          0 0.0000000000
#> 983       multiracial          0 0.0000000000
#> 984       multiracial          0 0.0000000000
#> 985       multiracial          0 0.0000000000
#> 986       multiracial          0 0.0000000000
#> 987       multiracial          0 0.0000000000
#> 988       multiracial          0 0.0000000000
#> 989       multiracial          0 0.0000000000
#> 990       multiracial          0 0.0000000000
#> 991       multiracial          0 0.0000000000
#> 992       multiracial          0 0.0000000000
#> 993       multiracial          0 0.0000000000
#> 994       multiracial          0 0.0000000000
#> 995       multiracial          0 0.0000000000
#> 996       multiracial          0 0.0000000000
#> 997       multiracial          0 0.0000000000
#> 998       multiracial          0 0.0000000000
#> 999       multiracial          0 0.0000000000
#> 1000      multiracial          0 0.0000000000
#> 1001      multiracial          0 0.0000000000
#> 1002      multiracial          0 0.0000000000
#> 1003      multiracial          0 0.0000000000
#> 1004      multiracial          0 0.0000000000
#> 1005      multiracial          0 0.0000000000
#> 1006      multiracial          0 0.0000000000
#> 1007      multiracial          0 0.0000000000
#> 1008      multiracial          0 0.0000000000
#> 1009             male          0 0.0000000000
#> 1010           female          0 0.0000000000

Analyze Demographics Over Time

enr_multi |>
  filter(is_state, grade_level == "TOTAL",
         subgroup %in% c("white", "black", "hispanic", "asian")) |>
  select(end_year, subgroup, n_students) |>
  tidyr::pivot_wider(names_from = subgroup, values_from = n_students)
#> # A tibble: 5 × 5
#>   end_year  white  black hispanic asian
#>      <dbl>  <dbl>  <dbl>    <dbl> <dbl>
#> 1     2020 946701 255296   118203 50610
#> 2     2021 909888 246583   117633 49701
#> 3     2022 898350 246831   120514 49200
#> 4     2023 884762 246629   122740 49502
#> 5     2024 869360 245569   125764 50506

Track Kindergarten Enrollment (COVID Impact)

enr_multi |>
  filter(is_state, subgroup == "total_enrollment", grade_level == "K") |>
  select(end_year, n_students) |>
  arrange(end_year)
#>   end_year n_students
#> 1     2020     120133
#> 2     2021     106539
#> 3     2022     114744
#> 4     2023     113864
#> 5     2024     110738

Wide Format

For analysis that needs all demographics in columns, use tidy = FALSE:

wide_2024 <- fetch_enr(2024, tidy = FALSE, use_cache = TRUE)

# Contains columns like: row_total, white, black, hispanic, asian,
# grade_k, grade_01, etc.
names(wide_2024)
#>  [1] "end_year"         "type"             "district_id"      "campus_id"       
#>  [5] "district_name"    "campus_name"      "row_total"        "native_american" 
#>  [9] "asian"            "black"            "pacific_islander" "white"           
#> [13] "hispanic"         "multiracial"      "male"             "female"          
#> [17] "grade_k"          "grade_01"         "grade_02"         "grade_03"        
#> [21] "grade_04"         "grade_05"         "grade_06"         "grade_07"        
#> [25] "grade_08"         "grade_09"         "grade_10"         "grade_11"        
#> [29] "grade_12"

Caching

Data is cached locally to avoid repeated downloads:

# View cached files
cache_status()

# Clear specific year
clear_cache(2024)

# Clear all cached data
clear_cache()

# Force fresh download (ignore cache)
enr_fresh <- fetch_enr(2024, use_cache = FALSE)

Michigan-Specific Notes

District Codes

Michigan uses 5-digit district codes. The first two digits indicate the Intermediate School District (ISD):

  • 82xxx - Wayne RESA (includes Detroit)
  • 63xxx - Oakland Schools
  • 50xxx - Macomb ISD
  • 33xxx - Kent ISD (includes Grand Rapids)

Key Districts

District ID Name Approx. Enrollment
82015 Detroit Public Schools Community District ~48,000
33020 Grand Rapids Public Schools ~15,000
17010 Ann Arbor Public Schools ~17,000
23010 Flint Community Schools ~3,500

Historical Context

Michigan enrollment has been declining: - 2010: ~1.6 million students - 2020: ~1.4 million students - Detroit has lost over 100,000 students since 2000

Troubleshooting

Slow Downloads

Initial downloads may take 1-2 minutes as files are ~10MB each. Use caching to avoid repeated downloads.

Missing Data

Some years or subgroups may have suppressed data (shown as NA) for privacy protection when counts are small.

xlsb Format

The 2015 (2014-15) file uses .xlsb format which may require additional software to read.

Historical Data Formats

Michigan’s data files have evolved over time with different column naming conventions:

  • 1996-2003: Legacy format with uppercase column names (e.g., TOT_ALL, TOT_M_IND, K_TOTAL)

    • No multiracial or Pacific Islander categories (not tracked separately until 2000s)
    • Race demographics stored as separate M/F columns that are summed
  • 2004-2009: Transitional format with some lowercase column names

  • 2010-present: Modern format with consistent lowercase names (e.g., tot_all, tot_ai, k_totl)

    • Includes multiracial and Pacific Islander categories

The package handles all these formats automatically - just specify the year you want.

Building vs District vs State Data

Each year’s data includes three levels of aggregation:

  • Building: Individual schools (3,500+ in Michigan)
  • District: School districts (~800 in Michigan)
  • State: Statewide totals

Use the is_state, is_district, and is_campus flags to filter to the level you need.

Getting Help

Report issues at: https://github.com/almartin82/mischooldata/issues

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] dplyr_1.2.0        mischooldata_0.2.0
#> 
#> loaded via a namespace (and not attached):
#>  [1] jsonlite_2.0.0    compiler_4.5.2    tidyselect_1.2.1  tidyr_1.3.2      
#>  [5] jquerylib_0.1.4   systemfonts_1.3.2 textshaping_1.0.5 yaml_2.3.12      
#>  [9] fastmap_1.2.0     readxl_1.4.5      R6_2.6.1          generics_0.1.4   
#> [13] curl_7.0.0        knitr_1.51        tibble_3.3.1      desc_1.4.3       
#> [17] bslib_0.10.0      pillar_1.11.1     rlang_1.1.7       cachem_1.1.0     
#> [21] xfun_0.56         fs_1.6.7          sass_0.4.10       cli_3.6.5        
#> [25] pkgdown_2.2.0     withr_3.0.2       magrittr_2.0.4    digest_0.6.39    
#> [29] rappdirs_0.3.4    lifecycle_1.0.5   vctrs_0.7.1       evaluate_1.0.5   
#> [33] glue_1.8.0        cellranger_1.1.0  codetools_0.2-20  ragg_1.5.1       
#> [37] rmarkdown_2.30    purrr_1.2.1       httr_1.4.8        tools_4.5.2      
#> [41] pkgconfig_2.0.3   htmltools_0.5.9