There Are Enough Homes For Everyone (Greed Causes Homelessness)

This is a Learning in Progress post. Contents are brief and accuracy is not guaranteed.

Observing propaganda is useful to see how it is constructed. I just got through watching a video that claimed California is being taken over by “the drug-addled violent homeless”1 due to decriminalization of felonies and stringent building codes. In case you need the reminder: Homeless people are victims of landlords, a lack of rent control2, and a lack of social services. And the felonies in question? Minor crimes like drug possession and petty theft, the kinds of crime done by the desperate or disadvantaged. In other wods, crimes that never should have been a felony in the first place.

(They also claim that providing medical services to drug users increases harm. I remind you that the purpose of medicine is to reduce harm.)

California’s population peaked in 2020 at 39.5 million people3. At the time, there were approximately 151,000 homeless people living there4, and 711,679 housing units were unoccupied5 – enough for every homeless person to have 4 homes! (This mirrors a larger trend in the USA, where there were 16,883,357 vacant housing units in 20196, and 1.5 million homeless people7.) By 2022, California’s population had dropped by 0.5 million and there were 2.4 million more housing units (from 12.2 million5 to 14.6 million)8, which is plenty more space, despite the increase in homeless population to ~181,000 people9.

A preliminary estimate shows the homeless population in California has grown by 2% since that figure, which still doesn’t strain the available housing units10. However, the source of that claim is one of the least reliable sources available, so the real difference may be higher.

Underreporting & Accuracy

The USA has always had very reliable census data. The numbers regarding housing units all come from census data, and are accurate. The information on homeless populations that I found broadly comes from 3 categories of sources, with varrying levels of accuracy.

  1. “Continuum of Care” sources (commonly abbreviated CoC) seem to be the least reliable, first because they count homeless people at a single point of time (which ignores the magnitude of homelessness by omitting people who are frequently homeless for brief periods of time repeatedly), and second because they only count homeless people participating in a homelessness preventation program (which are often highly exclusionary, tunring away most homeless people). For example, the HUD’s CoC sources claim that in 2019 there were only 279,327 homeless people11 in the entire country instead of the 1.5 million7 I stated above.
  2. The Annual Homelessness Assessment Report (AHAR) seems to still fall into the trap of only counting people at a single point in time, but as far as I can tell actually does try to come up with an accurate count at that moment in time. The 9th and 11th items in my footnotes/sources are these reports, whose numbers are close to the PIT estimate in the 7th item (so I consider them related / roughly equivalent in accuracy).
  3. The National Center for Education Statistics (NCES) only counts homelessness based on children during a school year. Despite this, it captures a much more realistic estimate of the magnitude of homelessness by accounting for families over a significant period of time.

It would be fair to take these sources as a lower bound, average estimate, and upper bound. Operating from that assumption, I note that the difference between the lowest estimates and the highest is about 5x, while the difference between the average and upper is 3x. I think it important to consider this when looking at the numbers presented earlier, specifically the comparison between California and the whole USA.

There Were Always Enough Homes

When I want to make a point clear, I take the estimates most against my position, and use those to prove my perspective valid even under a worst-case.

California has 1/3rd the homeless population of the entire country. The estimates I found for California match the average estimates for the USA. If we assume that the average estimate is wrong, and the upper bound is correct, there are 3x more homeless people in California than I said above.

In 2019, the highest count I found was 181,000. If we presume that there are actually 543,000 homeless people, that the 2.4 million new housing units don’t actually exist, and that 500,000 people didn’t actually leave California… there are still 711,679 housing units available for them. There have always been enough homes for everyone.

Footnotes & Sources

(Note: All resources are archived using the services linked to on Archives & Sources.)

  1. An important signifier in any conversion about disadvantaged people is how they are spoken about. A specific flag to look for is the usage of terms like “the homeless” vs terms like “homeless people”. The first is dehumanizing, the focus is on a group of “disliked things” whereas the second acknowledges these are people of a categorization. While this language usage does not necessarily coincide with how a presenter values the people being discussed, it is a hint at how they perceive of a topic.
  2. There are a billion sources that all show this. I just happened across a really detailed document about ALL of this in State of Homelessness: 2024 Edition (archive.org, archive.is)
  3. California Remained Most Populous State but Growth Slowed Last Decade (archive.org, archive.is)
  4. Page 3 of Homelessness in California (archive.org, archive.is)
  5. California Housing Statistics (archive.org, archive.is)
  6. Housing Units and Population Measures for the United States (archive.org, archive.is)
  7. Urban Vision Alliances’ HOMELESSNESS STATISTICS (archive.org, archive.is)
  8. California – Profile data – Census Reporter (archive.org, archive.is)
  9. Page 186 (printed as pg. 16) of The 2023 Annual Homelessness Assessment Report (AHAR) to Congress (archive.org, archive.is)
  10. Partial 2024 California Homeless Count Results Reveal a Statewide Increase of 2% (archive.org, archive.is)
  11. HUD 2019 Continuum of Care Homeless Assistance Programs Homeless Populations and Subpopulations (archive.is)

