In this final post in the Austin-Sacramento comparison series, we’ll look at live-release rate and basic outcome types at both animal shelters.
Live-Release Rate
The toolkit has a function to calculate a variety of outcome statistics for a given data set, including the simple live-release rate, calculated as the count of animals discharged alive divided by the count of animals discharged both alive and dead (for more information on rates, see Unraveling Life-Saving Rates).
Last year, the Austin rounded live-release rate for cats and dogs was 94% (93% for cats and 96% for dogs). The Sacramento rate was 78% (81% for cats and 75% for dogs). Annual live-release rate at both shelters has been trending higher, with live release of dogs seeing the greatest improvement. So far in 2016, the rounded live-release rate for dogs in Austin is 98%, and in Sacramento 81%.
> lrrByYear <- function(data) { lrr <- round(data$live_rate, digits = 3); names(lrr) <- data$year; lrr } > # Austin simple live-release rate by animal group and year to date > lapply(atxCreateOutcomeNumbersList(atxOutcomeList, period = "year"), lrrByYear) $cats_dogs 2014 2015 2016 0.934 0.943 0.963 $cats 2014 2015 2016 0.927 0.926 0.942 $dogs 2014 2015 2016 0.939 0.956 0.976 > # Sacramento simple live-release rate by animal group and year to date > lapply(sacCreateOutcomeNumbersList(sacOutcomeList, period = "year"), lrrByYear) $cats_dogs 2014 2015 2016 0.690 0.778 0.811 $cats 2014 2015 2016 0.727 0.808 0.816 $dogs 2014 2015 2016 0.662 0.749 0.807
Monthly Live-Release Rate
The time series of monthly live-release rate can sometimes reveal trends. Here are the monthly rates for the past two and a half years at each shelter:
> # Austin monthly simple live-release rate by animal group, 2014 to July 2016 > lapply(atxOutcomeNumbersList, function (data) { ts(round(data$live_rate, digits = 3), start=c(2014,1), end=c(2016,7), frequency=12) }) $cats_dogs Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 2014 0.941 0.930 0.928 0.945 0.934 0.932 0.933 0.945 0.941 0.927 0.922 0.931 2015 0.946 0.932 0.927 0.943 0.923 0.918 0.937 0.950 0.959 0.957 0.968 0.969 2016 0.970 0.961 0.960 0.969 0.947 0.958 0.977 $cats Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 2014 0.935 0.910 0.914 0.926 0.931 0.925 0.938 0.939 0.933 0.931 0.909 0.894 2015 0.923 0.908 0.886 0.937 0.893 0.890 0.929 0.938 0.953 0.933 0.948 0.970 2016 0.940 0.927 0.941 0.953 0.906 0.944 0.968 $dogs Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 2014 0.944 0.937 0.933 0.955 0.936 0.939 0.928 0.950 0.947 0.924 0.930 0.947 2015 0.955 0.939 0.942 0.947 0.943 0.948 0.947 0.961 0.964 0.978 0.982 0.969 2016 0.985 0.974 0.967 0.979 0.972 0.970 0.985 > # Sacramento monthly simple live-release rate by animal group, 2014 to July 2016 > lapply(sacOutcomeNumbersList, function (data) { ts(round(data$live_rate, digits = 3), start=c(2014,1), end=c(2016,7), frequency=12) }) $cats_dogs Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 2014 0.767 0.720 0.707 0.662 0.624 0.699 0.758 0.662 0.618 0.679 0.683 0.706 2015 0.740 0.720 0.746 0.665 0.742 0.754 0.790 0.835 0.815 0.824 0.802 0.838 2016 0.759 0.819 0.794 0.817 0.810 0.789 0.868 $cats Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 2014 0.874 0.752 0.798 0.695 0.598 0.716 0.799 0.624 0.668 0.710 0.792 0.820 2015 0.859 0.837 0.751 0.664 0.758 0.755 0.800 0.842 0.815 0.835 0.822 0.903 2016 0.846 0.832 0.802 0.812 0.735 0.748 0.905 $dogs Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 2014 0.720 0.709 0.669 0.643 0.645 0.683 0.711 0.700 0.562 0.653 0.601 0.637 2015 0.668 0.660 0.743 0.667 0.725 0.753 0.777 0.823 0.815 0.810 0.783 0.780 2016 0.697 0.814 0.790 0.820 0.873 0.832 0.828
Austin distributions of monthly live-release rate
> # Austin distributions of monthly live-release rate by group, 2014 to July 2016 > lapply(atxOutcomeList, function (data) { summary(atxCalcOutcomeNumbers(data, period="month")$live_rate) }) $cats_dogs Min. 1st Qu. Median Mean 3rd Qu. Max. 0.9178 0.9311 0.9433 0.9446 0.9586 0.9769 $cats Min. 1st Qu. Median Mean 3rd Qu. Max. 0.8864 0.9117 0.9314 0.9281 0.9394 0.9696 $dogs Min. 1st Qu. Median Mean 3rd Qu. Max. 0.9240 0.9408 0.9477 0.9541 0.9694 0.9847
Sacramento distributions of monthly live-release rate
> # Sacramento distributions of monthly live-release rate by group, 2014 to July 2016 > lapply(sacOutcomeList, function (data) { summary(sacCalcOutcomeNumbers(data, period="month")$live_rate) }) $cats_dogs Min. 1st Qu. Median Mean 3rd Qu. Max. 0.6182 0.7028 0.7538 0.7489 0.8063 0.8684 $cats Min. 1st Qu. Median Mean 3rd Qu. Max. 0.5976 0.7419 0.7990 0.7795 0.8334 0.9052 $dogs Min. 1st Qu. Median Mean 3rd Qu. Max. 0.5625 0.6673 0.7201 0.7287 0.7997 0.8725
This graph shows the monthly live-release rates for cats at both shelters:
And here is the same graph for dogs:
For the past two and a half years, the Austin monthly live-release rate for both cats and dogs has been higher and substantially more stable than Sacramento’s. Austin has dependably, month after month, achieved a 92% rate or higher for cats and dogs combined.
Self-Reporting
Both the Austin and the Sacramento shelters publish monthly and annual life-saving rates and other descriptive pieces of
The Sacramento shelter reports a life-saving rate according to the following unconventional formula:
The Sacramento shelter calls this their “save” rate, which is within reason, since the calculation includes animals held in custody and not just animals discharged.
In its annual report, the Austin shelter publishes the simple live-release rate for the year, calculated in the customary way. However, in the monthly reports a different and less advisable rate calculation is used, one that omits dogs and cats that died in custody.
Outcome Types
The toolkit provides a function that filters impoundment data for a given range of outcome dates. By default the function filters out outcome events for animals that are not cats or dogs, for animals being sent to foster care, and for animals dead on arrival at the shelter.
atxOutcomeList <- atxCreateOutcomeList(atxOpenData, StartDate, EndDate) sacOutcomeList <- sacCreateOutcomeList(sacOpenData, StartDate, EndDate)
The tables below show how the relative frequency of outcomes at each shelter has been changing over the past two and a half years. In broad strokes, at both shelters adoption has increased and killing has decreased. At the Austin shelter, transfers to other organizations has decreased.
> # Austin outcome type in proportions by year to date > lapply(atxOutcomeList, function (data) { round(prop.table(with(data, table(year, outcome_type)), 1), 2) }) $cats_dogs outcome_type year Adoption Died Euthanasia Missing Return to Owner Transfer 2014 0.40 0.01 0.06 0.00 0.19 0.34 2015 0.42 0.01 0.05 0.00 0.20 0.33 2016 0.47 0.01 0.03 0.00 0.20 0.29 $cats outcome_type year Adoption Died Euthanasia Missing Return to Owner Transfer 2014 0.37 0.01 0.06 0.00 0.05 0.51 2015 0.39 0.02 0.06 0.00 0.05 0.49 2016 0.47 0.02 0.04 0.00 0.05 0.43 $dogs outcome_type year Adoption Died Euthanasia Missing Return to Owner Transfer 2014 0.43 0.00 0.06 0.00 0.28 0.23 2015 0.44 0.00 0.04 0.00 0.31 0.21 2016 0.48 0.00 0.02 0.00 0.30 0.20 > # Sacramento outcome type in proportions by year to date > lapply(sacOutcomeList, function (data) { round(prop.table(with(data, table(year, outcome_type)), 1), 2) }) $cats_dogs outcome_type year ADOPTION DIED ESCAPED EUTH EUTH VET MISSING RTF RTO TRANSFER 2014 0.44 0.01 0.00 0.29 0.01 0.00 0.08 0.11 0.06 2015 0.48 0.03 0.00 0.19 0.00 0.00 0.09 0.11 0.09 2016 0.52 0.01 0.00 0.17 0.00 0.00 0.10 0.13 0.06 $cats outcome_type year ADOPTION DIED ESCAPED EUTH EUTH VET MISSING RTF RTO TRANSFER 2014 0.50 0.03 0.00 0.23 0.01 0.00 0.18 0.01 0.03 2015 0.54 0.05 0.00 0.13 0.00 0.00 0.19 0.01 0.06 2016 0.53 0.02 0.00 0.15 0.00 0.00 0.23 0.02 0.03 $dogs outcome_type year ADOPTION DIED ESCAPED EUTH EUTH VET MISSING RTO TRANSFER 2014 0.40 0.00 0.00 0.33 0.00 0.00 0.18 0.08 2015 0.42 0.01 0.00 0.24 0.00 0.00 0.20 0.12 2016 0.50 0.01 0.00 0.18 0.00 0.00 0.22 0.08
Austin outcome type counts
> # Austin outcome type by animal group and year to date > lapply(atxOutcomeList, function (data) { with(data, table(year, outcome_type)) }) $cats_dogs outcome_type year Adoption Died Euthanasia Missing Return to Owner Transfer 2014 7096 102 1050 5 3301 5999 2015 7349 146 848 14 3496 5753 2016 4489 80 271 10 1943 2715 $cats outcome_type year Adoption Died Euthanasia Missing Return to Owner Transfer 2014 2548 74 433 3 338 3536 2015 2873 113 428 7 342 3575 2016 1661 56 152 8 169 1526 $dogs outcome_type year Adoption Died Euthanasia Missing Return to Owner Transfer 2014 4548 28 617 2 2963 2463 2015 4476 33 420 7 3154 2178 2016 2828 24 119 2 1774 1189
Sacramento outcome type counts
> # Sacramento outcome type by animal group and year to date > lapply(sacOutcomeList, function (data) { with(data, table(year, outcome_type)) }) $cats_dogs outcome_type year ADOPTION DIED ESCAPED EUTH EUTH VET MISSING RTF RTO TRANSFER 2014 4284 137 15 2783 65 10 741 1043 577 2015 5136 323 10 1999 39 21 982 1163 999 2016 2992 86 6 985 22 2 572 775 347 $cats outcome_type year ADOPTION DIED ESCAPED EUTH EUTH VET MISSING RTF RTO TRANSFER 2014 2070 114 12 973 39 7 741 50 142 2015 2873 286 10 711 17 8 982 72 330 2016 1332 59 6 385 12 2 572 46 78 $dogs outcome_type year ADOPTION DIED ESCAPED EUTH EUTH VET MISSING RTO TRANSFER 2014 2214 23 3 1810 26 3 993 435 2015 2263 37 0 1288 22 13 1091 669 2016 1660 27 0 600 10 0 729 269
Additionally, we can estimate the current annual outcome profile by looking at the most recent twelve-month cycle. Here are the frequencies of outcome types for the past twelve months at each shelter (i.e., August 2015 to July 2016).
Austin | Sacramento | |||
---|---|---|---|---|
Cats | Dogs | Cats | Dogs | |
Adopted | 45 % | 46 % | 56 % | 49 % |
Transferred | 44 % | 21 % | 25 % | 10 % |
Redeemed | 5 % | 31 % | 2 % | 21 % |
Killed/Died | 6 % | 2 % | 17 % | 20 % |
Austin outcome proportions for past 12 months
> # Austin outcome type by animal group, August 2015 to July 2016, in proportions > lapply(atxRecentOutcomeList, function (data) { round(prop.table(table(data$outcome_type)), 3) }) $cats_dogs Adoption Died Euthanasia Missing Return to Owner Transfer 0.455 0.008 0.030 0.001 0.201 0.305 $cats Adoption Died Euthanasia Missing Return to Owner Transfer 0.450 0.015 0.041 0.002 0.048 0.444 $dogs Adoption Died Euthanasia Missing Return to Owner Transfer 0.459 0.004 0.022 0.000 0.307 0.208
Austin outcome type counts for past 12 months
> # Austin outcome type by animal group, August 2015 to July 2016 > atxRecentOutcomeList <- atxCreateOutcomeList(atxOpenData, "2015-08-01", "2016-07-31") > lapply(atxRecentOutcomeList, function (data) { table(data$outcome_type) }) $cats_dogs Adoption Died Euthanasia Missing Return to Owner Transfer 7724 142 505 19 3411 5169 $cats Adoption Died Euthanasia Missing Return to Owner Transfer 3116 104 281 15 329 3076 $dogs Adoption Died Euthanasia Missing Return to Owner Transfer 4608 38 224 4 3082 2093
Sacramento outcome proportions for past 12 months
> lapply(sacRecentOutcomeList, function (data) { round(prop.table(table(data$outcome_type)), 3) })
$cats_dogs
ADOPTION DIED ESCAPED EUTH EUTH VET MISSING RTF RTO TRANSFER
0.525 0.023 0.001 0.156 0.004 0.001 0.097 0.118 0.075
$cats
ADOPTION DIED ESCAPED EUTH EUTH VET MISSING RTF RTO TRANSFER
0.557 0.039 0.002 0.127 0.004 0.001 0.203 0.016 0.051
$dogs
ADOPTION DIED EUTH EUTH VET MISSING RTO TRANSFER
0.495 0.009 0.183 0.003 0.000 0.212 0.097
Sacramento outcome type counts for past 12 months
> # Sacramento outcome type by animal group, August 2015 to July 2016 > sacRecentOutcomeList <- sacCreateOutcomeList(sacOpenData, "2015-08-01", "2016-07-31") > lapply(sacRecentOutcomeList, function (data) { table(data$outcome_type) }) $cats_dogs ADOPTION DIED ESCAPED EUTH EUTH VET MISSING RTF RTO TRANSFER 5604 249 9 1669 38 8 1041 1263 802 $cats ADOPTION DIED ESCAPED EUTH EUTH VET MISSING RTF RTO TRANSFER 2854 201 9 650 20 7 1041 83 262 $dogs ADOPTION DIED EUTH EUTH VET MISSING RTO TRANSFER 2750 48 1019 18 1 1180 540
Conclusion
This is the end of our look at the open data for these two shelters together, but is just the beginning of our investigation into the topic of animal shelter data analysis and modeling, which will continue to be a featured subject of this blog.
Open data promises to dramatically reduce the cost of responding to citizens’ requests for public records, bringing easy and immediate access to electronic records that government agencies are required by law to preserve and make available. Moreover, open data encourages interested citizens to contribute their time and knowledge, using the data as fuel for different kinds of analyses and shared applications.
As we have seen, the open data currently obtainable for both the Austin and the Sacramento shelters is useful, but lamentably incomplete. Both shelters are in a position to reveal more about the animals taken into their care, since animal records contain little information that would legitimately be excepted under the applicable freedom-of-information laws, the Texas Public Information
In particular, the City of Austin considers itself a pioneer in the realm of open
Many benefits accrue from making the complete public record of every shelter
References
-
City of Sacramento. 2016. City of Sacramento Animal Care Services: The Numbers.
-
City of Austin. 2016. Austin Animal Center: Reports.
- Texas Public Information Act. Government Code Chapter 552 et seq.
- Texas Attorney General’s Office. 2016. Public Information Handbook 2016.
- California Public Records Act. Government Code Section 6250 et seq.
- Priamos, Gregory, et al. 2008. The People’s Business: A Guide to the California Public Records Act. League of California Cities.
-
City of Austin. 2016. Council Resolution 20160225-017. Austin City Council. February 25, 2016.
-
City of Austin. 2013. City of Austin Open Government Directive. August 26, 2013.
- City of Sacramento. 2016. City of Sacramento Animal Care Services: The Numbers.
- City of Austin. 2016. Austin Animal Center: Reports.
- Texas Public Information Act. Government Code Chapter 552 et seq.
- Texas Attorney General’s Office. 2016. Public Information Handbook 2016.
- California Public Records Act. Government Code Section 6250 et seq.
- Priamos, Gregory, et al. 2008. The People’s Business: A Guide to the California Public Records Act. League of California Cities.
- City of Austin. 2016. Council Resolution 20160225-017. Austin City Council. February 25, 2016.
- City of Austin. 2013. City of Austin Open Government Directive. August 26, 2013.