This is a live demo, built on made-up or public data. All demos

School Performance Grades

The state's A-F school performance grades, which combine achievement and academic growth.

rcd_acc_spg2
Rows
79,747
Schools & agencies
2,825
Years covered
2017–18 to 2023–24
missing 2019–20, 2020–21
Values suppressed
1.3%
by the state's privacy rules
Clear

This is exactly how the state publishes it — raw column names, raw codes.

Decode this table
id aaa_score aaa_score_masking ach_score agency_code asm_option awa_score awa_score_masking bi_score bi_score_masking cgrs_score cgrs_score_masking eg_score eg_status elp_score elp_score_masking k2_feeder ma_eg_score ma_eg_status ma_spg_grade ma_spg_score mags_score mags_score_masking mcr_score mcr_score_masking rd_eg_score rd_eg_status rd_spg_grade rd_spg_score rdgs_score rdgs_score_masking scgs_score scgs_score_masking spg_grade spg_grade_masking spg_score spg_score_masking subgroup year
64401 44 50.8 00A000 N 46 49 60 63.3 NotMet N 58.5 NotMet D 40 35.6 89 69.5 NotMet D 53 48.9 63 D 53 ALL 2024
64402 87 87.2 00A000 N N A 87 AS7 2024
64403 35 41.1 00A000 N 32 38 59 70.9 Met N 88 49 D 47 BL7 2024
64404 37 44.5 00A000 N 46 44 62 63.5 NotMet N 86 55 D 48 EDS 2024
64405 30 29.8 00A000 N N F 30 ELS 2024
64406 45 53.0 00A000 N 53 64 77.4 Met N 90 71 C 58 HI7 2024
64407 45 45.2 00A000 N 77.9 Met N D 52 MU7 2024
64408 24 31.7 00A000 N 22 50 67.0 NotMet N 71 44 F 39 SWD 2024
64409 47 54.8 00A000 N 50 56 62 60.2 NotMet N 90 67 C 56 WH7 2024
64410 43 47.5 00B000 N 37 43 72 56.9 NotMet 10 N 68.6 NotMet D 42 35.5 95 1 56.5 NotMet D 50 48.2 63 D 49 ALL 2024
64411 60 59.6 00B000 N N C 60 AS7 2024
64412 37 41.4 00B000 N 23 38 75 66.7 NotMet N 94 53 D 46 BL7 2024
64413 37 41.3 00B000 N 23 33 73 58.1 NotMet N 94 59 D 45 EDS 2024
64414 21 17.8 00B000 N 10 N F 18 ELS 2024
64415 42 43.9 00B000 N 65.5 NotMet N 55 D 48 HI7 2024
64416 39 41.8 00B000 N 73.5 Met N 59 D 48 MU7 2024
64417 15 22.6 00B000 N 58 75.3 Met N 49 F 33 SWD 2024
64418 47 53.1 00B000 N 45 51 71 59.5 NotMet N 95 1 74 D 54 WH7 2024
64419 95 1 94.8 010303 N 70 95 1 95 1 92.4 Exceeded N 95 1 A 94 ALL 2024
64420 95 1 100.0 010303 N 87.7 Exceeded N A 98 EDS 2024
64421 95 1 100.0 010303 N 88.8 Exceeded N A 98 HI7 2024
64422 95 1 100.0 010303 N 95 1 84.7 Met N A 97 WH7 2024
64423 55 57.5 010304 N 90.7 Exceeded 58 N 93.1 Exceeded C 67 60.3 82.6 Met C 57 50.0 72 C 64 ALL 2024
64424 31 30.6 010304 N 81.2 Met N D 41 BL7 2024
64425 43 47.2 010304 N 87.3 Exceeded N 70 C 55 EDS 2024
64426 47 50.0 010304 N 83.2 Met 58 N C 57 ELS 2024
64427 50 52.6 010304 N 82.7 Met N 65 C 59 HI7 2024
64428 23 22.5 010304 N 83.8 Met N F 35 SWD 2024
64429 63 65.8 010304 N 91.0 Exceeded N 83 B 71 WH7 2024
64430 64 65.1 010308 N 84.7 Met N 84.0 Met B 72 69.0 83.1 Met C 64 59.6 71 C 69 ALL 2024
64431 50 50.0 010308 N 83.0 Met N C 57 BL7 2024
64432 56 57.0 010308 N 82.9 Met N 67 C 62 EDS 2024
64433 56 55.6 010308 N 82.4 Met N C 61 HI7 2024
64434 27 27.0 010308 N 84.5 Met N F 39 SWD 2024
64435 72 72.8 010308 N 83.1 Met N 80 B 75 WH7 2024
64436 30 30.8 010310 N 91.4 Exceeded 7 N 94.5 Exceeded D 44 30.8 82.0 Met F 39 28.7 56 D 43 ALL 2024
64437 24 27.4 010310 N 88.9 Exceeded N 45 D 40 BL7 2024
64438 26 27.9 010310 N 90.6 Exceeded 5 2 N 55 D 40 EDS 2024
64439 24 23.3 010310 N 84.4 Met 7 N 52 F 36 ELS 2024
64440 31 30.6 010310 N 87.8 Exceeded 7 N 58 D 42 HI7 2024
64441 9 9.3 010310 N 80.1 Met N F 23 SWD 2024
64442 010311 N N 4 4 ALL 2024
64443 57 57.7 010312 N 65.2 NotMet N 63.7 NotMet C 59 58.2 74.7 Met C 59 54.7 64 C 59 ALL 2024
64444 39 39.3 010312 N 66.4 NotMet N D 45 BL7 2024
64445 42 42.5 010312 N 60.4 NotMet N 47 D 46 EDS 2024
64446 50 50.0 010312 N 79.7 Met N C 56 HI7 2024
64447 50 50.0 010312 N 80.0 Met N C 56 MU7 2024
64448 17 16.7 010312 N N F 17 SWD 2024
64449 69 70.7 010312 N 69.0 NotMet N 80 B 70 WH7 2024
64450 63 64.7 010320 N 89.2 Exceeded N 85.4 Exceeded B 74 70.6 86.3 Exceeded C 62 55.9 73 B 70 ALL 2024
Column dictionary — the state's own definitions
Shown as State's column Data type State's description Codes
aaa_score aaa_score NUMERIC(38,0) Reading/Math Score
aaa_score_masking aaa_score_masking VARCHAR(1) Masking Code
4 codes
  • 1 → >95%
  • 2 → <5%
  • 3 → <10 in denominator
  • 4 → Insufficient Data (per business area, specific alternate minimum denominator, there is not enough data to provide a meaningful answer - additional set of masking rules on a case by case basis)
