iropo.org

IROPO — International Registry of Pet Offenders

IROPO is an animal-welfare advocacy project focused on documenting and tracking people who have harmed animals using public and official data sources.

🚧 Work in progress: the project is actively being built. The current focus is developing a data-mining and scraping pipeline to gather offender data for each city and state across the United States. The code is not yet functional or ready for general use.

What is IROPO?

IROPO stands for the International Registry of Pet Offenders. The long-term concept is a registry that lists people who have caused harm or affliction to animals, with the goal of supporting animal-welfare advocacy and accountability.

The repository currently holds work-in-progress code, research notes, reference material, and sample source files that shape the data pipeline and the future direction of the project.

Project status

This repository is an active work in progress and not yet a finished website or production data service. It is currently being used to:

The current priority is data aggregation work across the US, starting city-by-city and state-by-state with states already represented in this repository.

Mission and goals

The project objectives that guide the work here are:

Data sources

Known data sources and references already present in this repository include:

What is an ORI?

An ORI is a nine-character Originating Agency Identifier used in NCIC and related criminal-justice reporting systems to identify a reporting agency. The working notes in this repository use ORIs to look up agencies and query the FBI API.

Repository structure

Path Purpose
README.md Project overview, status, and roadmap
CONTRIBUTING.md Contributor guidance for this repository
iropo.org.md Working notes about sources, ORIs, and API research
api-test.py Script that reads an agency spreadsheet and queries the FBI API by ORI (in development)
api-test-columns.py Script for inspecting spreadsheet columns (in development)
localAndStateAgencies-*.xlsx Agency and ORI lists for states currently being explored
Offenders/ FBI demographic spreadsheets related to offender data
*.pdf, *.rtf Reference material and manuals used during research
.github/workflows/ Workflow-dispatch jobs for the Python scripts

Data scripts

The Python files in this repository are part of the data-collection work that is still being built. They are not ready for general or widespread use yet and may be incomplete or change significantly as development continues. Setup and usage instructions will be added here once the scripts are stable enough to run reliably.

Security and secrets

Data flow and growth plan

The diagram below shows the intended data flow and the high-level steps for growing the project: from gathering source data, through normalization and verification into a single source of truth, and on to presenting it publicly and gathering feedback. Most of this pipeline is still being built.

flowchart TD
    %% External data sources
    FBI[FBI Crime Data API<br/>api.usa.gov]
    AG[Per-state agency<br/>spreadsheets and ORIs]
    OFF[FBI offender<br/>demographic data]
    PUB[Other public and<br/>court records]

    %% Enabling resources
    FUND[Funding, hosting<br/>and volunteers]

    %% Processes / growth steps
    P1([1 - Collect and scrape<br/>city / state by ORI])
    P2([2 - Normalize and<br/>import to schema])
    P3([3 - Verify, review and<br/>record provenance])
    P4([4 - Choose framework and<br/>surface on iropo.org])
    P5([5 - Build public<br/>browse / search UI])
    P6([6 - Promote and<br/>gather feedback])

    %% Data stores
    RAW[(Raw collected data)]
    SOT[(Source-of-truth<br/>datastore)]

    %% End users
    USERS

    FBI --> P1
    AG --> P1
    OFF --> P1
    PUB --> P1

    P1 --> RAW
    RAW --> P2
    P2 --> P3
    P3 --> SOT
    SOT --> P4
    P4 --> P5
    P5 --> USERS
    USERS --> P6
    P6 -.->|feedback and leads| P1

    FUND -.->|enables| P1
    FUND -.->|enables| P4
    FUND -.->|enables| P5

Roadmap / TODO

The following checklist tracks the work based on the current objectives and the repository’s present state.

Funding & resources

Data aggregation (current focus)

Framework & architecture

Build the interface

Launch & outreach

How to contribute

Contributions are welcome. Helpful contributions may include:

Please start with CONTRIBUTING.md and follow the community expectations in CODE_OF_CONDUCT.md. If you want to help shape the project process further, open an issue to discuss it.

Because this project concerns information about identifiable people and alleged or adjudicated harm to animals, contributors should work carefully and conservatively:

These points are not legal advice; they are considerations that should be addressed before any public registry is treated as authoritative.

License

This project is licensed under CC0-1.0.

Contact / community

If you want to help, use GitHub issues or pull requests for now. Additional contact or community channels can be added here later if the project adopts a mailing list, GitHub Discussions, or another option.