
The Marshall Project’s tracking tool for criminal justice bills in Mississippi.
Using public state data to build a bill tracker
A conversation with Caleb Bedillion of the Marshall Project
Caleb Bedillion is a staff reporter at The Marshall Project, where he reports about Mississippi’s criminal justice system, focusing on civil rights, courts and jails. Bedillion and Daja E. Henry, another staff writer, created a digital tool to track proposed legislation involving courts, policing and criminal laws in Mississippi.

While Bedillion initially created the tool as a way to keep an eye on key bills and trends to report on later, it then became an outward-facing resource for The Marshall Project’s audience. In our conversation below, Bedillion shares more about how they developed the tracker using accessible tools like Airtable and Datawrapper, as well as some practical tips for tracking legislation changes.
Anderson: Why did you feel it was necessary to make this tool?
Bedillion: So this tool actually began as a reporting tool that I was using just for myself to manage keeping up with what’s going on in the Mississippi legislature related to criminal justice. One thing that we know just from our work in general in this criminal justice space is that incarcerated readers – people in either the local jail or a state prison – and their families have a keen interest in developments in the legal system for obvious reasons. We know this is something they’re interested in, so internally, through discussions around what began as a beat management tool, we saw this as an opportunity to do some of our reporting in public and turn it into a public-facing tool.
Anderson: You said that it started for you as a spreadsheet. What does it look like on the back end?
Bedillion: The current version of this uses very minimal tech on the back end, it’s largely manually driven. For someone thinking about reproducing this, it’s going to depend to a great extent, on [your] state’s legislative website, as well as if there are other nonprofits or policy organizations that are scraping or using a tool like this. And one of our principles from the beginning was to move quickly and iterate. It was birthed as an experiment, so we didn’t want it to have a real tech-heavy development process, a heavy engineering phase, before it ever went public facing.
[In Mississippi], you can monitor all bills that are currently alive for consideration – that’s the terminology in Mississippi – and so I’m just using the all bills bases and manually filtering with my own judgment as to whether it’s justice system related or not, into an Airtable. At one point we were going to use an Airtable embed, but due to our CMS, we’re using a script that pulls from Airtable into Datawrapper. I know, just from looking at Ohio’s legislative website, there are some functions they provide from the state where you can filter bills by category. So in a state like that, if you’re interested in criminal justice bills that would be easier to get to than in Mississippi. Or, if you’re interested in health care bills or any number of subject areas, possibly in some states that’s easier to get to. Some legislative websites may have API access where you could pull all this in as CSV data. That’s something you’re just going to have to look at in your given state.
Anderson: When you were making the decision between keeping it in Airtable versus feeding it into Data Wrapper, what helped you make that decision?
Bedillion: The mobile embed option with Airtable was not really playing nice with our broader ecosystem, so we had to go to the minimum viable product. And that was Datawrapper because it would at least display the information and be responsive to these different environments. That’s definitely the number one goal for a future iteration is to have an embeddable scrolling display.
Anderson: Can you measure how and when people are using the tool?
Bedillion: We can see traffic to the page itself, and it’s done pretty good. We always thought search would be the best driver, and that kind of borne out. There were a lot of direct links, too. We’re not entirely sure where that was coming from; were people sharing it in group chats or something? We definitely would like to know a little bit more about that. Individual click throughs in the display? We’re not able to track that, so there are definitely some technical things we would like to improve on in the future.
Anderson: I know right now it’s focused on Mississippi, but is this something that you anticipate taking to other states?
Bedillion: We’ve definitely talked about that. We have three local offices in the states of Ohio, Mississippi and Missouri. Ohio, for example, has a full time legislature. So it’s the opposite of Mississippi: rather than these really compressed legislative sessions, they’ve got really long legislative sessions. So potentially in a place like that, there could be more utility to having this kind of information because it has a lot longer shelf life.
Anderson: Besides this specific tool, when you’re doing research on quickly changing legislation like this, are there any other tools that you have found helpful?
Bedillion: As far as legislation, it is going to be very state specific. In terms of the Mississippi legislature, you can track bills by the committee they’ve been assigned to. So I mean, that often is useful because most criminal justice bills will get assigned to one of only a couple of committees. You want to be watching the Corrections Committee and see what bills are being advanced out of that committee.
There are tools like Klaxon, which will allow you to set an alert for a given page, so it’ll let you know when something on that page has changed. I imagine a lot of legislatures support RSS feeds, which could be a useful way to track, especially at the beginning of a session when a lot of stuff is getting filed. If you’re interested in finding stuff that’s in a bill or you’re trying to look across a lot of bills, mass OCR readers like what’s built into Pinpoint or Document Cloud. A feature we had talked about including was summaries of what these bills would do. So, for example, what we have copied in the current version of the tool is the short title of the bill, and that’s what’s given by the legislative staff or the drafting author. In some cases, the short titles aren’t all that clear as to what the bill would do, but we didn’t really have the time, or necessarily the resources, to write our own, even if they were only like 100/200 words. For example, one of these bills would have regulated trans people incarcerated in state prisons, and that was not clear at all from the short title of the bill. So if you were interested in a topic like that, you could certainly throw a bunch of the bill text into a tool like Pinpoint and search for keywords to identify trends.
Anderson: How would you approach looking for duplicate bills across different states?
Bedillion: That’s a great question and picks out a path not taken with this tracker. So if you were to look at the Airtable base that is feeding the Datawrapper front end, for most of the bills, we pulled in the complete bill text into a field in the base. So, if we wanted to do some kind of very high level searching, you could do it all in the Airtable base because all of the bill text is there, except – and this is a limitation of Airtable – some of the bill text had too many characters. It maxes out.
We had thought of potentially some AI applicability here of using it to identify duplicate bills across states. The Airtable base has the functionality where we could actually have multiple states within the base, and then they could talk and communicate across, or have linked fields. If the specific interest is identifying boilerplate bills that are being introduced across states, that seems like an area that’s maybe very appropriate for AI application. A ChatGPT interface is going to hit limits on your uploads, so if you’re wanting to throw tons of bill text into it, you’ll probably have to be connecting to an API or on a model that runs locally. You’d have to build out a rig for that specific application. We did foresee that having all of the bill text is something that would be desirable for a number of different areas, and so that’s built in if we ever develop a larger rig around it that could make use of that.
Anderson: How did you go about defining your audience for this tool?
Bedillion: If you’re a digital nonprofit that is really geared toward a more validly policy audience, you’d have reason to make this include a lot more data points you’re tracking about the bills, with a lot more filtering capacity. Even still, the American press has really been captured by this idea of the general interest reader, which is a useful way of thinking, but it also kind of fools ourselves. There are specific audiences for specific kinds of content, and a lack of clarity about that, and a lack of realism about that often serves neither that real existing audience or the outlet itself. We were pretty clear that the way we did this is going to be useful for some people and not useful for others. Maybe in future versions we find a way to serve both audiences. Also, we were very clear from the beginning: the version we’re shipping is not the final word on this by any stretch of the imagination. But we just didn’t necessarily have the time or think it would lead to a better product to do like an extended internal development engineering process and then ship a product.
Editor’s Note: This interview has been edited for clarity and brevity.

Sign up for the Innovation in Focus Newsletter to get our articles, tips, guides and more in your inbox each month!
Cite this article
Anderson, Sophia (2025, April 28). Using public state data to build a bill tracker. Reynolds Journalism Institute. Retrieved from: https://rjionline.org/news/using-public-state-data-to-build-a-bill-tracker/
Comments