ach_score ach_score NUMERIC(4,1) Overall Achievement Score
agency_code key agency_code VARCHAR(6) 010303/010LEA/NC-SEA
asm_option asm_option VARCHAR(1) Y/N if Alternative School that uses ASM model and therefore has no SPG grade
awa_score awa_score NUMERIC(38,0) ACT/Workkeys Assessments Score
awa_score_masking awa_score_masking VARCHAR(1) Masking Code
4 codes
  • 1 → >95%
  • 2 → <5%
  • 3 → <10 in denominator
  • 4 → Insufficient Data (per business area, specific alternate minimum denominator, there is not enough data to provide a meaningful answer - additional set of masking rules on a case by case basis)
bi_score bi_score NUMERIC(38,0) Biology Score
bi_score_masking bi_score_masking VARCHAR(1) Masking Code
4 codes
  • 1 → >95%
  • 2 → <5%
  • 3 → <10 in denominator
  • 4 → Insufficient Data (per business area, specific alternate minimum denominator, there is not enough data to provide a meaningful answer - additional set of masking rules on a case by case basis)
cgrs_score cgrs_score NUMERIC(38,0) Standard CGR Score
cgrs_score_masking cgrs_score_masking VARCHAR(1) Masking Code
4 codes
  • 1 → >95%
  • 2 → <5%
  • 3 → <10 in denominator
  • 4 → Insufficient Data (per business area, specific alternate minimum denominator, there is not enough data to provide a meaningful answer - additional set of masking rules on a case by case basis)
eg_score eg_score NUMERIC(4,1) EVAAS Growth Score
eg_status eg_status VARCHAR(8) EVAAS Growth Status
elp_score elp_score NUMERIC(38,0) English Learner Progress Score
elp_score_masking elp_score_masking VARCHAR(1) Masking Code
4 codes
  • 1 → >95%
  • 2 → <5%
  • 3 → <10 in denominator
  • 4 → Insufficient Data (per business area, specific alternate minimum denominator, there is not enough data to provide a meaningful answer - additional set of masking rules on a case by case basis)
k2_feeder k2_feeder VARCHAR(1) Y/N if school is K2 and inherited SPG data from another school
ma_eg_score ma_eg_score NUMERIC(4,1) Math EVAAS Growth Score
ma_eg_status ma_eg_status VARCHAR(8) Math EVAAS Growth Status
ma_spg_grade ma_spg_grade VARCHAR(1) Math SPG Letter Grade
ma_spg_score ma_spg_score NUMERIC(38,0) Math SPG Score
mags_score mags_score NUMERIC(4,1) Math 3-8 Score
mags_score_masking mags_score_masking VARCHAR(1) Masking Code
4 codes
  • 1 → >95%
  • 2 → <5%
  • 3 → <10 in denominator
  • 4 → Insufficient Data (per business area, specific alternate minimum denominator, there is not enough data to provide a meaningful answer - additional set of masking rules on a case by case basis)
