COLLEGEMAP — College Market Investment Screen
COLLEGEMAP applies the same demand-floor logic as MILBASE to university towns: screen ~6,000 colleges and their surrounding housing markets by enrollment durability, endowment stability, and local real estate economics. The goal is a ranked, sourced acquisition pipeline for residential investors near colleges — enrollment as the rent-floor analog.
What's Live
All figures sourced from public government data or explicit NULL — no fabrication.
Institutions
6,253 Title IV-eligible colleges: name, state, city, lat/lon, control (public / private / for-profit), level (4yr / 2yr / <2yr).
Source: IPEDS via Urban Institute Education Data API (free, no key)
Coordinates
All 6,253 institutions have real lat/lon from IPEDS HD. Map renders every college — dot size fixed until enrollment lands.
Source: IPEDS HD LATITUDE/LONGITUD fields
Enrollment (time series)
Total enrollment per year 2013–present; YoY trend; FTE headcount. Feeds dot sizing on the map and the demand score.
Source planned: IPEDS EF tables by UNITID
Endowment & Scorecard
Total endowment, per-student endowment, tuition, admit rate, median earnings. The stability and selectivity signals.
Sources planned: NACUBO / College Scorecard (DoE, free bulk CSV)
Real Estate (feeder towns)
Median home value + rent for towns within 15 miles of each campus. Same ACS / Zillow / HUD FMR pipeline as MILBASE.
Sources planned: Census ACS B25077/B25064 · Zillow ZHVI/ZORI
Town Economics
Population trend, employment, college-dependence ratio (enrollment ÷ town pop), housing permits, crime index, vacancy.
Sources planned: BLS LAUS/QCEW · Census PEP · FBI Crime Data Explorer
| Field | Coverage | Status |
|---|---|---|
| name / state / city | 6,253 / 6,253 (100%) | Live |
| lat / lon | 6,253 / 6,253 (100%) | Live · IPEDS |
| control (public/private/for-profit) | 6,223 / 6,253 (99%) | Live · IPEDS |
| level (4yr / 2yr / <2yr) | 6,223 / 6,253 (99%) | Live · IPEDS |
| enrollment (total, time series) | 0 / 6,253 | Pending · Y-COLLEGE.enrich |
| endowment | 0 / 6,253 | Pending · Y-COLLEGE.enrich |
| tuition / admit rate | 0 / 6,253 | Pending · Y-COLLEGE.enrich |
| median rent (feeder towns) | 0 / 6,253 | Pending · surround-towns |
| median home value (feeder towns) | 0 / 6,253 | Pending · surround-towns |
What COLLEGEMAP Is
COLLEGEMAP is a companion to MILBASE. Where MILBASE uses BAH — a DoD-published housing allowance — as a mechanical rent-floor signal near military bases, COLLEGEMAP uses enrollment as the demand-durability signal near universities. Large, stable enrollment drives persistent rental demand in college towns independent of the broader housing cycle.
The enrollment thesis
A college with large, stable enrollment creates a structural rental demand floor analogous (not identical) to BAH near a base:
- Demand durability: ~6,000 colleges enroll students every fall; enrollment demand is relatively inelastic to local economic cycles in ways that private-sector employment demand is not.
- Endowment as stability: institutions with large endowments per student are less likely to downsize rapidly — a proxy for demand persistence. The enrollment-shock analog to BRAC is rapid enrollment decline or campus closure.
- Price-to-rent screen: college towns vary widely in how expensive local housing is relative to achievable rent. The screen surfaces markets where demand is durable and prices are reasonable.
- Risk flag: the college-dependence ratio (enrollment ÷ town population) is the base-monoculture analog — a town where students dominate population is exposed to enrollment shocks exactly as a base-town is to BRAC. Flag it; do not hide it.
Key difference from MILBASE
BAH is a published dollar rate that directly sets a housing budget. Enrollment is a headcount, not a dollar amount — the rent-floor analogy is structural (demand durability), not mechanical (a set payment per occupant). The yield calculation differs: COLLEGEMAP compares market rent vs. local home values, with enrollment and endowment as stability weights, not as a direct yield input. No enrollment-to-rent conversion is fabricated.
Institution breakdown (live data)
6,253 Title IV-eligible institutions as of IPEDS 2022:
- By control: 2,016 public · 1,855 private non-profit · 2,352 private for-profit · 30 unknown
- By level: 2,866 four-year+ · 1,753 two-year · 1,604 less-than-two-year · 30 unknown
- All 6,253 plotted on the map. Dot color = control type. Dot size = fixed until enrollment lands (Y-COLLEGE.enrich).
How the Screen Will Work
When enrollment + endowment data is available, COLLEGEMAP will rank institutions using logic that mirrors MILBASE's scoring model:
- Demand score: normalized enrollment size × enrollment stability (YoY trend). Large + stable = highest demand signal. NULL where enrollment absent — never fabricated.
- Endowment gate: institutions below a minimum per-student endowment threshold are flagged as higher-risk. This is a multiplicative risk gate (same pattern as MILBASE's closure-risk multiplier), not an additive term.
- Yield screen: market rent / local home value for surrounding feeder towns — same price-to-rent logic as MILBASE. NULL where RE data absent.
- Composite rank: demand × yield × stability, with the endowment gate as multiplicative risk. Score shown with coverage% — sparse-data colleges return "insufficient data," not a guessed rank.
Views: College Explorer (sortable by rank / enrollment / endowment) · Map (all 6,253 plotted now; dot size = enrollment when available) · All-Colleges scatter (enrollment vs. price-to-rent; endowment vs. yield, etc.).
Honest Caveats
Enrollment ≠ BAH
The rent-floor analogy between enrollment and BAH is structural, not mechanical. BAH is a published dollar rate that directly sets a housing budget. Enrollment is a headcount that creates demand — but the translation to rental pricing depends on campus housing policies, off-campus inventory, and local economics in ways BAH does not. The screen uses enrollment as a demand signal, not a rent guarantee.
For-profit risk
For-profit institutions have materially different risk profiles than public or non-profit colleges. Several large for-profits have closed rapidly (Corinthian Colleges, ITT Technical Institute). The screen flags control type and applies a higher risk multiplier to for-profits — 2,352 of the 6,253 institutions in the current data are for-profit. Do not treat enrollment at a for-profit as the same signal as at a public flagship.
Endowment data lag
NACUBO endowment data is published annually with a 6–12 month lag. Endowment values can move rapidly (market-driven). The screen uses endowment as a slow-moving stability indicator, not a current-value precision metric. Source date stamped with every value.
No backtest (same as MILBASE)
The thesis that high-enrollment, low-price-to-rent college markets outperform is designed but unvalidated. No return claims are made until a pre-registered backtest runs. The screen is a discovery tool, not a return forecast. Any score is a transparent model on partial public data — not a prediction.
Research & Spec Docs
Pink-lane specifications driving the build. Pre-rendered from source docs — no CDN, no fetching.
projects/collegemap/SOURCES.md
Pink branch · shipped 2026-05-17All sources join on UNITID (NCES institution ID) — the canonical primary key for every COLLEGEMAP table. Same join-key discipline as MILBASE's mha_code: verify match rate, NULL unmatched, never invent.
IPEDS / NCES (spine)
- What: every Title IV-eligible US institution. HD (Directory) file: name, city, state, ZIP, control, sector, lat/lon, ICLEVEL. Enrollment from EF/12-month headcount file. Graduation rates, financial aid from GR/SFA tables.
- Access: NCES IPEDS data-center bulk CSV — no API key, public domain.
- PK:
UNITID— canonical join key for everything. - Notes: Academic year lags ~18 months; FY2022 data released ~Dec 2023.
College Scorecard (US DoE)
- What: cost (
COSTT4_A), median earnings, completion rate, admit rate, debt load, Pell grant share. - Access:
api.data.gov/ed/collegescorecard/v1/schools— free api.data.gov key required (free ≠ keyless; plan the key). Full bulk CSV fallback requires no key. - Join: Scorecard
id= IPEDS UNITID (documented by DoE). This is the UNITID-join — the MHA-join-class risk: verify match rate, NULL unmatched.
Carnegie Classification
- What: R1/R2/D3 doctoral, master's, baccalaureate — research intensity + undergraduate profile (residential vs commuter, full-time vs part-time mix).
- Access: XLSX download from Carnegie website — no API, no key, CC-BY.
- Join:
UNITID(column name varies by edition — check header). - Notes: Updated ~every 3 years; 2021 edition covers 3,982 institutions.
Join Strategy
projects/collegemap/DATA-SEARCH.md
Pink branch · shipped 2026-05-17The data acquisition and search design spec. Drives Y-COLLEGE.recon
(scrape) and green's college Explorer. No fabrication — real source per row or NULL.
Data Sources (free, authoritative)
- IPEDS HD:
INSTNM·STABBR·LATITUDE/LONGITUD·CONTROL(1=public, 2=private-NP, 3=private-FP) ·ICLEVEL(4yr/2yr/<2yr) ·CITY·ZIP. Enrollment from EF/12-mo headcount. No key, public domain. - College Scorecard:
COSTT4_A, median earnings, completion, admit rate, debt. Free api.data.gov key required; bulk CSV fallback has no key. Scorecardid= IPEDS UNITID. - Geocode fallback: IPEDS HD carries lat/lon for nearly all rows. NULL remainder → Census Gazetteer by city/state. NULL if still unresolved — no fabricated coordinates.
Coverage Expectation
IPEDS HD ≈ all ~6k Title IV institutions. Scorecard covers the large majority. Report: n institutions, % geocoded, % with each Scorecard metric, unmatched-UNITID count. Honest partial > fake (MILBASE HARD RULE).
Field Contract (→ feeds collegemap schema)
Search Design
- Inputs: free-text name (case/diacritic-insensitive substring), state filter, control filter, level filter, size band. Composable (AND).
- Ranking: name-prefix match > word-boundary > substring; then by enrollment desc; NULLs last — never invented order (MILBASE rule).
- Behavior: debounced client-side filter over
data.json(dep-free, no CDN — repo convention). Selection emits the samepostMessageselect contract as MILBASE for map↔list sync. - Empty state: "no match" explicit; never silently empty.
projects/collegemap/SURROUND-TOWNS.md
Pink branch · shipped 2026-05-17The MILBASE surrounding-towns idea applied to college towns. Free sources only;
no fabrication; verification labeled. Gated on Y-COLLEGE.recon data —
this is the spec, ready when data lands.
Geography
Each college's town = IPEDS HD CITY/STABBR + lat/lon →
place FIPS via Census Gazetteer. Optional ≤15mi adjacent places
(college commute radius is tighter than MILBASE's 25mi base feeder radius).
Metrics → Free Sources
| Domain | Metric | Source (free) | Key/Geo |
|---|---|---|---|
| Demand | Town population + growth | Census ACS / PEP | free key · place FIPS |
| Economy | Unemployment, employment | BLS LAUS | optional key · county |
| Economy | Industry mix / employers | BLS QCEW | none · county |
| Cost | Median rent / home value | Census ACS B25064/B25077 | free key · place/ZCTA |
| Supply | Permits, student-housing pressure | Census BPS | none · place/county |
| Safety | Crime index | FBI Crime Data Explorer | none · agency→place |
| Town-vs-gown | Enrollment ÷ town population | IPEDS enrollment ÷ ACS pop | derived |
College-Dependence Ratio (key signal)
The college-dependence ratio (enrollment / town population) is the analog of MILBASE's base-monoculture risk. A town where students are most of the population is exposed to enrollment shocks exactly as a base-town is to BRAC. Ranges from near-zero (urban university in a major city) to >1.0 (tiny college town where students outnumber residents).
Derived Profile
- Diversified college town (enrollment a modest share, broad economy) = resilient; lower enrollment-shock risk.
- Pure college town (high dependence ratio) = enrollment-shock exposed — flagged with the ratio + sources; never hidden.
- Supply/affordability (permits vs pop; rent burden) = livability read.
Each component: source + year + coverage%. NULL where unsourced — never imputed.
Output Schema (yellow writes)
projects/collegemap/TICKETS.md
Pink branch · shipped 2026-05-17 · ~60 ticketsFull ~60-ticket build plan authored by pink. Modeled on MILBASE's actual build path and its hard-won lessons. Pink does not implement — architect queues from this.
Critical Path (11 tickets)
Phase Summary
| Phase | Lane | Key work | MILBASE lesson applied |
|---|---|---|---|
| 0 — Spec & contracts | P | CONTRACT.md · SOURCES.md · join-key spec · metric dict · heuristics | Front-load contracts to prevent schema churn |
| 1 — Data acquisition | Y | Scorecard pull · IPEDS join on UNITID · geocode · coverage report | UNITID-join = MHA-join-class risk; verify match rate |
| 2 — Database | Y | collegemap.db SQLite · load + constraints · join-integrity test · commit immediately | Uncommitted DB was lost once in MILBASE |
| 3 — Bridge db→json | G/Y | college_export.py · fixture data.json · _meta coverage% · NULLs as null | Fixture-parallelism: UI starts while Y works |
| 4 — Map | B | map.html dep-free · √area enrollment dots · postMessage contract · pan/zoom · state palette | Apply all MILBASE map lessons from day 1 |
| 5 — Explorer | G | searchable/sortable list · bidirectional map sync · NULLs last · rank N-of-M | Same ratio-rank / NULL-sort rules |
| 6 — Scatter | G | X/Y metric pickers · global-scale axes · select-linked · mode-switch wiring | Global-scale invariant; axis-compat from HEURISTICS |
| 7 — QA | R | schema conformance · 0 fabricated rows · served not file:// · merge re-verify guards | Public deploy = HARD GATE; recurring re-verify budgeted |
Key Lessons Baked In
- Spec phase first: MILBASE's worst time sinks (MHA-join, schema churn, 1-year redo, uncommitted DB loss) were all preventable by contracts + early coverage measurement.
- Fixture-parallelism: UI lanes start against a fixture immediately; live-data swap waits on Y. Proven in MILBASE.
- Guard tickets: merge-revert re-verify, NULL-sort-last, join-integrity — budgeted as recurring, not one-and-done.
- UNITID join = MHA-join-class risk: verify match rate after every data pull; NULL unmatched, never drop silently.
- DB committed immediately: MILBASE lost yellow's DB once to the uncommitted trap. C23 enforces commit-on-write.
Data & Coverage
Current live data as of 2026-05-17. All sourced or explicit NULL — no fabricated values.
Institutions
6,253 total · all with lat/lon · 2,016 public · 1,855 private NP · 2,352 private FP · 2,866 four-year · 1,753 two-year · 1,604 less-than-2yr
Source: IPEDS 2022 via Urban Institute Education Data API
Enrollment / Endowment
0 / 6,253 — pending Y-COLLEGE.enrich. Map dot sizes are fixed until enrollment lands; no size is fabricated.
Real Estate (feeder towns)
0 / 6,253 — pending surround-towns pipeline. Price-to-rent, yield, and composite score are uncomputable until this lands.
See Also: MILBASE
MILBASE is the military-installation analog — same architecture, BAH as the rent-floor signal, 459 active US military installations, 2013–2026 data, live scoring. The pattern COLLEGEMAP is built on.