# irv_sabin_15th_grant: trade-offs (model v2, PPS horizon)

Generated by `build/solver/report_pps2031.py` from `build/solver/out_v2/{status_quo,scenario_A,irv_sabin_15th_grant}/scorecard.json` and `schools.csv`. Model v2 (`build/solver/METHOD.md` §6, §7; `out_v2/CALIBRATION.md`). All plans here use Scenario A's schools and programs and 9-12 lines and are scored on the same horizon: **required** = meet or beat Scenario A's count of schools at target every year 2027-28 → 2031-32 (PPS Family Guide p. 1: "Estimates cover 2027-28 through 2031-32" [PPS]); 2032-33 → 2035-36 **reported only** (last year of PSU's per-school Table 5.5 [PPS/PSU]); nothing past 2035-36. "At target" = zoned, non-exempt school between its floor (360 K-5 / 500 K-8 and 6-8 / 1,100 9-12) and its capacity (PPS 2025-26 school profiles), each sized by its own PSU forecast for the year [inferred: our model on PPS/PSU numbers].

The NE 15th + Knott line with every family following its elementary school into middle school, and Irvington's teens staying at Grant as today. Sabin stays open and Irvington closes: Irvington-area blocks west of NE 15th Ave, plus those north of NE Knott St, go to Sabin, and the rest go to Beverly Cleary. Both streets are collector streets. Sabin's whole zone goes on to Tubman and Beverly Cleary's whole zone to Beaumont, so no elementary school splits between middle schools. For high school, every block in today's Irvington area stays at Grant, as today. Tubman therefore keeps feeding both Grant and Jefferson, as it does today (about 161 Grant and 765 Jefferson in 2031-32, vs 328 and 524 today). Built from the NE 15th + Knott run with only the Irvington area's high school changed (96 blocks), then re-scored; not separately solved. In 2031-32: Sabin about 358, Beverly Cleary about 354, Tubman 549, Beaumont 561, Grant 1,487, Jefferson 1,181.

## Schools at target, year by year

`*` = required year. Counts from `durability.levels[*].at_target_zoned`.

| Level | Plan | 27-28* | 28-29* | 29-30* | 30-31* | 31-32* | 32-33 | 33-34 | 34-35 | 35-36 | All required years | All years to 2035-36 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| K-5 (50) | PPS Status Quo (2027-28, no closures) | 10 | 10 | 10 | 9 | 9 | 9 | 8 | 7 | 7 | 9 | 7 |
|  | PPS Scenario A | 23 | 23 | 22 | 22 | 21 | 21 | 20 | 19 | 18 | 21 | 17 |
|  | irv_sabin_15th_grant | 36 | 36 | 36 | 36 | 36 | 24 | 19 | 16 | 13 | 36 | 13 |
| 6-8 (14) | PPS Status Quo (2027-28, no closures) | 5 | 3 | 3 | 3 | 3 | 3 | 4 | 4 | 4 | 3 | 3 |
|  | PPS Scenario A | 9 | 10 | 9 | 7 | 7 | 7 | 7 | 8 | 8 | 6 | 6 |
|  | irv_sabin_15th_grant | 11 | 11 | 11 | 11 | 12 | 11 | 11 | 12 | 12 | 11 | 10 |
| 9-12 (8) | PPS Status Quo (2027-28, no closures) | 6 | 7 | 7 | 8 | 8 | 7 | 7 | 7 | 7 | 6 | 5 |
|  | PPS Scenario A | 5 | 7 | 7 | 8 | 8 | 8 | 8 | 7 | 7 | 5 | 4 |
|  | irv_sabin_15th_grant | 5 | 7 | 7 | 8 | 8 | 7 | 7 | 6 | 6 | 5 | 3 |

- PPS Scenario A: meets or beats Scenario A in every required year at every level.
- irv_sabin_15th_grant: meets or beats Scenario A in every required year at every level.

## Walking, moves and feeders (2031-32 basis)

| Level | Measure | PPS Status Quo (2027-28, no closures) | PPS Scenario A | irv_sabin_15th_grant |
|---|---|---|---|---|
| K-5 | Avg walk (mi) | 0.874 | 0.975 | 0.918 |
|  | % within 1 mi | 72.2 | 62.7 | 69.2 |
|  | Past a closer school | 1,861 | 1,970 | 1,067 |
|  | Over the bus line | 3,496 | 4,703 | 3,911 |
|  | Kids reassigned vs PPS Status Quo | 0 | 2,935 | 4,235 |
|  | Non-exempt schools in range, 2031-32 | 10 | 25 | 37 |
|  | Segregation (dissimilarity) index | 0.217 | 0.204 | 0.217 |
| 6-8 | Avg walk (mi) | 1.555 | 1.758 | 1.746 |
|  | % within 1 mi | 39.9 | 30.3 | 29.2 |
|  | Past a closer school | 1,407 | 1,259 | 1,214 |
|  | Over the bus line | 2,320 | 2,731 | 2,816 |
|  | Kids reassigned vs PPS Status Quo | 0 | 1,972 | 2,335 |
|  | Non-exempt schools in range, 2031-32 | 5 | 7 | 12 |
|  | Segregation (dissimilarity) index | 0.188 | 0.181 | 0.187 |
| 9-12 | Avg walk (mi) | 2.000 | 1.933 | 1.975 |
|  | % within 1 mi | 23.4 | 23.4 | 23.4 |
|  | Past a closer school | 971 | 751 | 751 |
|  | Over the bus line | 4,959 | 4,936 | 4,936 |
|  | Kids reassigned vs PPS Status Quo | 0 | 388 | 295 |
|  | Non-exempt schools in range, 2031-32 | 8 | 8 | 8 |
|  | Segregation (dissimilarity) index | 0.173 | 0.180 | 0.185 |
| 9-12 | High schoolers reassigned vs PPS Scenario A | 388 | 0 | 93 |
| 9-12 | HS range, 2031-32 (largest − smallest; KPI < 350) | 375 | 362 | 424 |
| 6-8 | K-5 zones split between middle schools (ES→MS splits) | 1 | 1 | 0 |
| 9-12 | Middle zones feeding one high school (%) | 78% (18 of 23) | 80% (12 of 15) | 53% (8 of 15) |

Bus line = 1 mi K-5, 1.5 mi 6-8/9-12 (ORS 327.043 / PPS). Past a closer school = 0.25 mi margin, no new I-84/river crossing. Kids = neighborhood-program kids on the 2031-32 basis.

**Split feeders in this plan** (a destination counts at ≥5% and ≥5 kids):

- Middle → high: Gray → Ida B. Wells 499, Lincoln 270; Harrison Park → Franklin 244, McDaniel 312; Hosford → Cleveland 676, Franklin 103; Lane → Cleveland 409, Franklin 267; Mt Tabor → Franklin 224, Grant 238, McDaniel 38; Ockley Green → Jefferson 404, McDaniel 46, Roosevelt 74; Tubman → Grant 161, Jefferson 765
- Elementary → middle: none
- Elementary → high (high-school-age kids): Ainsworth → Lincoln 182, Ida B. Wells 10; Arleta → Franklin 182, Cleveland 5; Beverly Cleary → Grant 430, McDaniel 33, Cleveland 19; Boise-Eliot/Humboldt → Jefferson 245, Cleveland 9; Bridlemile → Ida B. Wells 195, Lincoln 77; Chief Joseph → Jefferson 119, Roosevelt 73; Clark → McDaniel 216, Franklin 19; Faubion → Jefferson 129, McDaniel 46; Glencoe → Franklin 213, McDaniel 28; Grout → Cleveland 188, Franklin 53; Laurelhurst → Grant 234, Franklin 12, McDaniel 10, Cleveland 8; Lent → Franklin 129, McDaniel 20; Rieke → Ida B. Wells 294, Lincoln 10; Sabin → Jefferson 221, Grant 161; Sunnyside → Cleveland 162, Franklin 35; Woodstock → Cleveland 106, Franklin 15

## 2031-32 size problems by school

| Plan | Schools outside their range in 2031-32 (kids short of floor / over capacity) |
|---|---|
| PPS Status Quo (2027-28, no closures) | Rosa Parks −192, Beaumont −187, Creston −168, Lewis −159, Mt Tabor −150, Arleta −150, Sellwood −149, Lane −143, Whitman −138, Irvington −137, Woodmere −136, Gray −134, Tubman −126, Hosford −125, Sabin −124, Peninsula −124, Buckman −121, Abernethy −119, Chief Joseph −117, Maplewood −112, George −111, Cesar Chavez −108, Lee −106, Beverly Cleary −106, Forest Park −102, Stephenson −100, Hayhurst −94, Lent −86 (program-only), Harrison Park −83, Bridger −83, Grout −80, Vestal −78, Beach −73, Woodlawn −71, Ockley Green −64, Glencoe −59, Sitton −51, Marysville −51, Boise-Eliot/Humboldt −51, Vernon −49, Llewellyn −48, Rieke −47, Capitol Hill −40, Woodstock −35, Rigler −33, Kellogg −30, Sunnyside −25, Chapman −24, MLK Jr −23, Clark −17, Markham −15, Duniway −12, James John −6 |
| PPS Scenario A | Lee −106, Forest Park −102, Clark −98, Jackson −91, Grout −80, Sunnyside −80, Tubman −77, Vernon −72, Woodlawn −68, Bridger −67, Lane −52, Laurelhurst −37, Beaumont −36, Glencoe −33, Gray −28, Chapman −24, Abernethy −5, George +50 over capacity, Sitton +14 over capacity, Whitman +45 over capacity |
| irv_sabin_15th_grant | none |

Focus options are not counted. Program-only buildings (no neighborhood area) are sized by program placement, not lines.

Solver slack left (`infeasibility.json` → `solver_slack`, kids): "not solved: built from irv_sabin_15th by irvline_feed.py (see solve_log.txt)"
