Skip to main content

How I track federal prison lockdowns

The lockdown record is the most useful thing on this site and the easiest thing to get wrong. So here is exactly where every number in it comes from, how often it is checked, what I do when the Bureau and a family disagree, and the several things this data genuinely cannot tell you.

If you are a reporter, a researcher, or a lawyer thinking about citing any of it, this is the page to read first. If something here is wrong, tell me and I will fix it and say that I did.

For someone inside

Copy this page for TRULINCS

A link is useless to someone inside. This turns the page into plain text you can paste into a message.

Copy this page

Plain text, no links, cut into messages CorrLinks will take.

What the source actually is

The BOP publishes an operational status for every facility in its public facility data. That is the source. It is not a press release, not a leak, and not a scrape of anything the Bureau considers private. It is the same data that fills in the status line on the Bureau's own facility pages, read directly and stored.

Two fields matter for this. Whether visiting is suspended, and at which part of the facility, since a complex can suspend the camp and leave the institution running. Everything on the lockdown pages is built out of changes in those two fields over time.

The important caveat

The Bureau publishes current state. It does not publish history. There is no archive to go back and get, which is the entire reason this site keeps its own. The record starts the day I started watching and there is nothing before it, at any facility, for any price.

How often it gets read

Every five minutes, every facility, all day. A job fans out one check per facility, compares what came back against the last known state, and writes a row when something moved.

That interval is a compromise. Faster hammers a government website for very little, because the Bureau does not update its own data anywhere near that often. Slower means alert subscribers hear about a suspension after their visit is already ruined. Five minutes means the alert email is usually the first anybody outside the Bureau knows.

Separately from the status checks, a sample of each facility's operational state is written once an hour. That hourly series is what the day-by-day calendar reads, and it is also the only honest answer to "was this facility even being watched on that date."

Why every timestamp ends at :00

Every suspension on this site starts and ends on the hour. That is not rounding for looks. The stored sample is stamped to the top of the hour it landed in, so an hour is the finest resolution the record honestly has, and printing minutes would be inventing them.

Times are shown in the facility's own timezone, not yours and not mine, because the question behind the timestamp is always about a visit somebody was going to drive to.

Durations under two days are printed in hours. A six-hour suspension rounding up to "1 day" is wrong in the direction that scares people, so it does not.

When a family knows before the Bureau does

The Bureau under-reports. Not always, not maliciously as far as I can tell, but consistently enough that "no suspension published" and "visiting is running" are different statements.

So some entries in the record were opened by hand, from a family report, before anything appeared in the BOP's data. Those carry a label on every page they appear on: reported by families, not yet acknowledged by the BOP. You can tell them apart at a glance, deliberately.

A hand-entered interval is never closed or overwritten by the automatic reconciliation. If a person opened it, a person closes it. That rule exists because the failure mode without it is ugly: the Bureau's data catches up, the job decides the interval was never real, and a suspension a hundred families lived through disappears out of the record.

What I will not do is publish a report I cannot stand behind. A single unverified message does not open an interval on its own.

Nothing gets deleted

There is no retention policy and there will not be one. Old samples get compressed, never dropped. A suspension that ended two years ago is still on its facility's page and still counted in the day-by-day calendar.

This matters more than it sounds. The value of the record is entirely in it being long, and a pattern at one facility over eighteen months is a thing you can only see if the first month is still there.

Reading the calendar honestly

The day-by-day calendar on the lockdown record shades each day by the share of watched facilities that had a suspension running, not by a raw count. The first day of monitoring covered a fraction of the facilities today's does, so counts across time are not comparable and the shading would lie if it used them.

There are three kinds of blank on that calendar and they mean different things:

A day where a suspension was running but nothing was polled still shows its count, because blanking it would contradict the log listing that same suspension right underneath.

What this cannot tell you

Being useful and being complete are different things, and this is the second list.

Corrections

If a date is wrong, an interval is missing, or a suspension is on here that never happened, email me. Include the facility and the dates. I would rather be corrected in public than be confidently wrong in public, and the content policy covers how corrections get handled across the whole site.

Using this data somewhere? You do not need permission and I am not going to invoice you. A link back is polite and it also gives your readers the caveats on this page, which they need.

Need help with this? Just ask.

These pages cover the general rules. Your situation has details they don't. Email me a question. Answers are free, and "you don't need to pay anyone for this" is my most common answer.

[email protected]

I answer in the order received, usually within a couple of days. I have a day job. If your situation genuinely needs more than an email, I take a limited number of consults, so say so and we'll work it out.

Pass it on

If this helped, it'll help someone else's family too.