FlightFinder ingests the FAA National Wildlife Strike Database — every reported collision between an aircraft and an animal in US airspace. 351,016 of them since 1990.
The yearly count is the cleanest-looking trend in the whole database. 2,120 reports in 1990. 24,459 in 2025. That is 11.5x, and the curve barely wobbles except for one year.
I had the post written in my head before I finished the query. Bird strikes are rising, here is the chart.
Then I plotted the other column that ships in the same rows: strikes that damaged the aircraft. 371 in 1990. 904 in 2025. Up 2.4x, on a base that grew 11.5x.
As a share of reports that is 17.5% then and 3.70% now. Roughly one in six, then one in twenty-seven.
Both numbers come from the same reports, so nothing about sampling separates them. What separates them is who decides they exist. A strike report exists because a person chose to file it. Damage exists because something bent. If the first count grows five times faster than the second, most of the growth is filings that would not have been filed in 1990: small bird, no damage, nothing to fix, previously not worth the paperwork.
2020 is the part that convinced me. Traffic collapsed, reports fell from 17,345 to 11,627, and damaging strikes fell from 765 to 494. The rate went 4.41% to 4.25%, which is nothing. Exposure moved both counts together and left the ratio alone. That is what a ratio is supposed to do, and it is exactly what the 35-year trend does not do.
There is a cross-sectional version of the same thing in the aggregates we published from this database (arXiv:2608.12390): across 452 airports, the Spearman correlation between strike volume and damage rate is -0.44, p < 0.001. The airports that report the most report the least damaging mix. Denver leads on volume with 11,694 strikes and 253 of them damaging, 2.2%. Sacramento has 4,369 strikes and 491 damaging, 11.2%. Fewer than half the strikes, nearly twice the damage.
The honest caveat is that the damage flag is also part of a filed report, so it is not a clean physical anchor. It is just much harder to leave blank than "I saw a bird."
What I would tell my past self, and the reason I am writing this down: if you did not control how a number was collected, do not read its growth as a trend until you find a companion series in the same rows whose definition does not depend on someone deciding to file. Then plot both. If they diverge by a factor of five, the gap is your collection process, and the ratio is the number worth publishing.
This is the third one of these I have hit in the same database, and they rhyme. First a column that was 100% populated and 74% "unknown", where populated and usable turned out to be different properties. Then a free-text column where a GROUP BY gave me a spelling census instead of a count. Now a count that is fine in any single year and lies across years. Counted, counted correctly, and counted comparably are three different things, and only the first one is obvious from the query returning without an error.