-
-
AI insight on 6 months of Lost/Found reports, showing below-seasonal activity and suggesting monitoring and partner outreach.
-
Filtered Lost/Found reports from the last 6 months, shown on the hotspot map with AI insights on seasonal patterns and actions.
-
Last 30 days of animal-related 311 reports, visualized on the map with AI insights highlighting emerging trends and recommended actions.
-
All-time view of Winnipeg animal-related 311 reports, showing citywide hotspots, overall trends, and AI-generated operational insights.
Inspiration
Animal shelters in Winnipeg have been facing serious capacity pressure, with some organizations being forced to pause or limit animal intake. We wanted to build something that could help animal welfare organizations identify warning signs earlier instead of only reacting once shelters are already overwhelmed.
We found that the City of Winnipeg publishes a large 311 Requests dataset containing community-reported animal-related issues. That gave us the opportunity to build a system around real public data and ask a simple question: what is happening, why is it happening, and what should we do about it?
What it does
PawSignal is an AI-powered animal welfare operations platform that helps organizations detect emerging animal-related issues across Winnipeg.
The platform includes:
- An interactive hotspot map showing where animal-related 311 reports are concentrated
- Time filters for exploring patterns across different periods
- Category filters for issues such as stray or roaming animals, lost and found pets, welfare concerns, surrender-related pressure, and safety complaints
- An AI Intelligence Feed that analyzes historical data to identify emerging trends, recurring patterns, sustained hotspots, and unusual changes
- Recommended actions such as owner-support outreach, partner notifications, foster recruitment, or other targeted responses
The goal is to help animal welfare organizations move from a reactive approach to a more proactive, data-informed one.
How we built it
We built PawSignal using Next.js and TypeScript for the application, Supabase PostgreSQL for the database, Prisma as the ORM, and Leaflet for the interactive map.
For the data layer, we used the City of Winnipeg's 311 Requests dataset. The original dataset contains more than 18 million records, so we used the Socrata API to filter for Animal Services requests and selected request types that were relevant to animal welfare.
We pulled 9,166 relevant records and then cleaned and categorized them into broader groups such as:
stray_roaminglost_foundwelfare_distresssurrender_capacitysafety_complaint
After removing records without usable location information, we had more than 5,000 geolocated records that could be used for mapping and analysis.
The cleaned data was loaded into Supabase, exposed through API routes, and used by both the hotspot map and the statistical analysis behind the AI Intelligence Feed.
Challenges we ran into
One of the biggest challenges was working with the size and structure of the Winnipeg 311 dataset. We had to determine which request types were actually relevant to animal welfare instead of simply using every Animal Services record.
We also discovered that many animal-related requests did not contain usable neighbourhood or geographic information, which meant they could not be displayed on the map.
Another challenge was making sure the AI did not simply generate conclusions from raw data. We separated the statistical analysis from the language model so that trends and percentage changes are calculated in code first, and the AI is used to explain those results and recommend possible actions.
We also had to work through integration issues involving Prisma, Supabase connection strings, Next.js server and client components, and Leaflet rendering.
Accomplishments that we're proud of
We are proud that PawSignal uses real Winnipeg public data rather than relying entirely on simulated information.
We successfully created an end-to-end data pipeline that:
- pulls animal-related 311 data from the City of Winnipeg
- cleans and categorizes the records
- stores them in Supabase
- exposes them through our application API
- visualizes them on an interactive map
- analyzes them to generate operational insights
We are also proud of connecting the data to an action-oriented workflow instead of building only a static dashboard. PawSignal is designed around the idea of Detect → Decide → Act.
What we learned
We learned that real-world public datasets require a significant amount of filtering, cleaning, and interpretation before they can be useful in an application.
We also learned the importance of distinguishing between a community signal and a direct shelter metric. Winnipeg 311 reports do not represent shelter intake records, so we treat them as a proxy for animal-related activity rather than claiming they directly represent shelter demand.
From a technical perspective, we gained experience working with Socrata APIs, data cleaning, Supabase, Prisma, Next.js API routes, Leaflet, and integrating statistical analysis with AI-generated explanations.
What's next for PawSignal
The next step for PawSignal would be to integrate direct shelter operational data such as intake numbers, kennel capacity, foster availability, and adoption activity.
Combining those internal shelter metrics with community signals from 311 data could make the system much more powerful.
We would also like to expand the campaign system so recommended actions can connect to real volunteer networks, foster recruitment tools, partner organizations, and community notifications.
Longer term, PawSignal could be expanded beyond Winnipeg and adapted for animal welfare organizations in other cities that publish similar public service data.
Built With
- ai
- leaflet.js
- postgresql
- prisma
- socrata-open-data
- supabase
- typescript
Log in or sign up for Devpost to join the conversation.