Date: March 24, 2026
Scope: Comprehensive data-driven housing policy analysis spanning supply, affordability, subsidized housing, building conditions, public land, and NYCHA capital needs across all five NYC boroughs.
Primary Deliverable: Mamdani_Policy_Analysis_EXPANDED.md
a ~2,600-line policy brief with six analytical sections, evidence-based findings, risk scenarios, and implementation roadmaps.
Supplementary Deliverables: Housing Policy Master Dashboard
8 interactive dashboards in HTML format, detailed data source ontology, and methodological notes.
This project demonstrates an AI-driven policy analysis workflow built incrementally with Claude Cowork and the qsv data wrangling plugin and its Policy-Analyst Agent. Starting from raw public datasets, it produces a 2,600-line policy analysis document and 8 interactive dashboards — all generated through iterative conversation with Claude.
The scenario is drafting a housing policy briefing for Mayor Zohran Mamdani, pre-loading all the data in a Cowork Project, with the initial prompt:
“Can you analyze the NYC 311 files, the PLUTO file, the Furman Center Subsidized Housing Database (see https://www.furmancenter.org/data-tools-resources/data-tools-data-downloads/ for info), NYC’s Budget for FY 2025 (see https://www.nyc.gov/content/omb/pages/publications to retrieve files as needed), and do a comprehensive temporal analysis using the policy-analyst agent through the lens of Mayor Mamdani’s priorities?”
Note that we didn’t specify the exact policy questions or analysis sections upfront. After the Agent derived the initial ontology based on the intentionally Housing-centric starter datasets, we let the data exploration and analysis be driven by the findings and patterns discovered by the Policy Analyst Agent - as it repeatedly consulted with us in the process based on its understanding of Mayor Mamdani’s priorities which it researched from public sources.
This allowed us to minimize any bias or constraints we might have introduced by pre-defining the analysis structure, and instead let the data and the agent’s reasoning drive the insights - as we proactively steered it to explore relevant areas and skip irrelevant ones - as what would happen in a real-world scenario where the policy questions evolve as you explore the data and discover new patterns.
After the initial analysis was drafted, Claude made additional recommendations for further analysis, and we onboarded additional datasets - StreetEasy market data, Census ACS estimates, BLS economic indicators, and NYCHA Physical Needs Assessments.
The first session started on March 23, 2026 at 7:54 AM EST and last session ended on 2026-03-24 at 9:58 AM EST, with about ~8 hours of active conversation and analysis time over ~10 sessions, with the qsv MCP Server being invoked 273 times. The final deliverables were produced by the end of the last session, with some additional time for formatting and documentation.
Mamdani_Policy_Analysis_EXPANDED.md (176 KB, ~2,600 lines)
The main deliverable — a comprehensive policy brief covering six analytical sections with data from 8 sources:
Also includes: policy findings with evidence ratings, risk scenarios, implementation roadmaps, and full methodological notes with a confidence assessment table.
All dashboards are self-contained HTML files using Chart.js 4.4.1. No server required — open in any browser. Each has borough and time/view filters, dark theme, and links back to the Master Dashboard.
| File | Description | Size |
|---|---|---|
Explorer_Master_Dashboard.html |
7-tab hub linking all sections. Overview KPIs, borough filter, time period filter. | 114 KB |
Explorer_A_Supply_Pipeline.html |
Permit trends, completions lag, borough production comparison (2010–2026) | 60 KB |
Explorer_B_Affordability.html |
Rent trends by bedroom, income-rent gap, rent burden, StreetEasy + Census + BLS | 63 KB |
Explorer_C_Subsidized_Housing.html |
Subsidy portfolio by program, expiration risk, borough exposure | 32 KB |
Explorer_D_Conditions.html |
311 HPD complaint volume, seasonal patterns, complaint types, borough trends | 32 KB |
Explorer_421a_Timeline.html |
421-a expiration timeline 2026–2060, bimodal wave visualization, borough deep dive | 22 KB |
Explorer_E_Public_Land.html |
City-owned developable parcels, potential units, flood zone cross-reference | 25 KB |
Explorer_NYCHA_Capital.html |
PNA 2023 vs 2025 comparison, work type breakdown, top developments, cost distribution | 32 KB |
| Source | Description | Coverage |
|---|---|---|
| Furman Center SHD | Subsidized Housing Database — BBL-level property records with subsidy programs, expiration dates, REAC scores, violations | 5,261 properties, May 2025 |
| NYC PLUTO | Primary Land Use Tax Lot Output — tax lot characteristics, zoning, ownership, building area | 858,284 lots, Feb 2026 |
| StreetEasy | Market data — median rent, sales prices, inventory, days on market, price indices | Borough-level, 2010–2026 |
| NYC 311 | Service requests filtered to HPD housing complaints | 42.96M total / 9.83M HPD, 2010–2025 |
| Census ACS | via Official US Census MCP Server - American Community Survey 1-Year Estimates — income, rent, burden, tenure, poverty | 5 boroughs, 2010–2023 |
| BLS | Bureau of Labor Statistics via BLS MCP Server — CPI, shelter inflation, unemployment, wages | NYC metro, 2010–2026 |
| NYCHA PNA | Physical Needs Assessment development-level results | 233 developments, 2023 & 2025 |
| DCP HousingDB | NYC housing permit and completion database | Post-2010 permits |
This entire analysis was produced through conversational interaction with Claude Cowork, using the qsv 18.0.4 Cowork plugin, primarily using its Policy-Analyst Agent. All data processing, analysis, and visualization steps were driven by iterative conversations with Claude, with the qsv Cowork Plugin skills and commands steering all data ingestion, profiling, and SQL querying tasks using the qsv MCP Server.
The workflow:
Each analytical section went through several cycles of: explore data → discover patterns → document findings → build dashboard → integrate into master document → audit for consistency.
README.md ← This file
Mamdani_Policy_Analysis.md ← Initial draft of the policy analysis (~600 lines)
Mamdani_Policy_Analysis_EXPANDED.md ← Expanded analysis document (~2,600 lines)
Explorer_Master_Dashboard.html ← Master dashboard (7 tabs)
Explorer_A_Supply_Pipeline.html ← Supply pipeline dashboard
Explorer_B_Affordability.html ← Affordability dashboard
Explorer_C_Subsidized_Housing.html ← Subsidized housing dashboard
Explorer_D_Conditions.html ← Housing conditions dashboard
Explorer_421a_Timeline.html ← 421-a expiration timeline
Explorer_E_Public_Land.html ← Public land inventory
Explorer_NYCHA_Capital.html ← NYCHA capital backlog
PROJECT_ONTOLOGY-initial.md ← Initial data source ontology with key fields and quality notes
PROJECT_ONTOLOGY-final.md ← Final data source ontology with updates after full data exploration
qsvmcp.log ← Log of all qsv MCP Server interactions (273 invocations)
Raw data files (CSVs, PLUTO, 311, PNA Excel files) are not included in this repo due to size (~35 GB total). See Data Sources above for where to obtain them. During the analysis, Claude and qsv produced 133 intermediate analysis artifacts, including SQL query logs, Python scripts, data profiling outputs, and iterative policy analysis drafts. These are not included in the published repo but can be made available upon request for audit purposes.
This experiment demonstrates the potential of AI-driven policy analysis workflows to rapidly synthesize complex datasets into actionable insights and recommendations.
We minimized hallucinations by scaffolding an iterative analysis cycle that started by inferring a project ontology - followed by repeated exploration, validation, auditing and refinement with the Policy Analyst Agent. This was further facilitated by qsv, as it’s exponentially faster than traditional data wrangling tools, minimizing iteration cycle times. This allowed us to “steer” the analysis and produce a comprehensive housing policy analysis in just a few hours.
This approach mimics how AI-assisted Software Development has advanced rapidly in recent months with iterative test-driven development pioneered by Claude Code - as the rapid feedback loop enables both the Model and the Developer to make quick course corrections.
We also leveraged the torrid pace of Claude development. Just this year alone:
No work is without its limitations. In a real-world scenario, we would recommend a more extended timeline with multiple rounds of human expert review and stakeholder engagement to validate findings and refine recommendations before informing policy decisions.
Still, we’re amazed at how far we got in just a few hours and the quality of the analysis produced. And having built numerous Dashboard products and solutions in the past, we’re particularly impressed by how we can create interactive, bespoke ad-hoc reports without dealing with the one-size-fits-all constraints of traditional BI/SaaS solutions - which could have easily taken weeks if not months to build or customize with a data engineering team, and that’s after creating ETL pipelines to onboard the data into proprietary databases. With this approach, we can go from raw data to actionable insights in hours, and easily update the analysis as new data comes in or priorities shift.
In our opinion, this is a game-changer for the public sector, which often do not have the luxury of extensive data engineering resources. With AI-driven workflows like this, we can democratize access to powerful data analysis and enable more responsive, evidence-based policymaking.
And we believe this is just the beginning. Currently, the main bottleneck is the repeated in-situ FAIRification and manual onboarding of datasets into the analysis workflow. The Project Ontology we compile at the beginning of the process was critical for keeping track of the datasets, their key fields, and quality notes - but it was not a formal ontology and we have to derive it with Claude’s general world knowledge. What if we had a standardized, machine-readable, agent-understandable, user-friendly data source ontology format (“Open Data as a Verb”) that could be automatically extracted from datasets and ingested into the analysis workflow?
Cue CKAN integration. 😊
This would allow us to onboard and discover new and related datasets in seconds instead of hours, and maintain a live data catalog not just for this project but across the entire organization, if not the entire civic data ecosystem!
IMHO, once we do, we can say we have achieved “Accelerated Civic Intelligence.” 😉
This analysis was produced using Claude, an AI assistant by Anthropic, using datHere’s qsv Cowork plugin. All data processing is systematic and reproducible, but policy recommendations reflect analysis of provided datasets and should be validated against additional sources and stakeholder input before use in policy decisions.
Github Repo: https://github.com/dathere/peoples-api-demos/
Github Pages: https://dathere.github.io/peoples-api-demos/NYC-Housing-Policy-SOD2026/
LinkedIn post: https://www.linkedin.com/posts/joelnatividad_nyc-housing-policy-analysis-for-mayor-mamdani-activity-7442299861846163456-XwMB