mcr_score mcr_score NUMERIC(38,0) Math Course Rigor Score
mcr_score_masking mcr_score_masking VARCHAR(1) Masking Code
4 codes
  • 1 → >95%
  • 2 → <5%
  • 3 → <10 in denominator
  • 4 → Insufficient Data (per business area, specific alternate minimum denominator, there is not enough data to provide a meaningful answer - additional set of masking rules on a case by case basis)
rd_eg_score rd_eg_score NUMERIC(4,1) Reading EVAAS Growth Score
rd_eg_status rd_eg_status VARCHAR(8) Reading EVAAS Growth Status
rd_spg_grade rd_spg_grade VARCHAR(1) Reading SPG Letter
rd_spg_score rd_spg_score NUMERIC(38,0) Reading SPG Score
rdgs_score rdgs_score NUMERIC(4,1) Reading 3-8 Score
rdgs_score_masking rdgs_score_masking VARCHAR(1) Masking Code
4 codes
  • 1 → >95%
  • 2 → <5%
  • 3 → <10 in denominator
  • 4 → Insufficient Data (per business area, specific alternate minimum denominator, there is not enough data to provide a meaningful answer - additional set of masking rules on a case by case basis)
scgs_score scgs_score NUMERIC(38,0) Science 5&8 Score
scgs_score_masking scgs_score_masking VARCHAR(1) Masking Code
4 codes
  • 1 → >95%
  • 2 → <5%
  • 3 → <10 in denominator
  • 4 → Insufficient Data (per business area, specific alternate minimum denominator, there is not enough data to provide a meaningful answer - additional set of masking rules on a case by case basis)
spg_grade spg_grade VARCHAR(1) Final SPG Letter Grade
spg_grade_masking spg_grade_masking VARCHAR(1) Masking Code
4 codes
  • 1 → >95%
  • 2 → <5%
  • 3 → <10 in denominator
  • 4 → Insufficient Data (per business area, specific alternate minimum denominator, there is not enough data to provide a meaningful answer - additional set of masking rules on a case by case basis)
spg_score spg_score NUMERIC(38,0) Final SPG Score
spg_score_masking spg_score_masking VARCHAR(1) Masking Code
4 codes
  • 1 → >95%
  • 2 → <5%
  • 3 → <10 in denominator
  • 4 → Insufficient Data (per business area, specific alternate minimum denominator, there is not enough data to provide a meaningful answer - additional set of masking rules on a case by case basis)
subgroup key subgroup VARCHAR(8) Subgroup code
26 codes
  • AIAN → American Indian / Alaskan Native
  • AIG → Academically / Intellectually Gifted
  • ALL → All Students
  • AM7 → American Indian
  • AS7 → Asian
  • ASPI → Pacific Islander / Asian
  • BL7 → Black
  • EDS → Economically Disadvantaged
  • ELS → English Learners
  • FCS → Foster Care
  • FEM → Female
  • HI7 → Hispanic
  • HMS → Homeless
  • MALE → Male
  • MIG → Migrant
  • MIL → Military Connected
  • MU7 → Two or More Races
  • NAIG → Not Academically / Intellectually Gifted
  • NEDS → Not Economically Disadvantaged
  • NELS → Not English Learners
  • NOT_EDS → Not Economically Disadvantaged
  • NSWD → Not Students With Disabilities
  • Other → Other
  • PI7 → Pacific Islander
  • SWD → Students With Disabilities
  • WH7 → White
year key year VARCHAR(4) YYYY (i.e. 2006 for the 2005/06 school year)
About this table

State's description: accountability - School Performance Grades - Second Version

Listed in the state's table index as rcd_acc_spg2 (active, 2018)

79,747 rows loaded, covering 2,825 schools and agencies, 2017–18 to 2023–24.

How this table got here
  1. The state publishes an Excel data dictionary. This demo reads it: 66 table definitions, 525 column definitions, and 181 code definitions — the same ones behind the Decoded view above.
  2. From those definitions it writes a Django database model for each table, so nobody has to type the columns in by hand. This table's model came out like this:
