Cage Card Generator

Generate printable 3.5 × 5 in cage cards with embedded QR codes for mouse and rat colonies. Bulk CSV import, NIH-compliant fields, duplicate detection, and a versioned JSON QR payload for future colony software integration.

Mouse Colony ManagementNIH Guide 2011Client-Side

Try it out

Load example cage card generator data to see the full workflow

Cage Card Batch

Card #1
Missing required field: cageId · Missing required field: strain

Batch summary

Total rows
1
Valid rows
0
Duplicate IDs
0
  • Setting up cage cards for a new cohort or breeding round
  • Standardizing cage cards across labs in a shared vivarium
  • Replacing handwritten cards that have become illegible
  • Bulk-generating cards for an IACUC site visit or AAALAC inspection
  • Adding QR codes to existing card workflows for digital scanning

Don't use for

  • For real-time cage state tracking — use a colony management system instead
  • For animals in BSL-2/3 hazardous agent rooms — those need facility-specific labels
  • For non-rodent species with different identification standards (rabbits, primates)

Cage Card Identification Standards

Cage card identification is regulated by both the NIH Guide and AAALAC accreditation standards. The required minimum varies by institution but always includes:

NIH Guide minimum (Section IV.A.5)
  • Source or strain
  • IACUC protocol number
  • Principal investigator
  • Date of arrival or date of birth
Common institutional additions
  • Unique cage ID (mandatory at AAALAC-accredited facilities)
  • Dam ID and sire ID (for breeding cages)
  • Genotype or transgene status
  • Sex and number of animals
  • Protocol expiration date
  • Special handling notes (immunocompromised, hazardous agent, etc.)
Why QR codes help

Printed cards become stale the moment animals are transferred, weaned, or culled. A QR code that links to a live colony management system means the card never needs to be reprinted — the source of truth is digital, and the card is just a stable address.

QR Payload Design Choices

The QR code on each card encodes a JSON payload with these design decisions:

Versioned schema

Every payload starts with `"v": "1"` so future readers can evolve the schema without breaking older cards. When the field set changes, increment the version and have the reader fall back to v1 parsing.

Compact field names

Field names are abbreviated (`id`, `dam`, `sire`, `pcl`, `pi`) to keep the QR density low. A standard 3.5 ×\times 5 in cage card has limited real estate, and lower density QRs scan more reliably under poor lighting in a vivarium.

Strip undefined fields

Optional fields are removed from the JSON when empty rather than set to null. This further reduces QR density and means a card with only the required fields produces a much simpler QR.

Optional ConductColony URL

When the optional `url` field is included, scanning the QR opens a ConductColony page with the live cage state. The card itself stays printed, but the data on it is always current.

Frequently Asked Questions