Tattoos identify people, affiliations, and intent — which is why every NIBRS-reporting jail captures them at intake and keeps them current. The Fortress Inmate Tattoo gallery (/jms/inmates/{id}/tattoos) plus the Tattoo Search surface lets staff photograph, catalog, and find marks across the entire population.
What it does
- Captures tattoos as photo + location-on-body + free-text description + gang-affiliation flag, attached to the inmate’s record with full audit history.
- Renders a gallery view per inmate (sortable by date or location) and a facility-wide Tattoo Search across description text and gang flags.
- Carries PREA, NIBRS, and ACA compliance badges in the header so intake staff know the entry is going into a reportable record.
How it works
Photos are uploaded through the Blazor client, written to secure facility storage, and indexed by the Fortress API. The Inmate Tattoo client (vertical-slice pattern: DataContract → SQL → DataConnection → Manager → Controller → Blazor client → UI) keeps the gallery and search consistent with the rest of the inmate record.
Data captured
- Photo, body location, description, gang-affiliation flag
- Submitter, timestamps (UTC, displayed facility-local)
- Linkage to the inmate’s identity record
Compliance & retention
Tattoo records contribute to NIBRS identification reporting and PREA classification. Retention follows the inmate’s own record retention; if a tattoo is referenced by a SAR, Threat Assessment case, or court record, that linkage extends the retention window.

We’ve been manually flipping through paper logs forever trying to match tattoo descriptions during re-bookings — if this search function is as fast as it looks, it would save my intake staff a serious amount of time. Does the photo module tie into the main booking record automatically, or is it a separate entry process? Really glad to see PREA compliance built in from the start rather than bolted on later.
We’ve been manually flipping through paper photo logs for tattoo IDs for years — this is exactly what we needed. Quick question: does the search let you filter by body location AND description simultaneously, or is it one or the other? That would make a huge difference for us during rapid ID situations.
We’ve been manually logging tattoos in a binder for years — this would be a game changer for our facility. Does the search function let you filter by body location and color, or is it primarily keyword-based off the description fields?
We’ve been manually cross-referencing tattoo descriptions in paper logs for years and it’s honestly a nightmare when you’re trying to confirm identity on a transfer. Does the search function let you filter by body location AND keyword at the same time, or is it one or the other? This could be a real game-changer for our intake unit.
We’ve been doing tattoo documentation on paper intake forms for years and the cross-referencing is a nightmare when you’re trying to ID someone who came in under a false name. Does the search function let you filter by body location AND description at the same time, or is it one or the other?
We’ve been manually cross-referencing tattoo descriptions in paper logs for years and it’s been a nightmare during warrant checks. Does the search function let you pull results by body location AND description simultaneously, or is it one filter at a time? That would make or break it for us.