class RcdAccSpg2(SRCBaseModel):
    aaa_score = models.DecimalField(max_digits=38, decimal_places=0, null=True, blank=True)
    aaa_score_masking = models.CharField(max_length=1, null=True, blank=True)
    ach_score = models.DecimalField(max_digits=4, decimal_places=1, null=True, blank=True)
    agency_code = models.CharField(max_length=6)
    asm_option = models.CharField(max_length=1, null=True, blank=True)
    awa_score = models.DecimalField(max_digits=38, decimal_places=0, null=True, blank=True)
    awa_score_masking = models.CharField(max_length=1, null=True, blank=True)
    bi_score = models.DecimalField(max_digits=38, decimal_places=0, null=True, blank=True)
    bi_score_masking = models.CharField(max_length=1, null=True, blank=True)
    cgrs_score = models.DecimalField(max_digits=38, decimal_places=0, null=True, blank=True)
    cgrs_score_masking = models.CharField(max_length=1, null=True, blank=True)
    eg_score = models.DecimalField(max_digits=4, decimal_places=1, null=True, blank=True)
    eg_status = models.CharField(max_length=8, null=True, blank=True)
    elp_score = models.DecimalField(max_digits=38, decimal_places=0, null=True, blank=True)
    elp_score_masking = models.CharField(max_length=1, null=True, blank=True)
    k2_feeder = models.CharField(max_length=1, null=True, blank=True)
    ma_eg_score = models.DecimalField(max_digits=4, decimal_places=1, null=True, blank=True)
    ma_eg_status = models.CharField(max_length=8, null=True, blank=True)
    ma_spg_grade = models.CharField(max_length=1, null=True, blank=True)
    ma_spg_score = models.DecimalField(max_digits=38, decimal_places=0, null=True, blank=True)
    mags_score = models.DecimalField(max_digits=4, decimal_places=1, null=True, blank=True)
    mags_score_masking = models.CharField(max_length=1, null=True, blank=True)
    mcr_score = models.DecimalField(max_digits=38, decimal_places=0, null=True, blank=True)
    mcr_score_masking = models.CharField(max_length=1, null=True, blank=True)
    rd_eg_score = models.DecimalField(max_digits=4, decimal_places=1, null=True, blank=True)
    rd_eg_status = models.CharField(max_length=8, null=True, blank=True)
    rd_spg_grade = models.CharField(max_length=1, null=True, blank=True)
    rd_spg_score = models.DecimalField(max_digits=38, decimal_places=0, null=True, blank=True)
    rdgs_score = models.DecimalField(max_digits=4, decimal_places=1, null=True, blank=True)
    rdgs_score_masking = models.CharField(max_length=1, null=True, blank=True)
    scgs_score = models.DecimalField(max_digits=38, decimal_places=0, null=True, blank=True)
    scgs_score_masking = models.CharField(max_length=1, null=True, blank=True)
    spg_grade = models.CharField(max_length=1, null=True, blank=True)
    spg_grade_masking = models.CharField(max_length=1, null=True, blank=True)
    spg_score = models.DecimalField(max_digits=38, decimal_places=0, null=True, blank=True)
    spg_score_masking = models.CharField(max_length=1, null=True, blank=True)
    subgroup = models.CharField(
        max_length=40,
        choices=[
            ("EDS", "Economically Disadvantaged"),
            ("NEDS", "Not Economically Disadvantaged"),
            ("NOT_EDS", "Not Economically Disadvantaged"),
            ("ELS", "English Learners"),
            ("NELS", "Not English Learners"),
            ("SWD", "Students With Disabilities"),
            ("NSWD", "Not Students With Disabilities"),
            ("WH7", "White"),
            ("BL7", "Black"),
            ("HI7", "Hispanic"),
            ("AM7", "American Indian"),
            ("AS7", "Asian"),
            ("MU7", "Two or More Races"),
            ("MALE", "Male"),
            ("FEM", "Female"),
            ("ALL", "All Students"),
            ("AIG", "Academically / Intellectually Gifted"),
            ("NAIG", "Not Academically / Intellectually Gifted"),
            ("PI7", "Pacific Islander"),
            ("HMS", "Homeless"),
            ("FCS", "Foster Care"),
            ("MIL", "Military Connected"),
            ("MIG", "Migrant"),
            ("AIAN", "American Indian / Alaskan Native"),
            ("ASPI", "Pacific Islander / Asian"),
            ("Other", "Other"),
        ],
    )
    year = models.CharField(max_length=4)

    class Meta:
        db_table = "rcd_acc_spg2"
        managed = True
        unique_together = ("year", "agency_code", "subgroup")
  1. 79,747 rows were then loaded from the state's raw data files into RcdAccSpg2.
  2. It also takes a fingerprint (SHA-256) of the dictionary's general-rules sheet. If the state quietly rewrites its rules document, the next rebuild flags the change instead of absorbing it silently.
Want something like this for your program? Schedule a conversation or email matt@mattniksch.com.