Last year I read Strong Towns: A Bottom-Up Revolution to Rebuild American Prosperity (Marohn Jr, 2019). It was one of the few books I reviewed and gave 5-stars! The basic premise is most US cities are bankrupting themselves with new developments that earn less in tax revenue than the increased cost of infrastructure to support those developments. One way to see how this works is to create a geospatial graph to visualize tax revenue per acre. The StrongTowns organization often partners with data visualization company UrbanThree to do this modeling as consulting work for cities. I live in the greater Grand Rapids metro area and thought it would be interesting to create a “Value Per Acre” map for my city! We’re updating our 20-year Master Plan as well as working through strategic zoning reforms. I thought this analysis would aid both discussions as those meetings often have many people heavy on emotions and light on facts. StrongTowns has a DIY for beginners, but I wanted the whole enchilada!
Luckily, a kind citizen named Louis Burns, PhD wrote an article on how to do this analysis using free software. To get started, you need three things:
A Geographic Information System (GIS) software like QGIS
Your city’s GIS data - these are parcel polygon shapefiles. Grand Rapids appears to maintain this online. I used the following datasets:
- Kent County Parcel Data
- City of Grand Rapids Neighborhood Areas
- City of Grand Rapids City Limits
- City of Grand Rapids Wards
Your city’s tax rolls; or at least the taxable value of each parcel. This data needs to connect back to the GIS shapefiles to allow the visualization.
Armed with the first two requirements, I assumed obtaining the third would be easy. It was not.
Grand Rapids has a website explaining how to file a Freedom of Information Act Request (FOIA) as required by law. See MCL 15.231 for details. The website is clear, simple, and easy to use. I submitted my FOIA request on Sunday, September 24 2023 expecting the best.
The Assessor’s Office publishes an annual Assessment Roll Report with a summary of current assessment roles. I would like to request the details supporting this summary in a csv/Excel file if possible. As of 2023, they reported 63,836 real property parcels, so at a minimum I’d like to see 63,836 records that include the property parcel number, the property class (commercial, industrial, residential, exempt), the SEV, and taxable values. If other fields are available, please include those as well. Ideally, the property address, owner name, lot frontage, lot depth, total acres, zoning code, ECF Neighborhood classification, and land value would also be present, but if they’re not available, just the base detail will be helpful. Here’s a link to the summary report if that’s helpful: https://www.grandrapidsmi.gov/Government/Departments/Assessors-Office
Six business days later on October 2, I received an email denying my request. The FOIA Coordinator informed me I could get the records from the Assessor’s Office by paying their City Commission-approved fees. I contacted the Assessor’s Office and they said the fee was $650. The FOIA allows public bodies to charge only actual labor costs as determined by the lowest level employee able to retrieve the information. If it takes less than 15 minutes, then they’re not allowed to charge anything. I have a friend who used to work in the GR Assessor’s Office as well as another friend who works in the Assessor’s Office for a nearby city that uses the same BS&A software. Both told me that my request only requires a few clicks of a button and is automated, so the fee under FOIA should be $0. Along with the denial e-mail, they included an attachment detailing my appeal rights as required by law.
I was a bit confused since they denied my request and then said it was available elsewhere for a fee. If a public body can paywall their records and then deny any FOIA request by saying there was an alternative method of obtaining them, this undermines the purpose of FOIA. So while I thought I was appealing the fee, the City Attorney’s Office believed providing a copy of the complete database constitutes the creation of a new record.
The City of Grand Rapids has a FOIA Appeals Committee, but I couldn’t find who was on it online, other than the Mayor appoints them. So I sent my appeal to mayor@grcity.us. Her assistant confirmed receipt and forwarded it to somebody. It was likely the City Attorney because their office responded with a Notice of Public Meeting. The timelines are explicitly defined in the statute, and the public body has 10 days after receiving a written appeal to respond, but the appeal is not considered “received” until their next regularly scheduled meeting. Since the FOIA Appeals Committee doesn’t meet regularly, I’m not sure how they determine the timeline, but it seemed timely to me.
It wasn’t until the day before the meeting that I received the Deputy City Attorney’s legal brief and learned their position was retrieving anything from a database would constitute the creation of a new public record, so essentially, once something was digitized it then became off limits because a query to retrieve it would require them to “create a new document”. FOIA originally covered documents held in filing cabinets and the fees were to pay someone to search through the filing cabinets, retrieve the requested documents, and make copies. But if you store your documents in an electronic file cabinet known as a database, then suddenly searching through that database with a simple query is ostensibly the creation of a new record? That doesn’t seem correct to me, and the Michigan Court of Appeals seems to agree. (This is me using foreshadowing!)
The Deputy City Attorney laid out a simple argument:
Premise 1: The FOIA Does Not Require a Public Body to Create a New Public Record
Premise 2: Requestor’s FOIA Request Requires the Creation of a New Public Record
Conclusion: The Requestor’s FOIA Request was Properly Denied
But I found case law that I believe proves Premise 2 to be false:
In June of 2017, the Court of Appeals of Michigan issued the following opinion in Ellison v. Dep’t of State:
FOIA broadly provides that “all persons … are entitled to full and complete information regarding the affairs of government and the official acts of those who represent them as public officials and public employees, consistent with this act.” MCL 15.231(2). Accordingly, “FOIA’s specific provisions generally require the full disclosure of public records in the possession of a public body.” Herald , 463 Mich. at 118, 614 N.W.2d 873.
FOIA defines the term “public record” as “a writing prepared, owned, used, in the possession of, or retained by a public body in the performance of an official function, from the time it is created.” MCL 15.232(e). FOIA defines the terms “writing” as handwriting, typewriting, printing, photostating, photographing, photocopying, and every other means of recording, and includes letters, words, pictures, sounds, or symbols, or combinations thereof, and papers, maps, magnetic or paper tapes, photographic films or prints, microfilm, microfiche, magnetic or punched cards, discs, drums, or other means of recording or retaining meaningful content. [ MCL 15.232(h).]
For the purposes of FOIA, writings include “electronic copies and computer tapes.” City of Warren v. Detroit, 261 Mich.App. 165, 172, 680 N.W.2d 57 (2004) (citations omitted).
If a writing exists in an electronic format, the plaintiff is entitled to an electronic copy. Farrell v. Detroit, 209 Mich.App. 7, 14–15, 530 N.W.2d 105 (1995). See MCL 15.234(1)(c).
-Ellison v. Dep’t of State, 320 Mich. App. 169, 176 (Mich. Ct. App. 2017)
Later, they further state:
“The Court of Claims erred when it held that the database was not a public record.”
-Ellison v. Dep’t of State, 320 Mich. App. 169, 177 (Mich. Ct. App. 2017)
I believe this shows the city’s legal counsel’s second premise was false rendering his legal opinion unsound.
Here is my alternative argument:
Premise 1: The Assessors’ Office of the City of Grand Rapids uses a BS&A database for the maintenance of its property tax records and utilizes said database in its function as a public official.
Premise 2: Based on established case law, this database is considered a public record.
Premise 3: I requested a copy of the current state of said database.
Conclusion: FOIA mandates that this request be satisfied.
I admit my actual request was clumsy and not nearly as direct as the argument I laid out. I thought I was being helpful by providng contextual information to aid the FOIA Coordinator. In retrospect, I should have used simple, concise language and provided my prepared comments as a part of my written appeal instead of trying to read them into the record at the hearing.
Commissioner Ysasi only allowed me to read about two and a half pages or my prepared remarks which included the legal analysis above before cutting me off at 5 minutes even though I explained I had 4 pages of written testimony to add at the beginning of the hearing. I also explained that until the previous business day, I didn’t even know why my request was denied, otherwise, I would have put my spoken remarks into the original appeal. She asked me one question about whether I could search for one single property at a time using the online software. I replied yes, but explained that this was hardly a feasible way to perform data analysis.
And that was it. They voted to uphold the denial. Even though both the City Attorney and the Deputy City Attorney were in the room, both chose to ignore my legal claims instead of responding to them. My spoken testimony was not recorded anywhere, so they likely assumed it wasn’t necessary since the paper trail supported they had fully complied with FOIA. While it’s easy to be upset with the Commissioners if I had two lawyers in the room representing me, I’d follow their advice on legal matters too.
The Deputy City Clerk did send me both their final decision in writing as well as the meeting minutes taken during my hearing.
I did speak to an attorney of my own post-hearing, and he reviewed the case law I assembled. I was advised that while I did have a strong case, the city did too. He explained that the City does not like having to comply with FOIA requests, so if there’s any way for them to deny one, they do. This saves them money in the long run. He said he’d be happy to take the case, but it would likely take a year since no matter who won, the other side could/should appeal. He said I’d spend significantly more than the $650 they were asking for, and advised me I’d likely end up with around $20k in legal fees. He also explained that the City Attorney knew this, and counted on this obstacle to keep most people from seeking judicial relief.
FOIA does allow a judge to order the public body to pay reasonable legal fees, but it’s not a guarantee. I considered investing the $20k because I feel my case is strong, and I do not enjoy being pushed around. However, after discussing it with several close friends, I was reminded that the reason I wanted this data in the first place was to help provide analysis for the City Commission, so they could make informed policy decisions based more on data and analysis and less on the emotions often evident during public comment periods. Suing the City would likely make them slightly less receptive to the results of my analysis. Especially if I won and stuck them with $20k worth of legal fees. 😤
That said, if one were to seek judicial relief, in addition to making a clean, simple request up front instead of my rambling, I’d suggest using the cases I found that offer legal precedents in the actual appeal and/or the original request. This would force the City Attorney’s Office to respond to the legal claims instead of allowing them to conveniently ignore them. I would also request the entire database instead of trying to be helpful and explain exactly what you’re trying to do since this would provide the cleanest case for a court to decide.
The other deciding factor in my choosing not to bring an action in court was that there were other, cheaper, ways to obtain similar data. 😈 So I spent a few hours coding up a web scraper in Python. Since BS&A has Terms and Conditions prohibiting scraping, I had to use a different site that did not. But just in case that site is feeling litigious, I’ll omit the name in case I need to plead the 5th. ⚖️
It took me several days to run the program, as I didn’t want to overwhelm and crash the server. This alternative website did not have as much information as the real, source data, but it was close enough to get me most of the way there.