§ Methodology

Academic profile.

Where a student's SAT or ACT would land in the numbers the school published for its enrolled first-years — the entering class, not the admitted pool. It is not a chance-me, and it does not predict an admissions decision.

What we use

§ C.7

Relative importance of admission factors

We use C.7 as context only. If a school marks test scores or GPA as not considered, the positioning card still shows published bands when available, but the methodology treats them as descriptive data rather than decision weights.
§ C.8

Test policies and score-use context

We use C.8 to frame whether score bands describe all enrolled first-years or only the subset who submitted scores. At test-optional schools, the card repeats the submitter-only caveat inline with the SAT and ACT ranges.
§ C.9

SAT and ACT score bands

C.9 provides the 25th, 50th, and 75th percentile anchors. For Bowdoin College, the 2025-26 CDS row in our public API reports SAT composite 1470 / 1510 / 1540, with 34.76% of enrolled first-year students submitting SAT scores. A student SAT of 1500 is therefore inside the published middle 50%, not a prediction of admission.
§ C.11

High-school class rank

C.11 can describe class-rank distribution where schools publish it. This card does not score rank because many schools omit rank or receive it from too small a subset of applicants to compare responsibly across institutions.
§ C.12

High-school GPA

C.12 provides average high-school GPA and the percent submitting GPA. The card displays the school average beside the student's entered GPA; GPA never contributes to academic fit because weighted and unweighted scales are not consistently documented.
§ C.1 / C.2

Applicant, admitted, and enrolled counts

C.1 and C.2 supply applicant and admit counts. The serving layer derives admit rate as admitted divided by applied, then stores that rate as a fraction from 0 to 1 in school_browser_rows.

What we don't use

  • Legacy status, because CDS does not publish it as a score-band adjustment.
  • Athletic recruitment, because recruited-athlete admissions pools are not separated in CDS C.9.
  • Geographic balance, because CDS does not publish state or region score bands.
  • Demonstrated interest, because C.7 is school-level policy context, not an applicant-level measurement.
  • Intended major, because CDS does not publish major-level academic bands.
  • In-state and out-of-state stratification, because most CDS files do not split C.9 by residency.
  • Essays, recommendations, and timing, because those are not machine-readable CDS percentile fields.

Why this isn't a chance-me

A position compares a student's numbers with the bands the school published for enrolled first-years. A prediction estimates the probability that an applicant with many hidden traits will be admitted. The Common Data Set supports the first task and does not support the second.

Test-optional reporting makes the distinction sharper. A school can publish a high SAT middle 50% while only a minority of enrolled students submitted SAT scores. That means the range describes submitters, not the full entering class.

Selective admissions also include institutional priorities that are absent from CDS. The match list separates academic fit from admissions outlook, so a student can be a strong academic fit at a school that remains a high reach because of its admit rate.

If the newest archived CDS for a school is more than three years old, the card carries a stale-data caveat.

Sources and audit trail

Every card links back to the archived CDS source for that school year. The worked example above uses Bowdoin College's 2025-26 archived CDS and the public school_browser_rows serving table.

curl 'https://api.collegedata.fyi/rest/v1/school_browser_rows?school_id=eq.bowdoin&select=school_id,school_name,canonical_year,acceptance_rate,sat_submit_rate,act_submit_rate,sat_composite_p25,sat_composite_p50,sat_composite_p75,act_composite_p25,act_composite_p50,act_composite_p75' \
  -H 'apikey: eyJhbGciOiJIUzI1NiIsInR5...' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5...'

The serving table is documented on the API page.