Skip to main content
Jonathan Andrei
Retour aux billets
Août 202610 min de lecture

Still Here : tout le monde croit que les chiens noirs sont laissés pour compte. J'ai vérifié 99 916 dossiers de refuge. Ce n'est pas vrai.

510 chiens ont un enregistrement d'entrée au refuge d'Austin et aucun enregistrement de sortie. Still Here est le tableau, ordonné selon la durée d'attente. Celui en tête est Pancho, 449 jours. Puis j'ai cherché la raison pour laquelle les chiens en tête sont ceux en tête, et la réponse m'a surpris : le syndrome du chien noir n'apparaît pas dans 99 916 séjours complétés — les couleurs qui attendent sont les pelages des chiens de type bully. À race constante, le pelage déplace la médiane d'au plus 7,5 jours ; changer la race et elle bouge de 20.

WeekendChallengeDogDaysSnowflakeElevenLabsAustin Animal CenterData AnalysisPythonShowDev
J'ai créé ce billet et le projet Still Here pour le DEV Weekend Challenge: Dog Days Edition. #weekendchallenge #dogdays #snowflake #elevenlabs #showdev
La revendication en une phrase : le syndrome du chien noir, la croyance qu'un pelage foncé garde un chien au chenil, n'apparaît pas dans les données d'Austin. Sur 99 916 séjours complétés depuis 2013, les chiens noirs partent en médiane de 9 jours, plus vite que blancs, bruns ou chocolat. Les couleurs qui attendent sont bleu, bringé et fauve — les pelages des chiens bully. Chaque pelage bully atterrit entre 25 et 32,5 jours, chaque autre entre 7 et 11. Les deux bandes ne se touchent jamais. Les chiens bully attendent une médiane de 28 jours contre 8 pour tout autre chien, et 216 des 510 chiens sur le tableau aujourd'hui sont bully.
Carte d'accueil de Still Here sur une page style journal foncée : « The adoption site will show you a dog. It will not tell you the dog arrived four hundred days ago. Austin publishes that number, just never next to the animal it belongs to. » En dessous, la carte de Pancho : Cairn Terrier · Blanc/Noir · Mâle, entrée 2025-05-23, groupe de race « Everyone else », médiane de cohorte 8 jours, LONGEST WAIT ON THE BOARD en gros chiffres serif dorés : 449 DAYS WAITING. Boutons : « Hear from Pancho » et « Share this dog ».
Le chien en tête du tableau est Pancho, un Cairn Terrier blanc ramassé errant le 23 mai 2025. Au dernier passage de données, il y était depuis 449 jours. 99,7 % des chiens de son groupe de race ont été adoptés en moins de temps qu'il n'attend déjà. Austin publie ce nombre dans son flux de données ouvertes. Il ne l'imprime nulle part près de la page d'adoption.

La revendication que je suis parti vérifier

Si vous avez passé du temps près de refuges animaliers, vous avez entendu parler du syndrome du chien noir : la croyance que les chiens noirs restent non adoptés pendant que les chiens plus clairs rentrent chez eux. C'est répété dans le matériel de formation des refuges, dans les segments d'info locale, et dans beaucoup de publications d'adoption bien intentionnées chaque octobre. C'est une revendication réellement vérifiable, et Austin a publié assez de dossiers pour la vérifier. J'ai tiré chaque séjour de chien complété que la ville a publié depuis octobre 2013 et reconstruit la durée de chacun : 99 916 séjours, dont 51 413 se sont terminés par une adoption. Puis j'ai pris la médiane d'attente pour chaque couleur de pelage.

Graphique à barres horizontales intitulé « You have heard that black dogs get left behind ». Sous-titre : « C'est la revendication la plus répétée dans le monde du refuge animal. Je l'ai vérifiée contre chaque séjour de chien complété qu'Austin a publié depuis 2013 : 99 916, 51 413 se terminant en adoption. Voici la médiane d'attente par couleur de pelage. » Barres : Blue 22j, Brown Brindle 16j, Fawn 16j, Brown 10j, White 10j, Chocolate 10j, Black (mise en évidence en doré) 9j, Red 9j, Sable 8j, Tan 8j, Yellow 8j, Tricolor 7j.
Les chiens noirs sont dans la moitié rapide. 13 922 d'entre eux, partant en médiane de 9 jours, plus vite que blancs, bruns ou chocolat. Le mythe ne survit pas à son premier contact avec les données. Cela correspond à la recherche publiée — une étude de 2016 par Hoffman et collègues dans Animal Welfare a examiné près de 16 700 dossiers dans deux refuges et a trouvé que les chiens noirs partaient légèrement plus vite que la moyenne dans les deux.

