Learn
The goal of this page is to provide an understanding of how Shmaxes works, and the best way to use it. In order to do this, I must begin with what data is being extracted and from where. However, to understand that you must have some sort of a background in governmental finances or be crazy and learn it on your own (me). Therefore, since most people have neither a background in governmental finaces nor are crazy, I think it is important to provide a brief explaination of how governmental financial reports work. The best way I can think of doing this, is to explain how I learned. To do that is to tell the story of Shmaxes.
Table of Contents
- Why?
- Joyous Pain
- AI Curveballs
- AI Homeruns
- Comparing Apples to Salaries
- Where we're at and where we're headed
Why?
Shmaxes was created out of frustration. I am from Chicago, which has a deadly combo: financial mismanagement and one of the highest tax rates in the country. This is something that everyone knows; however, there is no specific data to show where the money is going. I was curious to understand where the money is going, so I began by looking at the city's budget documents. This turned out be a brutal ordeal because of how long and confusing these documents were. How can you identify potential mismanagement if you can't identify where this money is going? These reports were 300-500 pages long with confusing terminology, endless data, and seemed useless to the average person. As a result of this frustration, Shmaxes was created with the original goal of extracting and displaying data from a city's budget in a way that's meaningful and easy to understand. Instead of spending hours trying to understand one of these painful budget documents, someone could use Shmaxes and understand where their taxes are going in 5 minutes. How naive I was.
Joyous Pain
I began by learning about how governmental financial reports work. This was an extremely painful process because of terrible it is to read these documents, however I realized that if it was painful for me then it must be painful for everyone else. This motivated me to keep learning and try to find ways I could improve this process. I will try to be as brief as possible to explain what I think you need to know about governmental budgets. There are three different types of funds: governmental funds, proprietary funds, and fiduciary funds. Governmental funds are funds that are responsible for the activities and operation of the city. The two main governmental funds are general and capital improvement funds. General funds are responsible for the main operation of city including police, fire, parks, etc. Capital improvement funds are responsible for building new projects and are usually financed through debt. Proprietary funds contains funds that operate more like private businesses. The income from the operation pays for the service such as utilities, airports, and trash collection. The last type is fiduciary funds which are funds where your city is managing the fund for someone else. This is usually where your city manages their pension funds. And there you have it - you're now familiar with the basics of governmental fund reporting! You may be thinking what I was thinking after learning about this: If every government reports funds the same way, then why can't we compare funds across cities? We can compare companies. Why not governments?
AI Curveballs
The first step to compare governmental funds across cities is to extract the revenues and expenses from each cites governmental report. I started by trying to use AI to extract the data from different cities budgets. I tried this for a couple of weeks, but realized this wasn't going to work becasue each budget had drastically different layouts. As a result, I couldn't consistently guide the AI to extract the information from the correct location within the document which meant lots of errors. At this point, I was a little destitute because I had spent all of this time working and had nothing to show for it.
AI Homeruns
So, I had learned that the only consistent way to use AI to extract data from a document is for the document to have consistent formatting. This meant that I had to find a financial reporting document that was standard across all cities if I was going to have a way to compare them. As it turns out, there is a document like that called the Annual Comprehensive Financial Report (ACFR). The ACFR is more detailed than a budget document, must be audited, and best of all has a standardized format. One important thing to note about ACFR is they typically come out within 6 months of the last year. Aha! Now I had a standardized way to get financial data on cities, and on top of that, it had been audited.
Comparing Apples to Salaries
I had a way to consistently get accurate financial data from a city and now all I needed to do was compare the revenue and expense items. But I quickly discovered another challenge: how do you group line items that mean the same thing but have different names? For example, one city could have "salary" as an expense line item while another city might have "wages". These items mean the same thing but use different words, which makes it tricky to compare them. AI to the rescue again! When you compare two funds from different cities, the revenue and expenses items are sent to an AI. The AI looks for similar names and merges them, combining multiple items if they fit into a logical group. Let me give you an example:
City A might break down their revenue as:
- Property taxes
- Sales taxes
While City B simply lists:
- Taxes
In this case, the AI would merge these into a single group called "Taxes" that includes both property and sales taxes from City A, along with the general taxes from City B. While the AI might adjust these merged groups over time, it always maintains all the original line items within the groupings.
Where we're at and where we're headed
The ultimate goal of Shmaxes was to find where my taxes were going and identify potential mismanagement. So what did I actually find? The biggest financial problem facing the city of Chicago is their pensions and it is currently the largest expense for the city taking up 26% of the budget. The pension system in Chicago is completely broken and has been able to be underfunded for decades because of skipped payments and state mandated payments below actuarily required levels. This is causing the city to play catch up, which is causing the city to raise taxes and cut services. Over 85% of property taxes now go to pensions and debt service, the profits from the new casino Bally's opened in Chicago are going to pensions, and the city is still borrowing money to fund their pensions. This is going on while the stock market is at an all time high. What do you think is going to happen when the stock market dips? Last time the city sold its parking meters, parking garages, and skyway toll roads for 99-year leases, with buyers who have already recouped their investments and will continue earning profits for the next 80 years. I think it is easy to turn a blind eye and say out of sight out of mind. However, the affect is in the missing opportunity in projects like parks, libraries, and schools that benefit the city as a whole. This is a problem that is predictable, and a problem that is predictable is preventable.
Pensions funding is not a problem exclusive to Chicago. Most major cities in the United States have underfunded pensions. It is much easier to get votes by funding projects that address short term problems than it is to fund projects that address long term problems. After a problem is kicked down the road for long enough, eventually it will catch up to you. In the case of Chicago, it has caught up to us.
I think this speaks to a larger problem - understanding where your taxes are going. This issue is seen all across the country: billions spent fighting fires in California while they're resoviors are dry, billions spent on homelessness programs while the numbers keep rising, and billions allocated to infrastructure projects that never get built.
If you took the time to read this, I thank you. This project represents thousands of hours of work researching, learning how to build websites, and working with AIs to try and understand where my taxes are going. I hope this helps you understand where your taxes are going.
JR