You start by filling out an application where you rank-order up to 7 school choices. There are (almost) no restrictions on the schools, they can be anywhere within the district (for reference, San Francisco covers an area of 7x7 square miles, with famously uneven terrain). There are only two magnet schools with an entrance examination, so applying to these works differently. I will leave them out for the purposes of this discussion.
In addition to the 7 school choices, you also fill out the following 4 "diversity indicators" on the application:
- HL -- Does the student speak something other than English at home
- AAS -- Academic achievment status
- SES -- Socio-economic status (e.g. student qualifies for free or reduced lunch)
- EP -- Extreme poverty status (e.g. living in public housing)
For middle school or highschool applicants, there is an additional "diversity indicator" which is the API scores of the previously attended school.
The diversity indicators are binary in nature. So each student essentially is tagged with a 4 or 5 long bit-vector.
Schools are of two-kinds:
- Attendance-area -- applicants who live within the "attendance area" for that school are considered first, then applicants outside "attendance area" are considered after
- City-wide -- no preferrential treatment is given to applicants to that school based on location in the city, the "attendance area" is the entire city
On the day of the lottery, the algorithm does the following for every school individually:
1. Pre-assign siblings of an already-admitted student to the same school if that is among their choices; pre-assign special needs students to their top-choice.
2. Compute a preliminary "diversity index" on the basis of these pre-assignments.
3. For all students in the school's attendance area:
3a. Tentatively add her to the school, compute the new tentative "diversity index" including that student.
3b. Pick the student who contributes to the highest tentative "diversity index", give her the spot.
3c. If multiple students qualify in 3b, pick the student with the higher preference for that school on the application. If the preferences are also equal, pick randomly.
3d. Keep doing this until no student in the attendance area contribute positively to the tentative "diversity index"; at that point, repeat for BOTH attendance and non-attendance area students, and continue even if the diversity score is being brought down (pick the least negative one in that case). If there is a tie, attendance-area kids break ties.
3e. Repeat until all spots at that school are filled.
At the end, a student may be assigned to multiple schools. Assign the student to their top-choice, and repeat the steps 2-3e above to fill-in the openings.
The "diversity index" is a formula that's intended to maximize diversity at all schools, that is to say, make sure that the students who attend come from as many diverse backgrounds as possible.
If a student ends up with no school assignment, the district assigns them to some other school, close to their home, using an algorithm that is not described anywhere. In local parlance, this is called going "0/7".
A 0/7 student who wishes to continue applying for a different spot with SFUSD can now go through the "waiting-list" process, by expressing preference to a set of 8 additional schools. The assignment process is similar (diversity index-based), though more complex in some ways, and goes on until the first day of class. Some of these students get no assignments as well, that's called going 0/15.
The district advertises the following statistic about admission rates for the year 2009:
- 78% of K-12 applicants received one of their choices.
- 61% of K-12 applicants received their first choice.
Both of these statistics include siblings and special needs assignments (which do not go through the lottery -- they are pre-assigned by default). The district does not publish the aggregate admission statistics excluding siblings. Anecdotal evidence suggests that it is around 50-60% (that is 50-60% of non-sibling non-special needs applicants receive one of their choices), but that is not an official or verified number. The siblings numbers are available for a few select schools (which I quote below), but not in aggregate.
Some schools (generally, the ones with higher API scores) receive far more applications than they have seats, for example:
- Clarendon has 66 spots per year, of which 11 are siblings, and 55 for the general pool. They received 1128 applications.
- Rooftop has 66 spots, 19 siblings, and received 1086 applications.
- West Portal has 66 spots, 17 siblings, and received 986 applications.
The current system is sometimes described as "total choice", it has no provisions against congestion. Although, technically speaking, some schools have "attendance area zones" which theoretically should limit the number of students who apply from outside the zone, in reality that doesn't work. The reason is that many San Francisco neighborhoods are fairly uniform across the diversity criteria. As such, unless you are somehow "different enough" from other people in your neighborhood, you won't get any boost in the lottery, on the contrary. This is known, and for that reason, lots of non-attendance-area kids apply anyway. This creates congested situations like the 3 schools above (and many others) which end up having very unfavorable odds of getting in.