Les couleurs qui attendent sont les couleurs des pit-bulls

Mais il y a quelque chose de bien plus intéressant caché dans ce même tableau, et il m'a fallu une deuxième passe pour le voir. Regardez le haut de cette liste encore. Bleu, bringé brun, fauve. Ce ne sont pas des couleurs lentes au hasard. Ce sont les pelages qu'on imagine quand on imagine un pit-bull. Donc j'ai divisé chaque couleur selon si le chien était de type bully, c'est-à-dire pit-bull, Staffordshire, ou American bulldog.

Deux graphiques à barres horizontales sur une échelle partagée, intitulés « It is not true. And the reason is hiding in the same table. » Graphique gauche « Bully-type dogs », médiane jours par pelage : Brown 32,5j, Black (mise en évidence doré) 31j, Tan 30j, White 29j, Red 27j, Chocolate 26,5j, Blue 26j, Brown Brindle 25j. Graphique droit « Every other dog » : Brown 9j, Black (mise en évidence) 8j, Tan 7j, White 8j, Red 8j, Chocolate 8j, Blue 11j, Brown Brindle 11j. Encadré : « Every bully-type coat lands between 25 and 32.5 days. Every other coat lands between 7 and 11 days. The two bands never touch: the fastest bully-type coat is still 14 days slower than the slowest coat outside the group. »
Les deux colonnes ne se croisent nulle part. Chaque cellule bully est entre 25 et 32,5 jours. Chaque autre cellule entre 7 et 11. À l'intérieur d'un groupe de race, la couleur du pelage déplace la médiane d'au plus 7,5 jours. Changer le groupe de race la déplace de 20. Noir ne semblait rapide dans le premier tableau que parce que les chiens noirs sont les moins susceptibles d'être bully — 12 % d'entre eux, contre 81 % des bleus. Le signal couleur était un signal race depuis le début. Un chien noir qui n'est pas bully attend 8 jours. Un pit-bull noir attend 31.

Sur tout le corpus : les chiens bully attendent une médiane de 28 jours, et tout autre chien 8. C'est 3,5x, sur 9 658 adoptions bully contre 41 755 autres. Et ce n'est pas une curiosité historique : des 510 chiens dans ce refuge aujourd'hui, 216 sont bully. Quatre des cinq attentes les plus longues sur le tableau en ce moment sont des pit-bulls.

