Methodology and data sources
Data sources
| Dataset | Publisher | Rows downloaded | Stays used | Intake period used | License / terms | Source last updated |
|---|---|---|---|---|---|---|
| Austin Animal Center Intakes + Outcomes (2013-May 2025) and new-system Intakes + Outcomes (May 2025-) | City of Austin | 180,807 | 157,100 | 2015-01 to 2026-10 | Public Domain (legacy datasets, per portal); Published as public open data; no license specified on portal (new-system datasets) | Oct 21, 2026 |
| Dallas Animal Shelter Data FY2000-present (FY2019-FY2023 used) + FY2023-2026 | City of Dallas | 272,341 | 229,696 | 2018-10 to 2026-10 | Published as public open data; no license specified on portal | Oct 21, 2026 |
| Animal Shelter Intake and Outcome | County of Sonoma | 31,594 | 28,004 | 2015-01 to 2026-10 | Published as public open data; no license specified on portal | Oct 21, 2026 |
| Animal Shelter Intakes and Outcomes | City of Long Beach | 45,690 | 45,260 | 2015-12 to 2026-10 | CC BY | Oct 21, 2026 |
| OAS - Animal Outcome | Montgomery County, MD Office of Animal Services | 34,256 | 34,073 | 2017-01 to 2026-10 | Public Domain (per portal) | Oct 21, 2026 |
| Norfolk Animal Care and Adoption Center (NACC) | City of Norfolk | 53,569 | 53,363 | 2015-01 to 2026-04 | Published as public open data; no license specified on portal | Apr 6, 2026 |
| Animal Shelter Intake and Outcomes (FY2021-22 to FY2026-27) | City of San Jose | 56,216 | 55,575 | 2021-07 to 2026-10 | CC0 (Creative Commons CCZero) | Oct 21, 2026 |
| Louisville Metro KY - Animal Service Intake and Outcome | Louisville Metro Government | 51,218 | 50,313 | 2022-01 to 2026-09 | Louisville Open Data Platform Terms of Use | Dec 22, 2025 (data through Sep 19, 2026) |
We only use species, intake and outcome dates, intake type, condition, age or size, and outcome type. Animal names, ID numbers, addresses, map coordinates and staff fields are dropped before processing and never shown. Data processed Oct 21, 2026. Aggregated results are available as benchmarks.json under CC BY 4.0; please credit "Shelter Insights" and the original publishers.
How a stay is measured
- Length of stay = calendar days from intake date to outcome date. Same-day outcomes count as 0 days.
- Austin publishes intakes and outcomes separately, so each intake is matched to the same animal's next outcome, as long as the animal didn't come back in before that outcome.
- We keep dogs and cats with every recorded outcome type (adoption, return to owner, transfer or rescue, return to field, foster placement, euthanasia, died in care and other) and stays of 0 to 730 days from 2015 on. Wildlife, dead-on-arrival intakes, disposal requests, lost/found reports, treatment-only movements and records with missing dates are excluded.
- Each shelter uses its own codes. We group them into common categories (for example, "APP WNL", "NORMAL" and "HEALTHY" all become Healthy). Grouping isn't perfect, so compare categories within one shelter before comparing across shelters.
- Animals still in care aren't counted, which understates long stays in the most recent months. Dallas data covers fiscal years 2024 to 2026 only and counts foster time separately, which partly explains its shorter stays.
Long-stay scoring model (members)
Current version: v2-2026-10-21, trained 2026-10-21: gradient-boosted decision trees (LightGBM) predicting whether a stay runs over 30 days, across all recorded outcome types. Inputs: species, intake type, condition at intake, sex, spayed/neutered status, age in months, size, breed group, primary color, intake month, prior intakes of the same animal at the same shelter, and reference shelter (hidden on a random 20% of training rows so the model also works for shelters not in the open data). Training records by source: Dallas, TX 213,683, Austin, TX 136,565, Norfolk, VA 52,234, San Jose, CA 50,696, Louisville, KY 45,443, Long Beach, CA 43,072, Montgomery County, MD 31,598, Sonoma County, CA 26,896; member-contributed records: 0.
The model is retrained monthly on the open datasets plus all member contributions, and a new version is published only if it is not worse on a time-based holdout. Scores are computed in the member's browser, with each factor's contribution shown by tree-path attribution. Scores and simulations are decision support to help shelters maximize lives saved and placements. They inform, but do not replace, staff judgment and the shelter's own policies.
Benchmark rules
- Benchmarks use completed stays from intakes at least 180 days before each dataset's latest records, so long stays aren't cut off.
- Each shelter's categories are mapped into shared groups (for example, intake types and outcome types); breed groups and colors are mapped from the shelter's breed and color text.
- Austin changed shelter software in May 2025; its older and newer datasets are combined at that date.
- Records for wildlife, dead-on-arrival and lost/found reports are left out.
Program evaluator
Segmented regression (interrupted time series) with an intercept, linear trend, 11 month-of-year terms when there are 24+ months, a level change and a trend change at the start month. Reports estimates with ±1.96 standard error ranges.
Kennel simulator
Daily Poisson arrivals; stay lengths drawn from a lognormal distribution matched to the median and 90th percentile; 200 simulated years after a 120-day warm-up. Results are checked against Little's law (average population ≈ intakes per day × average stay).
Cost of care
Defaults of about $13 per dog-day and $12 per cat-day follow per-day cost figures commonly cited from Maddie's Fund. Real costs vary a lot by region and shelter type, so enter your own.