Friday, May 22, 2009

The SFUSD assignment process

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:
  1. HL -- Does the student speak something other than English at home
  2. AAS -- Academic achievment status
  3. SES -- Socio-economic status (e.g. student qualifies for free or reduced lunch)
  4. 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.


  1. Do steps 3a-c pretain only to students who both live in an assignment area and choose the assignment area school? For example, if my assignment area school is Grattan and I don't include it in my 7 choices, would I effectively enter the lottery at step 3d? To put this another way, leaving aside preferences like siblings, special needs and attendance areas, for most students does the lottery effectively begin at step 3d?

    In an earlier post, you call this a greedy algorithm. Do you mean that assignments are sticky? That is to say, if an attendance area student is selected in steps 3a-c, but in step 3d a more diverse student is available, could the first student replace the second? Or would the only scenario for a student to be dislodged be if they are assigned to more than one school and the system would then use the student's own preferences to make choices?

  2. A follow-up question: Does the assignment area school have to be in the first 7 choices or only the first choice to get the treatment of steps 3a-c?

  3. > if my assignment area school is Grattan and
    > I don't include it in my 7 choices, would I
    > effectively enter the lottery at step 3d

    Yes. The attendance area information is only relevant to the extent that you have that attendance area on your application.

    > In an earlier post, you call this a greedy
    > algorithm. Do you mean that assignments are
    > sticky?

    I believe assignments are indeed sticky in the way you describe, but I am not 100% certain about it.

    > Does the assignment area school have to be
    > in the first 7 choices or only the first
    > choice to get the treatment of steps 3a-c

    The assignment area criterion is applied anywhere among the 7 choices, so long as you live in the assignment area.

    In general, my understanding is that the assignment area does not help much if at all because most applicants who come from the assignment area are very uniform in their diversity profile, so it ends up being, effectively, useless for them.

  4. The technical description of the assignment algorithm seems to indicate that assignments are indeed sticky, see bottom of page 5 in Once a student is assigned (based on the fact that they contribute positively to the CDI), there is no clause for dislodging them later.

  5. The more I read and think about the school assignment redesign, the more I'm convinced that the board is being quixotic. They're pretty upfront about attacking the achievement gap as their #1 priority. And, frankly, I support them in that goal, even if they can be abrasive and insensitve to the concerns of some parents.

    But I don't think they'll find a magic recipe and I worry that they'll make matters worse. (My favorite way of putting this is that I rank the educational value of time spent in a bus below watching TV.)

    For example, the last few meetings have brought up the topic of discontiguous attendance area maps and this suggests that they're looking very hard for a way to decrease the achievement gap through jimmying the diversity numbers. I don't think they'll find what they're looking for.

    I guess I'm saying this because I really doubt that it's possible to change their minds on this topic. But I do think that there is a way to significantly reduce the anxiety of parents engaged in the assignment process and that is to reform the EPC.

    It seems like the EPC does a lot of work manually. And while I've read and reread the algorithm description I suspect that it's implemented differently and covers only a portion of the scope of the problem. At the R2/open enrollment stage it seems that a lot of issues are resolved by waiting in lines and walking paperwork around an office.

    My hope is that with the rollout of SchoolLoop, the District will (someday) automate the rest of the enrollment & assignment processes to the point where the EPC would perform an advisory role rather than an operational role. Moreover, taking the final registration process out of the hands of local schools and centralizing it would offload overworked local school administrators.

    The result would be a more efficient and transparent system. And I would hope that would reduce parent anxiety.