Methods and how this was made
Made by AI agents, with a person directing and checking the work.
Questions
How does Lawrence decide which streets, water mains and pipes to fix? How large is the maintenance backlog? Where does the city stand on lead service lines? What would different choices cost?
Data
- Adopted 2027-2031 Capital Improvement Plan: the City Commission adoption packet of Sep 15, 2026, with fund tables, the Project Summary table and 147 project detail sheets, each with ten prioritization sub-scores.
- City street-maintenance page (2025 PCI by street class, lane-miles, five-year program).
- City public water GIS: 41,604 pipe segments and 28,859 meter enclosures with service-line materials. This is the data behind the city's Lead Service Line Inventory map.
- Lead inventory figures as corrected by the city and reported in June 2025, plus federal LCRI rules and EPA cost estimates.
Steps
- Extract text from the plan PDF. Read each project and its funding lines from the Project Summary table, and check that the sums equal the printed totals (A1).
- Read each project sheet's Type, ten sub-scores, Total Score and Total Project Cost. Check that the sub-scores add up to the printed total.
- Assign each project to a system category (A2) and add up funded and unfunded dollars.
- Sum city-owned water-main length by material and install decade; map it.
- Count service-line records by material on the city and customer sides; compare with the city's reported inventory.
- Build scenarios from the plan's own figures, one local contract price and EPA unit costs (A5-A7).
Checks (run before every build: checks/run_checks.py)
- No silent blanks in key fields; no duplicate project funding lines.
- Control totals: parsed CIP funded and unfunded dollars equal the printed plan totals exactly. Score sub-totals equal the printed Total Score for every project.
- External reality check: the GIS galvanized and lead counts are within 10% of the city's corrected inventory (130 galvanized, 2 lead), and GIS main mileage is between 400 and 600 miles.
- Provenance: every data file is listed in sources.md; every output has a sidecar file.
- History freshness; raw data read-only; no empty files.
- Questionable results flagged: GIS blanks versus the city's single "unknown"; break data unavailable.
How this was made
This site was researched, analyzed and written by AI agents, with a person directing and checking the work. The agents downloaded the public documents and GIS layers above, wrote Python scripts (pandas, matplotlib, geopandas) to extract and total the figures, and drafted the text. Every number comes from those scripts or is quoted from a cited city document. A guardrail script must pass before the site is built, and a security audit runs before anything is published. The process follows the one used for an earlier Lawrence transit-access study. Corrections are logged on the Amendments page.
Assumptions
Work done 2026-10-25 (America/Chicago). Plan years 2027-2031. CIP adopted 2026-09-15 (Resolution 7705, 3-2).
- A1 CIP dollars come from the "Project Summary" table of the adoption packet. Two funding lines shown there as sources (MS1-00047R Intergovernmental County $1,787,500; RR-260004 "Other (Fund Not Listed)" $1,150,000) are counted as unfunded because the plan's fund tables and printed totals treat them that way. With that, parsed totals equal the printed totals exactly ($402,899,000 funded; $342,164,945 unfunded).
- A2 Categories (streets, drinking water, wastewater, stormwater, other) are assigned by this project from project codes and names (keyword rules in analysis.py). "Maintenance" means the city's own Type field on each project sheet.
- A3 Prioritization scores are read from each project detail sheet; the ten sub-scores must add up to the printed Total Score (147 of 147 do). Maximum points per criterion are not published in text form (the matrix is an image), so no weights are claimed.
- A4 Water mains = GIS water pipe layer, asset group "Water Main", owner City of Lawrence; length = Shape__Length in US feet (Kansas North state plane). Install year from installdate.
- A5 Water-main replacement cost $325 per linear foot (Haskell Ave bid: $1,136,225 for about 3,500 LF) to $490 (+50% allowance for design, pavement restoration and inflation). One local contract; flagged as rough.
- A6 The watermain program also funds assessment and maintenance, so miles replaced are an upper estimate.
- A7 Lead/galvanized replacement cost: EPA LCRI economic analysis, full replacement, 2020 dollars: mean $6,930; 25th-75th percentile $6,507-$8,519. Not adjusted for inflation.
- A8 Service-line classes from the city GIS text fields: "Lead - PB" = lead; "Galvanized Pipe - GP" = galvanized; blank = not recorded. The city's own corrected inventory (2 lead, 130 galvanized requiring replacement, 1 unknown) is the headline; the GIS is a cross-check.
- A9 LCRI deadlines as in the October 2024 final rule (compliance 2027-11-01; replacement generally within 10 years). Later federal changes, if any, are not reflected; flagged.
- A10 Margin of error: no sample-survey data are used, so no MOE applies. PCI is the city's modeled citywide average.
- A11 Site name, neutral and anonymous: "Lawrence streets and pipes". Planned address placeholder lawrence-kansas-civic-reports.pages.dev/infrastructure/ (combined hub; not deployed).