Deuxième section de graphique : Pointer 11,5j, Australian Cattle Dog 11j, Labrador Retriever 11j, German Shepherd 11j, Australian Shepherd 9j, Great Pyrenees 9j. En dessous, une section « METHOD · How this was counted » commence par « WHERE THE DATA COMES FROM » expliquant qu'Austin Animal Center publie les entrées et sorties comme données ouvertes sur Socrata, sans clé API requise. Deux ères avec deux schémas différents : une archive gelée au 2025-05-05 (wter-evkm, 9t4d-g238) et flux actuels qui l'ont remplacée (pyqf-r2dc, gsvs-ypi7), rafraîchis toutes les heures.
La méthode est sur la page à côté de la trouvaille. Deux ères des données d'Austin, schémas différents, jointes au niveau de l'ID animal. La durée de séjour dans l'archive est reconstruite en appariant chaque sortie avec l'entrée la plus récente qui la précède (652 sorties n'ont pas pu être appariées et ont été abandonnées plutôt que devinées). Médianes partout, parce que la durée de séjour est fortement asymétrique à droite — la moyenne d'attente bully est de 66 jours contre une médiane de 28.

Ce que le site d'adoption ne vous dit pas

Austin publie, en données ouvertes, exactement combien de temps chaque chien a été à sa charge. Son site d'adoption n'en montre rien. J'ai vérifié les fiches que la ville sert réellement aux adoptants. Une fiche porte race, sexe, taille, âge, numéro de chenil, et un ensemble d'étiquettes de comportement. Il n'y a pas de date d'entrée, pas de durée de séjour, et aucun moyen de trier ou filtrer par l'un ou l'autre. Il y a une étiquette manuelle « Long-term resident » qu'un membre du personnel peut cocher, mais rien qui donne un chiffre. Donc quelqu'un qui parcourt la page d'adoption d'Austin peut regarder Fritz droit et n'avoir aucune idée qu'il est arrivé le 28 mai dernier. Les deux moitiés sont publiques. Elles ne sont juste jamais imprimées l'une à côté de l'autre. Still Here est la jointure.

La feuille de contact : une grille de cartes de chiens montrant les vrais visages tirés des propres fiches Adopets d'Austin. Barre de recherche pour race/nom/pelage, filtres ALL / BULLY-TYPE / EVERYONE ELSE / OVER A YEAR / UNNAMED, « 510 dogs on the board · showing 60 of 510 ». Chaque carte porte le numéro de rang du chien, la photo (ou une silhouette placeholder si aucune), le nom (Pancho, Fritz, Emmitt, Walter, Whitley, Paxton, Hank, Marshall, Mariah), un grand nombre de jours d'attente (449, 444, 440, 436, 431...), race et pelage, date d'entrée, et étiquette BULLY-TYPE le cas échéant, plus une ligne de pourcentage « X% of similar dogs were home by now ».
Une image par chien, ordonnés selon la durée d'attente de chacun, sur une page qui porte cette attente : plus un chien est là depuis longtemps, plus il s'est gravé dans la plaque. Les photographies viennent des propres fiches d'adoption d'Austin via jointure d'ID (377 sur 510 chiens ; les 133 sans photo sont surtout des arrivées récentes encore dans une retenue obligatoire d'errance, médiane 20 jours contre 84 pour ceux listés). Cliquer sur un chien ouvre la page où on pourrait réellement l'adopter. 23 d'entre eux lisent leur propre dossier à voix haute, marqués d'un bouton Hear.

La stack, et les deux scripts qui comptent avant publication

Chaque nombre sur le site sort d'une vue Snowflake. Le corpus se charge via un stage interne plutôt que des insertions ligne par ligne. `IS_BULLY()` est une fonction SQL, pour que le seul jugement de toute l'analyse tienne à un endroit auditable au lieu d'être éparpillé dans le code applicatif. `WAITING_RANKED` classe chacune des 510 attentes en direct contre les 51 413 adoptions complétées dans le groupe de race de ce chien ; c'est le nombre sur chaque carte, et c'est la partie qui veut vraiment un entrepôt. `verify.py` et `factcheck.py` sont les deux scripts qui comptent avant d'expédier. Le premier re-exécute chaque question titre en Python et la diffère contre Snowflake (102 vérifications). Le second relit `stats.json` et vérifie chaque nombre cité dans le README et le billet — parce qu'un chiffre écrit samedi et un pipeline relancé dimanche est exactement comment un writeup finit par mentir sur ses propres données.

Une deuxième carte de chien, Canela : une croisée Rottweiler (Noir/Brun, Femelle) avec une vraie photo — chien noir et feu souriant sur l'herbe. Entrée 2025-09-26, arrivée comme Agency, groupe de race « Everyone else », médiane de cohorte 8 jours. Gros doré « 323 DAYS WAITING » avec légende « Pinned. Longest is Pancho, 449 days. » Boutons : « Hear from Canela » et « Adopt Canela ». En dessous : « 99.3% of the dogs like Canela in this dataset (same breed group) were adopted in less time than Canela has already been waiting. »
Chacun des chiens qui attendent le plus longtemps lit son propre dossier à voix haute via ElevenLabs. Rien de ce qu'un chien dit n'est inventé : chaque clause correspond à une colonne (nom, pelage, race, raison d'entrée, date d'entrée, jours écoulés, percentile de cohorte, médiane de cohorte). La formulation varie d'un chien à l'autre mais est sélectionnée par un hash de l'ID animal, pas au hasard, donc relancer produit des scripts identiques octet-pour-octet. Le tableau bouge : entre deux exécutions à un jour d'écart, neuf chiens en sont sortis — sept ont été adoptés, un réclamé par un propriétaire venu le chercher, et un transféré à un partenaire de sauvetage. Baxter attendait depuis 71 jours et est rentré chez lui le quinze.
Projet associé

Still Here: 510 Dogs Have an Intake Record at Austin's Shelter and No Outcome Record. Black Dog Syndrome Does Not Appear in 99,916 Stays. The Color That Waits Is Whichever Breed the Coat Belongs To.

Voir le projet