Updates:
2024-10-11: Clarified text in footnotes, added redundant archive links.
2024-10-27: Corrected heading size for footnotes/sources.

File Size Statistics Script (Lua)

I used ChatGPT to write a script for generating a list of file statistics based on everything within the directory it is placed in. It uses LuaFilesystem, and generates a final output like the following after it’s done processing through the files:

2359    files found.
Average (mean) file size:       44842.524374735 bytes
Standard deviation:     320478.50592438
Multiple modes:
Mode 1: 126     bytes
Mode 2: 204     bytes
Frequency:      7
[####################] 0.00 - 199271.16: 2245 files
[##########          ] 199271.16 - 398542.33: 59 files
[#######             ] 398542.33 - 597813.49: 16 files
[#######             ] 597813.49 - 797084.65: 14 files
[#####               ] 797084.65 - 996355.82: 6 files
[#####               ] 996355.82 - 1195626.98: 8 files
[##                  ] 1195626.98 - 1394898.14: 2 files
[#                   ] 1394898.14 - 1594169.31: 1 files
[#                   ] 1594169.31 - 1793440.47: 1 files
[                    ] 1793440.47 - 1992711.63: 0 files
[                    ] 1992711.63 - 2191982.80: 0 files
[#                   ] 2191982.80 - 2391253.96: 1 files
[                    ] 2391253.96 - 2590525.12: 0 files
[                    ] 2590525.12 - 2789796.29: 0 files
[                    ] 2789796.29 - 2989067.45: 0 files
[##                  ] 2989067.45 - 3188338.61: 2 files
[                    ] 3188338.61 - 3387609.78: 0 files
[                    ] 3387609.78 - 3586880.94: 0 files
[                    ] 3586880.94 - 3786152.10: 0 files
[                    ] 3786152.10 - 3985423.27: 0 files
[                    ] 3985423.27 - 4184694.43: 0 files
[#                   ] 4184694.43 - 4383965.59: 1 files
[                    ] 4383965.59 - 4583236.76: 0 files
[                    ] 4583236.76 - 4782507.92: 0 files
[                    ] 4782507.92 - 4981779.08: 0 files
[                    ] 4981779.08 - 5181050.24: 0 files
[#                   ] 5181050.24 - 5380321.41: 1 files
[                    ] 5380321.41 - 5579592.57: 0 files
[                    ] 5579592.57 - 5778863.73: 0 files
[                    ] 5778863.73 - 5978134.90: 0 files
[                    ] 5978134.90 - 6177406.06: 0 files
[                    ] 6177406.06 - 6376677.22: 0 files
[#                   ] 6376677.22 - 6575948.39: 1 files
[                    ] 6575948.39 - 6775219.55: 0 files
[                    ] 6775219.55 - 6974490.71: 0 files
[                    ] 6974490.71 - 7173761.88: 0 files
[                    ] 7173761.88 - 7373033.04: 0 files
[                    ] 7373033.04 - 7572304.20: 0 files
[                    ] 7572304.20 - 7771575.37: 0 files
[                    ] 7771575.37 - 7970846.53: 0 files
[                    ] 7970846.53 - 8170117.69: 0 files
[                    ] 8170117.69 - 8369388.86: 0 files
[                    ] 8369388.86 - 8568660.02: 0 files
[                    ] 8568660.02 - 8767931.18: 0 files
[                    ] 8767931.18 - 8967202.35: 0 files
[                    ] 8967202.35 - 9166473.51: 0 files
[                    ] 9166473.51 - 9365744.67: 0 files
[                    ] 9365744.67 - 9565015.84: 0 files
[#                   ] 9565015.84 - 9764287.00: 1 files
0th percentile: 0       bytes
10th percentile:        167     bytes
20th percentile:        317     bytes
30th percentile:        476     bytes
40th percentile:        692     bytes
50th percentile (median):       986     bytes
60th percentile:        1428    bytes
70th percentile:        2101    bytes
80th percentile:        3650    bytes
90th percentile:        38917   bytes
100th percentile:       9764287 bytes

With minimal effort, you could change it quite a bit, because it’s written as pure functions. I wouldn’t have achieved this myself, nor produced it so quickly, if I didn’t have ChatGPT do the easy stuff for me. I found the experience quite helpful. While ChatGPT did once forget that Lua indexes tables starting with 1, and made a few weird decisions and downright inefficient code in some places, it allowed me to focus on making it work exactly how I wanted it to, instead of just mostly correct or “good enough for now”.

(Btw, the example output above is from my Obsidian vault. You can read a bit more about how I use Obsidian to organize my notes here.)