{"topic_id":"recall_cause_taxonomy","category":"recall-matrix","context":"---\ntopic_id: recall_cause_taxonomy\ncategory: recall-matrix\ntitle: \"Pet-food recall-cause taxonomy — hazard category × jurisdiction × frequency (FDA 20 + RASFF 257)\"\nlang: en\nsource: monitor/c2_classify_recalls.py\ndate_parsed: 2026-08-07\ntokens_estimated: 620\nverification:\n  method: derived_from_dataset\n  claims: 22\n  passed: 22\n  date: 2026-08-07\nderived_from_dataset: true\nsource_documents:\n  - \"recalls/fda-pet-recalls-20260730.json (20 pet-food records, 2019–2026)\"\n  - \"recalls/rasff-petfood-20260730.json (257 pet-food notifications)\"\nsource_document: \"In-repo recall datasets, classified by monitor/c2_classify_recalls.py\"\ncitation:\n  authority: \"Derived compilation (FDA + RASFF in-repo data)\"\n  title: \"Pet-food recall-cause taxonomy — hazard category × jurisdiction × frequency\"\n  url: \"\"\n  retrieved: \"2026-08-07\"\n  ref: \"recalls/fda-pet-recalls-20260730.json + recalls/rasff-petfood-20260730.json\"\n  doc_type: \"derived dataset\"\n  needs_review: false\n---\n\n# Pet-food recall-cause taxonomy — hazard category × jurisdiction × frequency\n\nA harmonized hazard taxonomy built from the two in-repo recall datasets that carry\nstructured cause fields: **US FDA pet-food recalls** (20 records, 2019–2026) and **EU\nRASFF pet-food notifications** (257 notifications). China is excluded here — its data is\nadministrative-penalty decisions with a different (regulatory) taxonomy; see\n`cn_petfeed_penalty_classification`.\n\n## Method (reproducible)\n\n- **Classifier:** `monitor/c2_classify_recalls.py` applies deterministic keyword rules to\n  the FDA `recall_reason` field and the RASFF `subject` field. First match wins, in this\n  priority order: Salmonella → Listeria → Foreign body/physical → Pesticide/chemical →\n  Unauthorized substance/additive → Nutritional imbalance → Label/composition → Other\n  pathogenic microorganism → Border control/procedural → Other/unspecified.\n- **Co-listed Salmonella+Listeria:** 3 FDA records name both agents. They are counted under\n  Salmonella (the primary microbial agent) with Listeria flagged separately, so the two\n  columns are not additive.\n- **Re-run to verify:** `python3 monitor/c2_classify_recalls.py`.\n\n## FDA hazard taxonomy (n=20)\n\n| Hazard category | Count | Share |\n| --- | --- | --- |\n| Salmonella (incl. 3 co-listing Listeria) | 12 | 60% |\n| Listeria monocytogenes (alone) | 1 | 5% |\n| Foreign body / physical | 1 | 5% |\n| Pesticide / chemical residue (aflatoxin B1) | 1 | 5% |\n| Nutritional imbalance (Vit D ×2, thiamine ×3) | 5 | 25% |\n| **Total** | **20** | 100% |\n\n## RASFF hazard taxonomy (n=257)\n\n| Hazard category | Count | Share |\n| --- | --- | --- |\n| Salmonella | 100 | 38.9% |\n| Foreign body / physical | 33 | 12.8% |\n| Pesticide / chemical residue | 19 | 7.4% |\n| Unauthorized substance / additive | 25 | 9.7% |\n| Nutritional imbalance | 6 | 2.3% |\n| Label / composition error | 6 | 2.3% |\n| Other pathogenic microorganism (Enterobacteriaceae etc.) | 38 | 14.8% |\n| Border control / procedural | 20 | 7.8% |\n| Other / unspecified | 10 | 3.9% |\n| **Total** | **257** | 100% |\n\nRASFF contains **0 Listeria-classified** notifications. \"Other / unspecified\" (10) are\nnotifications whose `subject` states no explicit hazard (e.g., *\"Two dogs who got sick\nfrom chew sticks, from Germany\"*, *\"Consumer complaint on pet food from Germany\"*).\n\n## Combined FDA + RASFF (n=277)\n\n| Hazard category | FDA | RASFF | Combined |\n| --- | --- | --- | --- |\n| Salmonella | 12 | 100 | 112 |\n| Listeria monocytogenes | 1 | 0 | 1 |\n| Foreign body / physical | 1 | 33 | 34 |\n| Pesticide / chemical residue | 1 | 19 | 20 |\n| Unauthorized substance / additive | 0 | 25 | 25 |\n| Nutritional imbalance | 5 | 6 | 11 |\n| Label / composition error | 0 | 6 | 6 |\n| Other pathogenic microorganism | 0 | 38 | 38 |\n| Border control / procedural | 0 | 20 | 20 |\n| Other / unspecified | 0 | 10 | 10 |\n| **Total** | **20** | **257** | **277** |\n\n## Cross-jurisdiction observations\n\n- **Salmonella dominates both** FDA (12/20 = 60%) and RASFF (100/257 = 39%) — the single\n  most common pet-food recall driver in both jurisdictions.\n- **RASFF surfaces categories rare/absent in the FDA pet-food subset:** unauthorized\n  substances/additives (25, largely CBD/cannabidiol and unauthorized additives), border-\n  control/procedural non-compliance (20, skipped veterinary controls at BCP), and other\n  pathogenic microorganisms (38, mostly *Enterobacteriaceae* in raw pet food).\n- **FDA nutritional-imbalance share is higher** (5/20 = 25%, thiamine and vitamin D) than\n  RASFF (6/257 = 2.3%) — likely an artifact of the small FDA pet-food subset rather than a\n  true US/EU difference.\n\n## Honest gaps\n\n- **China not included** — its enforcement data is penalty decisions, classified separately\n  in `cn_petfeed_penalty_classification`.\n- **RASFF \"Other / unspecified\" (10)** left unclassified rather than force-fit.\n- **Brand-level cause unavailable** for RASFF (no brand field); see\n  `recall_brand_repeat_spectrum` for the FDA-only brand view.\n\n## Cross-references\n\n- `recall_brand_repeat_spectrum` — FDA brand repeat-recall view\n- `cn_petfeed_penalty_classification` — China penalty taxonomy (violation × legal article)\n- `contaminant_matrix_petfood` — maximum limits for the chemical/mycotoxin hazards above\n","sources":["recall-matrix — Pet-food recall-cause taxonomy — hazard category × jurisdiction × frequency (retrieved 2026-08-07)"],"source":{"authority":"recall-matrix","title":"Pet-food recall-cause taxonomy — hazard category × jurisdiction × frequency","url":"","retrieved":"2026-08-07","ref":"","doc_type":"official source","source_document":"In-repo recall datasets, classified by monitor/c2_classify_recalls.py","verification_file":"monitor/c2_classify_recalls.py"},"source_document":"In-repo recall datasets, classified by monitor/c2_classify_recalls.py","source_file":"monitor/c2_classify_recalls.py","trust":{"authority_tier":"ungraded","fidelity":"verbatim","license":null,"display_grade":"pending"},"tokens_estimated":620,"generated_at":null,"tip":"Use /api/v1/topics to discover more topics. /api/v1/nutrient for precise single-point queries. /api/v1/cross_compare for 2-3 standard comparisons."}