Inspiration Animal shelters operate under severe resource constraints. While reviewing the Austin Animal Center open dataset, I noticed that it spans over a decade of detailed intake and outcome records. I was inspired to see whether historical data could be transformed into a practical decision-support tool. Instead of just analyzing trends, I wanted to build something actionable: a system that predicts adoption likelihood and expected length of stay so shelters can intervene earlier for higher-risk animals.

What it does Adopt Compass predicts:

  • Adoption probability using a classification model
  • Expected length of stay in days using a regression model

Given intake features such as animal type, age, breed, intake condition, sex, and timing information, the system estimates both the likelihood of adoption and how long the animal may remain in the shelter. The tool also classifies animals into risk tiers (Low, Medium, High) and provides recommended intervention strategies to guide outreach, foster placement, and care prioritization.

How I built it I used the Austin Animal Center intake and outcome datasets from 2013 to 2025. The workflow included:

  • Data cleaning and merging intake and outcome records.
  • Feature engineering, including:
  • Age conversion into days
  • Weekend intake indicators
  • Puppy/kitten and senior flags
  • Mixed breed indicators

Model training:

  • Logistic-style classifier (scikit-learn) for adoption prediction
  • Regression model for predicting length of stay
  • Evaluation using ROC-AUC, F1-score, MAE, and visual diagnostics.
  • Deployment with Streamlit for an interactive interface. The project includes a full preprocessing pipeline, training scripts, saved model artifacts, and visual performance charts.

Challenges I ran into One major challenge was aligning intake and outcome records properly using animal IDs while ensuring valid time ordering. Handling missing values and inconsistent categorical formats required careful cleaning. Feature engineering also required thoughtful assumptions, such as converting age units and grouping breeds meaningfully without overfitting. Deployment was another challenge. Ensuring that model artifacts, file paths, and container configuration worked correctly in a cloud environment required debugging Docker builds and runtime behavior.

Accomplishments that I'm proud of

  • Engineering meaningful domain-specific features rather than using raw fields directly
  • Creating a polished, styled Streamlit interface with risk categorization and recommendations
  • Designing the system to be reproducible, with training scripts and saved model artifacts

What I learned I learned how critical feature engineering is in structured ML problems. Small transformations, like converting age units or detecting weekend intake patterns, significantly improved predictive performance. I also learned the importance of clean deployment pipelines. A working local model is not enough; packaging, reproducibility, and environment configuration matter just as much. Finally, I gained deeper insight into how data science can directly support operational decision-making in real civic contexts.

What's next for Adoptability Compass

Future improvements could include:

  • Incorporating additional behavioral or medical notes using NLP
  • Adding explainability tools such as SHAP values for transparent decision support
  • Building a resource allocation optimization layer to recommend specific interventions under budget constraints
  • Expanding to other municipal shelter datasets for cross-city generalization

The long-term goal is to transform this from a predictive dashboard into a full decision-support system for animal welfare operations.

Built With

Share this project:

Updates