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

AP Exam Performance

How many students take Advanced Placement exams at each school, and how many pass.

rcd_ap
Rows
6,308
Schools & agencies
793
Years covered
2013–14 to 2023–24
Values suppressed
7.2%
by the state's privacy rules
Clear
suppressed means the state deliberately hid that value. When a student group is small enough that a published number could identify individual students — fewer than 10 students measured, or a rate above 95% or below 5% — states suppress it. Hover a suppressed cell to see which rule applied. This site keeps every suppression intact.
School School Level AP Participation Rate (0–1) AP Pass Rate, Score 3+ (0–1) School Year
North Carolina Cyber Academy 00A000 Elementary, Middle, High School 0 0.9 2023–24
ABSS Early College at ACC 010303 High School 0.5 0.7 2023–24
Eastern Alamance High 010324 High School 0.1 0.6 2023–24
Graham High 010348 High School 0.1 0.4 2023–24
Hugh M Cummings High 010360 High School 0 0.2 2023–24
Southern Alamance High 010388 High School 0.1 0.6 2023–24
Walter M Williams High 010396 High School 0.2 0.5 2023–24
Western Alamance High 010400 High School 0.2 0.6 2023–24
Southeast Alamance High School 010410 High School 0.2 0.5 2023–24
Alamance Virtual School 010450 Elementary, Middle, High School suppressed suppressed 2023–24
Alamance-Burlington Schools 010LEA 0.1 0.6 2023–24
River Mill Academy 01B000 Elementary, Middle, High School 0.3 0.7 2023–24
Clover Garden 01C000 Elementary, Middle, High School 0.2 0.7 2023–24
The Hawbridge School 01D000 Elementary, Middle, High School 0.2 0.8 2023–24
Alexander Central High 020302 High School 0.1 0.8 2023–24
Alexander County Schools 020LEA 0.1 0.8 2023–24
Alleghany High 030304 High School suppressed suppressed 2023–24
Alleghany County Schools 030LEA suppressed suppressed 2023–24
Anson County Early College High School 040304 High School 0.1 0.4 2023–24
Anson High School 040306 High School 0.1 0.1 suppressed 2023–24
Anson County Schools 040LEA 0.1 0.2 2023–24
Ashe County High 050302 High School 0.1 0.6 2023–24
Ashe County Schools 050LEA 0.1 0.6 2023–24
Avery County High School 060302 High School 0.1 0.6 2023–24
Avery County Schools 060LEA 0.1 0.6 2023–24
Southside High 070339 High School 0.1 0.3 2023–24
Washington High 070342 High School 0.1 0.3 2023–24
Beaufort County Schools 070LEA 0.1 0.3 2023–24
Bertie High 080312 High School 0.1 0.1 2023–24
Bertie County Schools 080LEA 0 0.1 2023–24
West Bladen High 090368 High School suppressed suppressed 2023–24
Bladen County Schools 090LEA suppressed suppressed 2023–24
North Brunswick High 100326 High School 0.1 0.5 2023–24
South Brunswick High 100334 High School 0.1 0.8 2023–24
West Brunswick High 100348 High School 0.1 0.7 2023–24
Brunswick County Schools 100LEA 0.1 0.6 2023–24
A C Reynolds High 110304 High School 0.2 0.7 2023–24
Charles D Owen High 110336 High School 0.2 0.7 2023–24
Clyde A Erwin High 110340 High School 0.1 0.4 2023–24
Enka High 110352 High School 0.1 0.6 2023–24
North Buncombe High 110380 High School 0.2 0.7 2023–24
T C Roberson High 110416 High School 0.1 0.7 2023–24
Buncombe County Schools Virtual Academy 110475 Elementary, Middle, High School suppressed suppressed 2023–24
Martin L Nesbitt Jr Discovery Academy 110500 High School 0.4 0.9 2023–24
Buncombe County Schools 110LEA 0.2 0.7 2023–24
Asheville High 111302 High School 0.3 0.7 2023–24
School of Inquiry and Life Sciences at Asheville 111700 High School 0.3 0.8 2023–24
Asheville City Schools 111LEA 0.3 0.7 2023–24
IC Imagine 11C000 Elementary, Middle, High School 0.2 0.7 2023–24
The Franklin School of Innovation 11D000 Middle, High School 0.3 0.6 2023–24
Column dictionary — the state's own definitions
Shown as State's column Data type State's description Codes
School key agency_code VARCHAR(6) 010303/010LEA/NC-SEA
School Level category_code VARCHAR(1) Grade span category code
6 codes
  • A → Elementary, Middle, High School
  • E → Elementary
  • H → High School
  • I → Elementary, Middle school
  • M → Middle School
  • T → Middle, High School
AP Participation Rate (0–1) pct_ap_participation NUMERIC(4,1) Percentage of AP Exam participation rate
AP Pass Rate, Score 3+ (0–1) pct_ap_pass NUMERIC(4,1) Percentage of AP Exam scores of 3 or above
School Year key year VARCHAR(4) YYYY (i.e. 2006 for the 2005/06 school year)
About this table

State's description: AP score percentages and participation rates

Listed in the state's table index as rcd_ap (active, 2014)

6,308 rows loaded, covering 793 schools and agencies, 2013–14 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 RcdAp(SRCBaseModel):
    agency_code = models.CharField(max_length=6)
    category_code = models.CharField(
        max_length=31,
        null=True,
        blank=True,
        choices=[
            ("E", "Elementary"),
            ("M", "Middle School"),
            ("H", "High School"),
            ("A", "Elementary, Middle, High School"),
            ("T", "Middle, High School"),
            ("I", "Elementary, Middle school"),
        ],
    )
    part_mask_code = models.DecimalField(max_digits=4, decimal_places=1, null=True, blank=True)
    pass_mask_code = models.DecimalField(max_digits=4, decimal_places=1, null=True, blank=True)
    pct_ap_participation = models.DecimalField(max_digits=4, decimal_places=1, null=True, blank=True)
    pct_ap_pass = models.DecimalField(max_digits=4, decimal_places=1, null=True, blank=True)
    year = models.CharField(max_length=4)

    class Meta:
        db_table = "rcd_ap"
        managed = True
        unique_together = ("year", "agency_code")
  1. 6,308 rows were then loaded from the state's raw data files into RcdAp.
  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.