Data Sources
Where the information on this site comes from and how often it is updated
Civic Accountability Score — Methodology
Each council member displayed on the Representatives page receives a composite score from 0–100 and an A–F letter grade. The score is built from six dimensions across voting record, campaign finance, and accountability data. Two dimensions — Ethics and Conduct — operate as penalty-only: a clean record is the expected baseline and contributes nothing to the score. Only violations subtract from it.
Grading scale
Score dimensions
Share of recorded legislative votes where the member was present (yes, no, or abstain) vs. absent or excused.
Source: NYC Legistar vote records
Share of all bills the member has sponsored (as any sponsor, not just primary) that were enacted into law. Rewards members whose co-sponsorship work translates into passed legislation.
Source: NYC Legistar sponsor and matter records
Bills introduced as primary sponsor during the current term (2022–), normalized by years in role. Full credit at 3 introduced bills per year.
Source: NYC Legistar sponsor and matter records
Share of campaign contributions from individual donors vs. corporations and PACs, sourced from the most recent election cycle with available data.
Source: NYC Campaign Finance Board (Socrata API)
Penalty for NYC Conflicts of Interest Board enforcement actions. A clean record contributes nothing — it is the expected baseline. Each violation deducts points based on severity: minor fines −40, mid-range fines −60, major fines −80.
Source: NYC COIB Enforcement Fines (Socrata API) + manually curated descriptions
Penalty for documented misconduct incidents including arrests, criminal charges, ethics investigations, and formal findings. A clean record contributes nothing. Any 3 incidents — regardless of outcome — floors the conduct score at 0.
Source: Wikipedia articles reviewed by Claude (Anthropic), manually curated
Penalty for documented incidents of racist, antisemitic, Islamophobic, xenophobic, homophobic, or transphobic statements, policy actions with discriminatory intent, hate group affiliations, or formal discrimination complaints. A source URL is required for every incident. A clean record contributes nothing.
Source: Wikipedia articles and press coverage reviewed by Claude (Anthropic), manually curated
Composite formula
The base score is a weighted average of the four non-penalty dimensions, normalized so a perfect record on those dimensions yields 100. Ethics and Conduct operate as penalty-only deductions applied after the base is computed:
activity = min(bills_introduced / (years_in_role × 3), 1) × 100effectiveness = bills_enacted / bills_sponsored × 100base = (participation×0.15 + effectiveness×0.10 + activity×0.05 + finance×0.10) ÷ 0.40ethics_penalty = (100 − ethics_score) × 0.20conduct_penalty = (100 − conduct_score) × 0.20hate_bias_penalty = (100 − hate_bias_score) × 0.20score = max(0, base − ethics_penalty − conduct_penalty)years_in_role is measured from the member's term start date. Members who joined mid-term via special election or appointment use their actual start date rather than the 2022 class baseline.
Conduct incident sourcing
Conduct incidents were seeded by fetching the Wikipedia article for each of the 51 council members via the Wikipedia REST API and passing the full article text to Claude (Anthropic) with a structured prompt. Claude was instructed to extract only incidents involving arrests, criminal charges, convictions, ethics violations, formal disciplinary action, or credible allegations of corruption — not policy disagreements, controversial votes, or pre-office activism.
All extracted incidents were manually reviewed before being committed to the codebase. Incidents that did not meet the threshold (political arrests with no charges filed, questionable votes without a formal finding) were removed. The final dataset reflects editorial judgment, not automated output.
Conduct penalty scale
Any 3 incidents, regardless of outcome, floor the conduct score at 0 (minimum penalty per incident = 34). A single conviction also floors the score at 0.
Limitations
- Voting and sponsorship data covers legislation tracked in NYC Legistar. Committee attendance, constituent services, and district engagement are not measured.
- Legislative Activity counts only bills where the member is the primary introducing sponsor. Co-sponsorships count toward Legislative Effectiveness but not Activity.
- Legislative Effectiveness reflects pass rate across all sponsored bills. New members or those who recently joined mid-term will have fewer sponsored bills and shorter track records, which may skew this score.
- Campaign finance data may not be available for all members — appointed members who have never run in a reported election cycle receive a neutral finance score (50/100).
- COIB violation descriptions are sourced from press releases and news reporting. Cases where no public description exists show the case number and fine only.
- Conduct incidents are sourced from Wikipedia, supplemented by manual research into press coverage. Members with recent incidents not yet reflected in these sources may not be captured.
- The score is a tool for civic awareness, not a comprehensive audit. It should be read alongside the underlying source data and your own judgment.
Data Sources
NYC Legistar
Daily at 8:00 AM ETData: Legislation, votes, sponsors, bill status
The Legistar Web API is queried daily to fetch recent legislative introductions and council votes. Data is stored in our database and displayed on the Track Legislation and Voting History pages.
Legistar is the official legislative management system used by the NYC Council. All bill text, vote records, and sponsor information come directly from this system.
NYC Open Data — DOB Permit Issuances
Refreshed every hourData: Active construction permits in District 40
The NYC Department of Buildings permit issuance dataset is queried for active permits in Council District 40. Work types such as New Building, Demolition, Renovation, Solar, and Structural are surfaced on the What's New page and homepage.
Permit data reflects what has been approved by DOB and may not yet reflect work visible on the ground.
NYC Open Data — DCA License Applications
Refreshed every hourData: New business licenses in District 40
The NYC Department of Consumer and Worker Protection (DCWP) licensing dataset is queried for active business licenses issued in Council District 40 within the past six months. Results appear on the What's New page and homepage.
Businesses shown have active licenses from DCWP. Not all operating businesses require a DCWP license.
MTA GTFS-RT
Live, refreshed every 5 minutesData: Real-time subway and bus alerts
Transit alerts are fetched live from the MTA's GTFS-RT service alerts feed, filtered to routes serving District 40 (2, 5, B, Q, B41, B44, B49).
Alert text is provided by the MTA as-is and is not translated.
Local News RSS Feeds
Refreshed every 30 minutesData: Brooklyn and NYC local news headlines
RSS feeds from Gothamist, The City, and City Limits are fetched and displayed on the homepage. Articles are filtered and sorted by publication date.
Articles link directly to their original source. OpenBorough does not produce or edit any news content.
Claude (Anthropic)
Summaries and briefing generated daily after legislation syncs; translations follow shortly afterData: AI-generated legislation summaries, daily briefing, and page translations
Claude is used to generate plain-language summaries of legislation, a daily legislative briefing shown on the homepage, and translations of content into Spanish, Haitian Creole, and Bengali.
AI-generated content is a convenience feature. It is not an official interpretation of any legislation.
NYC Council Website
Manually updated as neededData: Council Member contact information
Representative contact details for Council Member Rita Joseph are sourced from the official NYC Council website and manually maintained.
Vote.gov / NYSenate.gov
External — maintained by the NY State Senate and Vote.orgData: State and federal representative lookup
Rather than maintaining a database of state and federal representatives, the site links directly to the official NYS Senate lookup tool and Vote.gov for finding elected officials by address.
Manually curated
Manually updatedData: Community resources and city services directory
The Local Resources and City Services pages are hand-curated lists of organizations, programs, and services known to serve District 40 residents. Information is sourced from each organization's own website.
If you notice outdated or incorrect information, please report it via GitHub.
NYC Campaign Finance Board (CFB)
Cached dailyData: Campaign contribution records for all 51 NYC Council members
The CFB contribution dataset (Socrata API, dataset rjkp-yttg) is queried by council member name across the 2021, 2023, and 2025 election cycles. Contributions are matched by last name and first-name prefix, with diacritic normalization to handle accented characters. The share of contributions from individual donors vs. corporations and PACs is computed and used in the Campaign Finance dimension of the Civic Accountability Score.
CFB data covers contributions reported to the NYC Campaign Finance Board for participating candidates. One member (D3, Carl Wilson) has no CFB data as he was appointed and has never run in a reported cycle.
NYC Conflicts of Interest Board (COIB)
Cached dailyData: Ethics enforcement fines issued to NYC Council members by the COIB
The COIB enforcement fines dataset (Socrata API, dataset p39r-nm7f) is queried for all cases where the agency is the City Council and the case name matches the council member's last name. Fines and penalties are tallied and used in the Ethics Record dimension of the Civic Accountability Score.
The COIB dataset contains no description field — violation descriptions shown on the scorecard are sourced from COIB press releases and news reporting, and manually curated in the codebase.
NYC Capital Projects Database (CPDB)
NYC OMB publishes Capital Commitment Plan 3× per year: January (Preliminary), April (Executive), and September (Adopted)Data: Capital investments and commitments in District 40
The CPDB is maintained by NYC's Department of City Planning (DCP) and tracks capital projects across all five boroughs. The Budget Tracker page queries this dataset for capital commitments relevant to District 40, supplemented by curated FY2026 project data when live results are unavailable.
Dollar amounts in the raw dataset are reported in thousands.
Notice incorrect or outdated information?
Report an issue on GitHub