1.2.1
Fixes how school demand is distributed, and models Charleston's tourism properly.
Schools were collapsing onto their nearest neighbour
Every special demand category lets depot place people by gravity, weighting a residential node by residents / distance ** exponent. For schools that breaks down: distances are in metres and the default school exponent is 2.5, so a node 0.5 km from the school outweighs one at 5 km by 316×, and the whole intake lands on the one or two closest nodes. A median school in 1.2.0 drew from 7 residence nodes; Wando High took 95% of its pupils from a single one.
That is visible in play because add_points credits pupils back to the residence node as residents, so those nodes inflate until their population is mostly their own outbound student flow. Measured against the LODES residents those nodes actually have, 1.2.0 left 172 of them sending more children to school than they house — the worst at 3,990%.
Schools are the one category whose destination has a legally defined catchment, so they are now placed explicitly. Every residential node in the attendance zone is entered in proportion to its residents: 3 km for primary, 5 km middle, 8 km high, growing only where a zone cannot supply its school. Nodes take a pop only when they have headroom for a whole one, and schools are placed largest-first against a running per-node budget so overlapping catchments cannot oversubscribe a node between them. Staff stay on the gravity model — teachers are not zoned.
| 1.2.0 | 1.2.1 | |
|---|---|---|
| nodes sending >100% of their residents to school | 172 | 19 |
| 95th percentile | 603% | 81% |
| worst node | 3,990% | 333% |
| residence nodes feeding a median school | 7 | 26 |
| Summerville High feeders | ~7 | 122 |
Tourism
The airport was carrying 13,800 passengers a day, anchored on the original map's 6,900 departures rather than on real traffic. Charleston International served 6.1M passengers in 2023 — 16,712 a day both directions — so it now carries that, split evenly between arrivals and departures.
The bigger gap: airport passengers are only a slice of Charleston tourism. Most visitors drive in, and none of them were on the map. There are now 58 lodging clusters holding 42,740 overnight visitors, built from OSM accommodation — rooms where tagged, the median for that lodging type where not, at 70% occupancy and 1.9 guests per room, gridded at roughly a kilometre so tourism spreads across the hotel districts instead of piling onto one node. The downtown peninsula alone holds 7,575. Anything within 3 km of an existing beach resort is dropped so the two don't double-count.
Visitors are pure origin points: they live at their hotel for the day and travel out to the peninsula, the beaches and the forts.
Demand totals 607,876 across 2,361 points and 67,740 pops. Map files are unchanged from 1.2.0.