Skip to content

V0.9.2 #20

@thumpersecure

Description

@thumpersecure

Scope Update: Council District + Councilmember Feature

Change Summary

The Council district + councilmember resolution feature was previously listed in the Out of Scope section. This has been reclassified as In Scope and prioritized as a near-term deliverable.


Updated “In Scope” Section

✅ In Scope (4PHILLY Core Features)

Property & Violation Lookup

  • OPA number → property details (address, owner, use code)
  • L&I violation history + citation details (Carto violations table)
  • Rental license status (active/expired date, renewal pathway)
  • Unfit Structure & Dangerous Building flags

Tenant Protections & Legal Context

  • Eviction Lab data (eviction history, case status, landlord profile)
  • Pennsylvania/Philadelphia tenant rights framework
  • Retaliation statute triggers (Phila. Code §9-3902)
  • Just cause protections + non-renewal rules

Governance & Oversight

  • City Council district + councilmember (NEW)
  • L&I Committee chair identification for violations/licensing (NEW)
  • Committee-relevant routing flags (NEW)

Risk Intelligence

  • Complaint pattern analysis (311, L&I, harassment reports)
  • Violation density + severity scoring
  • Landlord enforcement history

Updated “Out of Scope” Section

❌ Out of Scope (Explicitly Not Included)

Philadelphia City Government (Non-Essential)

  • Individual councilmember voting records or legislative positions
  • Real-time council hearing schedules or bill tracking
  • HRC (Human Relations Commission) — no discrimination complaint integration
  • ZBA (Zoning Board of Appeals) — separate workstream, future phase
  • PCHR (Philadelphia Commission for Human Relations) — referral-only, no integration

Constituent Services & Casework

  • Casework tracking or ticket submission to council offices
  • Automated constituent service request generation
  • Hearing attendance or meeting scheduling

Broader City Agencies

  • Health Department (not violations-related)
  • Department of Records (historical deeds, tax records)
  • Parks & Rec, Streets, or other non-housing agencies

Committee Flagging: Strategic Rationale

Why This Matters

4PHILLY surfaces violations, expired licenses, and complaint patterns. The natural next question for any tenant is: “Who has oversight authority for this?”

Ending with a generic “contact your councilmember” suggestion leaves the tenant hanging if their district member does not chair the L&I Committee. But if their councilmember is Mark Squilla (L&I Chair), flagging that directly positions them for high-impact contact.

Implementation Strategy

  • When issue = licensing violation or rental license expired:
    • If district councilmember == L&I Chair: “Your councilmember chairs the L&I Committee — direct jurisdiction over your issue.”
    • If district councilmember ≠ L&I Chair: “For licensing issues, the L&I Committee Chair is [NAME] — consider copying them on your communication.”
  • For other issue types (non-licensing):
    • Standard councilmember info, no committee flag

Current L&I Chair

Mark Squilla (District 5)
Email: mark.squilla@phila.gov
Office: (215) 686-XXXX
Status as of May 2026; subject to change on council reorganization


Data Dependencies

Data Source Freshness Notes
Council Districts (shapefile) City GIS portal Annual Point-in-polygon lookup; convert to GeoJSON once
Councilmember Directory phila.gov or council website Weekly scrape or manual Name, district, email, phone
L&I Committee Chair Council website Event-driven (on chair change) Maintain in config JSON

User Experience Flow

Before (Without Feature)

Violation found at 315 N 12th St.
→ User asks: "Who can help with this?"
→ User must separately look up: "Who is my councilmember?"
→ User must separately research: "What committee handles licenses?"
→ Friction; loop not closed.

After (With Feature)

Violation found at 315 N 12th St.
→ 4PHILLY resolves property to Council District 2
→ 4PHILLY displays: Councilmember Kenyatta Johnson (email, phone)
→ 4PHILLY flags (if licensing): "For license issues, L&I Chair is Mark Squilla"
→ User has complete routing; can take action immediately.

Effort & Timeline

Estimated: 3–5 days (core + committee flagging)
Recommended Priority: HIGH — ship before ZBA/PhilaDox work
Blocking Dependencies: None (OPA integration already complete)
Unblocking: Council District resolution enables committee-aware routing, improving UX without adding external API dependencies


Notes for Maintainers

  1. Shapefile → GeoJSON: One-time conversion using GDAL. Commit the resulting GeoJSON to repo. Update annually or when city redistricts.
  2. Councilmember Directory: Implement weekly scrape from phila.gov or maintain manual JSON snapshot. Include all districts, names, contact info, committee assignments.
  3. L&I Chair Tracking: Small config file (li_committee_chair.json) with current chair’s name, email, phone. Update only when chair changes (rare event).
  4. Issue Type Routing: When agent receives property + issue_type (e.g., “rental_license_expired”), pass issue_type to councilmember lookup so flag logic can execute correctly.
  5. Fallback Chain: Always attempt to resolve district via coordinates. If coordinates unavailable, use OPA’s internal district field as fallback. Never silently fail.

Related Issues

  • PhilaDox integration (out of scope, future phase)
  • ZBA (Zoning Board) integration (out of scope, future phase)
  • PCHR (Human Relations Commission) — referral pathway only, no API integration

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions