# NYC Restroom Gap — plain-text edition for AI assistants Generated from index.html of https://jonathanwong1990.github.io/nyc-restroom-gap/ (last updated 26 September 2026) by tools/build_llms.py. Do not edit by hand. The web page embeds large SVG maps that are useless to a language model; everything else from all three tabs is below. Read all three before answering questions about reliability: the Walkthrough states findings, the Limits tab bounds them and lists the open questions. Hold onto three things. The ranking ORDERS neighbourhoods; it does not prove any single one is underserved. No New York causal effect was measured (two designs failed, one on a placebo set in advance), so there is no return-on-investment figure here. Items marked [Team research · Name: ...] come from the named teammate's research, checked against the primary source. Authoritative sources, in order (the first outranks this file): - https://github.com/JonathanWong1990/nyc-restroom-gap/blob/main/analysis/outputs/headline_numbers.json (every number, with its script) - https://github.com/JonathanWong1990/nyc-restroom-gap/blob/main/METHODS.md - https://github.com/JonathanWong1990/nyc-restroom-gap --- Archived: the earlier complaint-led analysis, kept for reference. The current analysis is in Walkthrough. ## Layered walkthrough Archived 26 September 2026. This is the earlier complaint-led analysis. Its checks on evening hours and broken restrooms are reused in step 8 of the Walkthrough. **In one minute** - **Question.** New York has committed to 2,120 public restrooms by 2035; its register lists 975. Where should the City act first? - **Screen.** 29 neighbourhoods file at least 1.5 times the complaints their crowds would predict. - **Diagnose.** In each, is a restroom missing by day, closed by evening, or out of order? - **Act.** Prioritise repairs in 3 neighbourhoods. Test longer opening hours in 13. Of the 12 that lack a restroom nearby even by day, check new sites first in 6 priority build areas (about 7 modular units), and verify demand in the other 6. Assess Midtown separately. - **Learn.** Roll each change out in random order and measure what it changes. These are priorities for investigation and testing. Complaint records show reported problems; they do not directly measure unmet need or prove that any action will work. ### 1 — The question and the approach - Local Law 58 (2025) sets a target of **2,120** public restrooms by 2035, a gap of **1,145** on today's register. The City's siting strategy is reportedly due on **1 Nov 2026** (PIX11). From a source - The register lists **975** working public restrooms, 656 of them run by NYC Parks and most of the rest in libraries. Only 8 are open 24 hours, all highway gas stations or a snack bar. - A 17-unit modular pilot began in September 2026: $4M, one year, open 7am–10pm. From a source No dataset records "needed a toilet and couldn't find one", so we work in two steps. First, complaints show where there is a problem. Then three checks show what kind of access gap is there: a restroom missing, closed, or out of order. Each kind points to a different action. | Layer | Question | Points to | |---|---|---| | 1. Problem | More complaints than the crowds predict? | The 29 high-complaint neighbourhoods | | 2. Missing | No restroom open within 500 m, even by day? | New-site feasibility checks | | 3. Closed | A restroom by day, none by 9pm? | Longer opening hours | | 4. Out of order | Coverage depends on closed or failing restrooms? | Repair or reopening | One result shapes the whole plan: once crowds are accounted for, the supply measures we tested did not predict complaints. So whether more or longer-open restrooms reduce complaints is an open question: the layers tell the City what to *try* in each place, and the trials in section 8 are how it learns what *works*. Tags mark where each result comes from: In class · S5 a technique from the course, applied to the data; Beyond class an analytics technique outside the course; From a source a fact looked up rather than calculated. ### 2 — Layer 1: 29 neighbourhoods file far more complaints than their crowds explain Busy places always generate more complaints, so the signal is an area filing more than its crowds predict. - We use 311 "Urinating in Public" complaints: 7,926 from 2020 to 2026. The top 1% of addresses file 22.3% of complaints in public places, so each address counts once a month. S1–2 · data cleaning - A count model predicts each of 197 neighbourhoods' expected complaints from its subway riders, workers, hotels, residents, borough and age mix. Beyond class · negative binomial regression - On neighbourhoods it had not seen, the model ranks them by complaints better than subway ridership alone: rank correlation 0.79 against 0.70, outperforming the benchmark in 96% of 200 test splits. S4, S7 · correlation, train/test - **29 neighbourhoods** file at least 1.5 times what their crowds predict. For six of them, which we call the **clearest cases**, it is at least 95% likely that complaints genuinely run above 1.5 times expected: East Harlem (North), Astoria (East)–Woodside (North), East Elmhurst, Williamsbridge–Olinville, Brighton Beach and Midtown–Times Square. Beyond class · empirical Bayes We treat the 29 as a wide net, not a verdict: complaints also reflect who chooses to report, and the list shifts between years and when only phone reports are counted. The next three layers decide what each of the 29 needs. [Chart: Map of New York highlighting the 29 high-complaint neighbourhoods, with the six clearest cases in dark blue and labelled] (img/layered/step1_screen.png) Step 1 of 4. The 29 neighbourhoods to examine; the six clearest cases are darkest. ### 3 — Layer 2: in 13 of the 29, most residents have no restroom nearby even by day **13** of the 29 have a **daytime gap**: 40% or more of their residents have no restroom open within 500 m even at 2pm. A daytime gap is common in lower-density areas: **77** of all 197 neighbourhoods have one, mostly in Staten Island and eastern Queens. We call an area's **coverage** the share of its residents with a restroom open within **500 m**, about a 7-minute walk; changes in coverage are given in percentage points (points). Citywide, **72%** of residents are covered at 2pm. S6 · spatial analysis [Chart: Map: 13 of the 29 neighbourhoods in red have a daytime gap; 16 are covered by day; 64 other neighbourhoods with a daytime gap shown in pale pink] (img/layered/step2_daytime.png) Step 2 of 4. Red: 13 of the 29 have no restroom nearby even by day. Pale pink: daytime gaps outside the 29, which have no complaint signal. ### 4 — Layer 3: at night, even the busiest places have almost nowhere to go Of 975 listed restrooms, 954 are open at 2pm on a weekday and only **57 restrooms** at 9pm. We turned each restroom's posted hours into hour-by-hour availability. Beyond class · parsing opening hours | Weekday | 2pm | 9pm | |---|---|---| | Residents with an open restroom within 500 m | 72% | **4%** | | 50 busiest subway stations with none within 500 m | 4 | **43** | | Busiest streets (DOT) with none within 500 m | about 3% | **64%** | The 9pm station figure is 20 if park restrooms stay open to 10pm. - Complaints lean to the evening: 30% of public-urination complaints are filed between 6pm and midnight, against 18% of another 311 type, dirty streets. S1–2 · descriptive comparison - 641 park restrooms post only standard hours ("8am–4pm, open later seasonally"). In an uncosted comparison, keeping these existing restrooms open to 10pm would add **57 points** of coverage for residents at 9pm; 100 new restrooms would add 27 points. - **13** of the 29 are **longer-hours areas**: residents are covered by day but not at 9pm, and longer park hours would recover most of that evening gap. [Chart: Map: 15 of the 29 in amber are covered by day but not at 9pm, where longer park hours would close most of the gap; Midtown in purple, where they would not] (img/layered/step3_evening.png) Step 3 of 4. Amber: covered by day, not at 9pm, and longer park hours would recover at least half the gap. Purple: Midtown, where they would not. ### 5 — Layer 4: one in five restroom inspections found the restroom unacceptable In January–June 2026, one in five inspections of Parks restrooms found them unacceptable, back to levels last seen in 2012–14. Parks keeps its own inspection list of 736 restrooms (it calls them comfort stations), including closed ones; the City's register counts 656 working Parks restrooms. Inspectors rate each one acceptable or unacceptable on a schedule: 25,912 ratings are on file. [Chart: Stacked bar chart of the January–June failure rate of NYC Parks comfort stations, 2012 to 2026: 21.2% in 2012, a record low of 8.5% in 2024, 20.1% in 2026] (img/pivot/h1_failure_2012_2026.png) - In January–June 2026, **20.1%** of inspections were unacceptable: back to 2012–14 levels after a record low of 8.5% in 2024 (+11.6 points, 95% CI 7.8 to 15.3). S3 · confidence interval - The same buildings got worse: comparing each restroom with itself gives +11.4 points. S5 · fixed effects - The rise persists after accounting for inspector differences: restroom failure rose 11.9 points more than the same inspectors' ratings of parks without a restroom (95% CI 7.8 to 16.0). This compares restroom ratings with whole-park ratings, so it cannot rule out a change in how restrooms alone are graded. S5, S8 · difference-in-differences - 80 of Parks' 736 restrooms are in long-term closure, 46 for repairs; about 34 of these are still counted in the 975. Separately, the City Council's random audit found 36 of 337 rooms locked during posted hours. - In **3** of the 29, repairing or reopening restrooms that already exist would restore 10 or more points of coverage. In Brighton Beach, reopening 4 long-closed restrooms would take coverage from 48% to 81%. **Repairs also need a way to target inspections.** Ranking sites by their failure share over the past three years finds a failing restroom in about 1 in 5 extra checks, against 1 in 8 at random, on 2025–26 data the rule never saw. A logistic regression did no better and a decision tree did worse, so the simple rule is enough. S6–7 · logistic, tree, train/test [Chart: Map: Brighton Beach, East Harlem (North) and Corona in blue, where repairing or reopening existing restrooms restores 10 or more points of coverage] (img/layered/step4_repair.png) Step 4 of 4. Blue: repairing or reopening restrooms that already exist would restore 10+ points of coverage, so repair comes first. The next map puts all four steps together. ### 6 — Each neighbourhood gets one action, using what exists first Where repairing or reopening existing restrooms closes the gap, repair first. Where a daytime gap remains, assess new sites. Where the gap opens only at night, test longer hours. Where none of these fits, assess the area separately. [Chart: Map of New York's 29 high-complaint neighbourhoods coloured by action: 6 build with a stronger signal, 6 build after verifying demand, 3 repair, 13 extend hours, 1 assess separately] (img/layered/diagnosis_map_final.png) Open the interactive map : every layer's value for each neighbourhood, the pilot sites and candidate build sites. | Action | Areas | Neighbourhoods | |---|---|---| | **Repair or reopen** | 3 | Brighton Beach, East Harlem (North), Corona; all three also have an evening gap | | **Priority build areas**: daytime gap, stronger complaint signal; check new sites | 6 | Astoria (East)–Woodside (North), East Flatbush–Rugby, Wakefield–Woodlawn, New Dorp–Midland Beach, Dyker Heights, Sunset Park (Central) | | **Verify-demand areas**: daytime gap, weaker complaint signal (4–15 complaints) | 6 | East Flushing, Port Richmond, Hollis, Breezy Point–Rockaway Park, St. George–New Brighton, Tompkinsville–Stapleton | | **Longer-hours areas**: evening gap | 13 | East Elmhurst, Williamsbridge–Olinville, Hunts Point, Brooklyn Heights, Far Rockaway–Bayswater, Chinatown–Two Bridges, West Village, Tribeca–Civic Center, Woodside, Bushwick (West), Clinton Hill, Windsor Terrace–South Slope, Melrose | | **Assess separately** | 1 | Midtown–Times Square: a 48% evening gap that longer park hours would not close, with few park restrooms nearby | Twelve areas keep a daytime gap that repair does not close. They split where complaint-signal strength falls into two clusters: in the six **priority build areas** it is 80–100% likely that complaints genuinely run above 1.5 times expected; in the six **verify-demand areas**, 24–52%. New Dorp and Wakefield stay priority build areas under every threshold we tried; the others depend on where the lines are drawn (Limits, section 2). Beyond class · sensitivity analysis ### 7 — Assessing potential new sites **About 7 well-placed modular units could bring all six priority build areas below a 40% daytime gap, but most would need street sites, not park land.** We added candidate sites one at a time, each covering the most residents still without a restroom within 500 m, the standard method for placing a limited number of facilities (the Maximal Covering Location model, Church & ReVelle 1974). Beyond class · maximal covering optimisation - On the sites we could identify (Parks land, plazas and busy-street frontage), only 2 of the six priority build areas fall below a 40% daytime gap. - Allowing any residential grid point, **about 7 units**, one or two per area, bring all six below 40%, still leaving 8–33% of their residents uncovered. That points to **modular street units**, each needing a ground check for space, utilities and access before anything is built. - 3 of 17 pilot units fall in the 29: 2 in build areas (Astoria, St. George) and 1 in a longer-hours area (Woodside). ### 8 — Two randomised trials would show what works S8–9 · A/B test design - **Hours trial.** Start with the playground restrooms beside the two largest complaint hot spots, Gun Hill (Williamsbridge) and Gorman (East Elmhurst), then the 13 longer-hours areas, in random order. Measure public-urination summonses (tickets issued by police); under simplified assumptions a drop of about 33% would be detectable. Keeping restrooms open from 4pm to 10pm would cost about $2.75M for ten months for the 43 Parks restrooms in those areas, or $4.41M for all 69 listed restrooms there. Beyond class · power analysis - **Check trial.** Among high-risk restrooms, randomly choose which get an extra check and repair first, and compare their next inspection. - **Pilot and new units.** Judge them by the hours they are found open and working, not by units installed. ### 9 — Recommendation | Step | Where | Do this | |---|---|---| | 1. Repair or reopen | Brighton Beach, East Harlem (North), Corona | Reopen and repair existing restrooms; target extra checks by 3-year failure history; then extend hours | | 2. Test longer hours | 13 areas | Run the hours trial; keep park restrooms open to 10pm where it works | | 3. Assess new sites | 6 priority build areas (about 7 modular units); then the 6 verify-demand areas | Ground-check each site; modular units first, permanent buildings only after a unit proves used and open | | 4. Assess separately | Midtown–Times Square | Examine transit and street options, and causes other than supply, before adding restrooms | Field checks and controlled trials should decide which of these actions go further. --- Archived: the earlier complaint-led analysis, kept for reference. The current analysis is in Walkthrough. ## Limits and open questions What could change the answer in the Walkthrough, how much it matters, and what would settle it. The study identifies priorities for field checks and trials; it does not show that access gaps cause complaints or that any action will reduce them. ### Open questions - **Do access gaps cause complaints?** Not established. The layers show where gaps and excess complaints coincide. Once crowds are accounted for, the supply measures we tested did not add clear predictive power, and the complaint model already includes each area's restroom count (with no effect). Two attempts at a causal estimate did not hold: winter closures moved an unrelated comparison outcome (alcohol summonses) almost as much as public-urination summonses (rate ratios 0.699 and 0.624), and closure records turned out mostly to log construction. The trials in section 8 are how to find out. - **Do longer hours or extra checks reduce anything?** Not yet measured. - **Did Parks change how it rates restrooms around the start of 2026?** The failure rise builds from November 2025. The same inspectors rated parks without a restroom no worse, which argues against stricter grading in general, but not against a change for restrooms alone. About half of the rise is unacceptable records with no component ratings; closure is a possible but unconfirmed reason. Parks' rating manual would settle both points. - **Can the candidate sites be built on?** None has been checked for space, utilities, approval or accessibility. ### 1. Which neighbourhoods are on the list - Complaints reflect who chooses to report as well as conditions on the street. The model is tested on predicting complaint counts, not on whether the resulting list reflects need. Counting phone reports only, none of the six clearest cases stays 95% certain, and rankings for 2020–22 and 2023–26 correlate at only 0.31. All 29 need checking in the field. - Testing 197 neighbourhoods at once: 10 are significant at the usual 5% level, about what chance alone would produce (9.9), and none survives a standard correction for multiple testing. The list says where to look, not which places are proven. - The 29 are chosen on the raw ratio of observed to expected complaints. Where fewer than about 5 complaints are expected, 1.5 times is easy to reach by chance. Besides the six verify-demand areas, four longer-hours areas rest on similarly weak signals: Hunts Point, Melrose, Windsor Terrace–South Slope and Clinton Hill. The hours trial will test them directly. - The model does not include nightlife or street homelessness. For Midtown–Times Square, the probability that complaints genuinely run above 1.5 times expected falls from 0.97 to 0.83 once uncertainty in the model itself is included. ### 2. How the action is chosen - The categories rest on choices: 500 m, a 40% gap, 10 points of coverage for repair, 9pm, and the split of the build areas at the observed break in complaint-signal strength. The categories are exploratory: the rules were set after seeing first results. How the result moves: | Change | Effect on the 29 | |---|---| | Gap threshold 30% instead of 40% | 1 area changes action | | Gap threshold 50% | Daytime-gap areas needing new sites fall from 12 to 6 | | 400 m instead of 500 m (missing and closed layers only) | 4 areas change | | Repair threshold 5 points instead of 10 | Repair rises from 3 to 7 areas; Astoria, East Flatbush and Hollis move from the daytime-gap groups to repair | | Counting any broken restroom that serves 10% or more of residents, even where other restrooms already reach them | Repair covers 12 areas instead of 3 | | Evening hour (9pm) | Not varied | - Of the six priority build areas, New Dorp and Wakefield keep that action under every variant. - The order (repair, build, longer hours) is a preference for using what exists, not a cost optimisation. Longer hours are close to the default: 26 of the 29 would gain most of their evening coverage back from longer park hours, so this becomes the action wherever repair and new sites do not apply. ### 3. How access is measured - Coverage counts residents only, spread evenly over a 150 m grid within each census tract and leaving out park land (0.1% fall outside residential neighbourhoods). Workers, commuters and visitors are not counted, which favours lower-density areas (77 of 197 neighbourhoods have a daytime gap) and understates need where few people live, such as Midtown. - Distances are straight-line, so real walks are longer, and nearness says nothing about capacity, entrances or queues. - Hours are as posted. Park restrooms on standard hours are assumed to close at 4pm; the longer-hours scenario keeps them open to 10pm. If some actually stay open at 9pm, the evening gaps and some actions would change; seasonal hours need checking on site. 18 listed restrooms with blank or unreadable hours count as closed. Station and street figures are for Monday–Thursday; on Friday evening libraries close at 5pm. - "Missing" means no listed restroom open at 2pm within 500 m, using the City register (last updated June 2025), which does not show that a new building is the only fix. - The repair indicator is a scenario. It combines coverage at risk from listed restrooms that inspections show closed or repeatedly failing (treated as unavailable) with coverage gained by reopening long-closed ones. Restrooms are matched to the register by location, not a verified asset list; five are placed at one point inside their park, including two seasonal Coney Island beach stations. Each needs checking before a repair is promised. - Complaint times are when the complaint was filed, not when the incident happened. DOT's pedestrian demand is modelled, not counted; adding it did not improve the complaint model. ### 4. Inspections and the check rule - 2024 is the lowest January–June failure rate in 22 years; 2026 is back at 2012–14 levels. - The 3-year rule finds failures the next regular inspection would also record: better detection, not proven prevention. It was 5th of 6 candidates in the 2024 validation year and matched the model on 2025–26, so its relative performance is not stable. It is a candidate to pilot, not a proven rule. - Neighbourhood failure rates for 2026 rest on 2–18 inspections each, so they are not used to choose actions; the closure and repeated-failure indicators are. ### 5. Costs and trials - Capital costs are funding figures, not final costs: a new building's median is about $4M, a reconstruction about $1.5–1.8M. The only modular figure is the pilot's $4M for 17 units including a year of service, a service contract rather than a capital price, so the build recommendation is not costed. - The hours-trial budget is illustrative: 6 extra staffed hours a day at an assumed $35 an hour, without supervision, supplies, security or evaluation. - The detectable drop of about 33% in summonses comes from a simplified calculation that ignores clustering within the 13 areas, overdispersion and the staggered rollout, and counts summonses at all hours. The real detectable drop is likely larger; power must be recalculated for the final design. Summonses reflect enforcement as well as behaviour: alcohol summonses serve as a comparison outcome for changes in policing, not a guarantee against it. Trials should also record whether restrooms are open and working. - The coverage comparison between longer hours (641 existing restrooms) and 100 new restrooms is uncosted and differently sized; it does not show cost-effectiveness. ### 6. Data dates - Restroom register: June 2025. Inspections: to 28 June 2026. Complaints: 2020 to September 2026. Pilot sites: 16 September 2026 announcement. The sources describe different periods, so restroom status and hours should be refreshed before any action. --- Archived: the earlier complaint-led analysis, kept for reference. The current analysis is in Walkthrough. ## Data and code Everything behind this analysis is public and can be run: 57 R scripts, every dataset exactly as pulled, and the models that failed alongside the ones that worked. ### Run it yourself ``` git clone https://github.com/JonathanWong1990/nyc-restroom-gap cd nyc-restroom-gap/analysis Rscript R/11_benchmark.R Rscript R/Z0_headline_numbers.R # rebuilds every number quoted on this site ``` You need R 4.6.1 and these packages: `sf`, `dplyr`, `MASS`, `tidyr`, `data.table`, `sandwich`, `lmtest`, `rpart`, `leaflet`, `htmlwidgets`, `httr`, `jsonlite`. The scripts read `data_raw/` relative to the working directory; to run them from anywhere else, set `RESTROOM_PROJ` to the `analysis/` folder. You do not need API keys or any downloads. ### Where the numbers come from Every figure on this site is taken from `analysis/outputs/headline_numbers.json` . `R/Z0_headline_numbers.R` writes that file by reading the raw data or running the script that owns each number. `R/Z1_check_site.R` then checks that this page, llms.txt and the README quote those values and none of the known-wrong ones. Outside facts (laws, press releases, studies) sit in the file's `external` block, each with its URL. ### If you are handing this to an AI 1. **`llms.txt` **: this page as plain text, generated from this HTML. 2. **`analysis/outputs/headline_numbers.json`**: every number, with the script it came from. 3. **`METHODS.md`**: what each script does. 4. **`analysis/notes/`**: one file per workstream, with external citations and access dates. ### The layered analysis The current walkthrough rests on these, in `analysis/layered/` and `analysis/build_plan/`: | File | What it does | |---|---| | `build_plan/R/01_prep.R` | Demand points (residents, jobs, subway riders, busy streets), restroom supply open by hour, candidate sites | | `build_plan/R/02_greedy.R` | Coverage at 2pm and 9pm; maximal-covering site selection; hours-vs-build and pilot comparisons | | `layered/R/01_layers.R` | The four layers for all 197 neighbourhoods; build sites inside Build areas | | `layered/R/03_final_rule.R` | The action rule and its sensitivity table | | `layered/outputs/diagnosis_29_final.csv` | Every layer value and the action for each of the 29 | | `build_plan/research_methods_precedent.md` | Published precedent for coverage-based siting | The inspection-prediction study and its independent checks are in `analysis/pivot/`. ### The scripts | Script | What it does | |---|---| | `11_benchmark.R` | **The one-line rule any model must beat.** Start here | | `10_modelling_table.R` | Builds the 197-neighbourhood table | | `20_regression.R` | The ranking model (negative binomial, population offset, clustered errors) | | `50_tree_vs_regression.R` | Model vs benchmark vs decision tree on the same 200 splits | | `A6_empirical_bayes.R` | Per-neighbourhood confidence, with leave-one-out | | `C2_hub_open_access.R` | Walk from the busiest subway hubs to the nearest *open* restroom, hour by hour | | `B1_small_maps.R` , `70_audit_checks.R` , `C2_report_time.R` | Coverage at 3pm vs 9pm; complaint timing; phone-only check | | `A8_condition_trend.R` | **The deterioration finding:** fixed effects plus the within-inspector placebo | | `A7_repair_vs_build.R` , `60_cost_layer.R` , `61_cost_annualised.R` | Build vs reconstruct; the lowest-cost option for each place; annual cost and the wage sensitivity | | `P1_pilot_sites.R` | Places the 17 pilot sites in neighbourhoods: 3 of 17 fall in the 29. Output `outputs/pilot_sites.json` | | `C3_station_bridge.R` , `C5_hotspot_table.R` | Tests the station screen against ridership; finds each area's complaint hot spots. Outputs `outputs/station_bridge.json`, `outputs/hotspot_table.csv` | | `C4_area_evening_access.R` | Walk at 9pm from where complaints are filed, area by area. Output `outputs/area_evening_access.json` | | `T1_mechanism_tests.R` , `T1_F_pilot_power.R` | Supply-mechanism tests, complaint timing, cost break-evens, delivery times, capital allocation, and the pilot's power. Output `outputs/t1_tests.json` | | `C6_decay_in_priority_areas.R` | Whether the decaying and closed stock sits in the 29 priority areas. Output `outputs/decay_in_priority_areas.json` | | `E1_peer_city_per_capita.R` | Public toilets per 100,000 residents in eight cities, one counting rule. Output `outputs/peer_city_per_capita.json` | | `C1_trial_power.R` | What the hours trial could detect | | `40_logistic.R` | Where NYC actually invests: existing stock, parkland and need | | `A1_noise_floor.R` , `A3_seed_stability.R` , `96_commercial_supply.R` , `A4_reporting_channel.R` | Robustness checks | | `93_winterization.R` , `12–15_did_*.R`, `90–92_*.R` | **Failed, kept on purpose:** two causal designs and the rejected summons outcome | | `Z0_headline_numbers.R` , `Z1_check_site.R` | The numbers file and the site checker | The full script-by-script list is in METHODS.md . ### Every dataset we used The NYC datasets were pulled on 20 September 2026; the pilot site list and the peer-city lists on 23–24 September. Row counts are what came out of the source; the figures used in the analysis are lower after cleaning. | Dataset | ID | Rows | Used for | |---|---|---|---| | Public restrooms | `i7jb-7jku` | 1,066 | Supply: location, type, hours | | 311 urination / public toilet | `erm2-nwe9` | 8,193 | **The outcome** | | 311 dirty conditions | `erm2-nwe9` | 108,775 | Control for the report-time test | | OATH summonses: urination | `hxbk-grd3` | 27,384 | Rejected for ranking; the trial's outcome | | OATH summonses: alcohol | `hxbk-grd3` | 163,329 | The placebo | | ACS 5-year 2024, tracts | US Census | 2,327 | Residents, income, age | | LEHD LODES8 WAC 2023 | US Census | 25,445 | Workers | | Taxi and for-hire trips by zone-month | `c5iv-bn4s` | 138,706 | Floating demand | | Subway ridership, monthly | `ak4z-sape` | 48,255 | Transit exposure; hub ranking | | Subway stations | `39hk-dx4f` | 496 | Station locations | | Hotels | `tjus-cn27` | 14,010 | Visitors | | Parks properties | `enfh-gkve` | 2,061 | Parkland | | Parks capital tracker | `4hcv-tc5r` | 2,787 | Build and reconstruct costs; delivery time | | PIP inspections (master) | `yg3y-7juh` | 152,484 | Condition trend | | PIP restrooms (closure flags) | `9byw-znpj` | 736 | Long-term closures | | PIP all sites | `buk3-3qpr` | 6,406 | Inspection site register | | Park structures | `n8q6-i44s` | 2,857 | Cross-check on the inventory | | Comfort-station COVID closures | `i5n2-q8ck` | 672 | Closure history (not a usable experiment) | | Taxi zones | `8meu-9t5y` | 263 | Joining taxi trips to geography | | NTA 2020 · tracts 2020 · community districts | `9nt8-h7nd` · `63ge-mke6` · `5crt-au7u` | — | Units of analysis and clustering | | Cultural organisations (not used) | `u35m-9t32` | 2,535 | Not used in the current analysis | | Pedestrian counts (not used) | `cqsj-cfgu` | 114 | Not used in the current analysis | | Chain food outlets (robustness only) | `43nn-pn8j` | 1,886 | Not used in the current analysis | | Pilot site list | Mayor's Office, 16 Sep 2026 | 17 | Where the pilot units are | | DOT pedestrian plazas · street centreline | `k5k6-6jex` · `inkn-q76z` | — | Locating the pilot sites | | Official public-toilet lists: Paris, Zurich, San Francisco, Vancouver, Hong Kong, Toronto, Berlin | Paris · Zurich · San Francisco · Vancouver · Hong Kong · Toronto · Berlin | — | Peer-city comparison | Files are in `analysis/data_raw/`, named `__.csv`. The outcome is 311 public-urination complaints from 2020 to September 2026, de-duplicated to one per address per month: 3,629 citywide, of which 3,556 fall inside the 197 residential neighbourhoods we model. ### Contributions The analysis draws on the whole team's research. Each contribution below was checked against its primary source. | Contributor | Contribution | What it made possible | |---|---|---| | Steph | Screen of distance from 424 subway stations to the nearest restroom | The station figures and the "missing" layer (Walkthrough sections 3–4) | | Giorgia | A 500 m service standard, and ranking areas to allocate restrooms | The coverage definition and the one-action-per-area design (sections 3 and 6) | | Steph, Giorgia | The 17-unit pilot and its site list (NYC Mayor's Office, Sep 2026 ) | The pilot comparison (sections 1 and 7) | | Steph, Candy | City Council "Good to Go?" audit (NYC Council, Dec 2025 ); service measurement by verified open hours | Independent evidence of locked restrooms (section 5); how to judge the pilot (section 8) | | Steph | Source review identifying DOT's modelled pedestrian demand (`fwpa-qxaf`) | The busy-street figures (section 4) | | Shawn | A like-for-like comparison with other cities' public toilets per resident | The peer-city table in the Merged archive | ### Links - Repository - Methods, script by script - Plain-text edition (llms.txt) - Interactive map: unmet need - Interactive map: coverage gap ↑ Tabs ---